class-admin-banner-sidebar-renderer.php
1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
/**
* @package WPSEO\Admin\Banner
*/
/**
* Represents the render object for generating the html for the banner sidebar
*/
class WPSEO_Admin_Banner_Sidebar_Renderer {
/** @var WPSEO_Admin_Banner_Spot_Renderer */
protected $spot_renderer;
/**
* Sets the spot renderer.
*
* @param WPSEO_Admin_Banner_Spot_Renderer $spot_renderer The spot renderer that has to be used.
*/
public function __construct( WPSEO_Admin_Banner_Spot_Renderer $spot_renderer ) {
$this->spot_renderer = $spot_renderer;
}
/**
* Renders the admin banner sidebar.
*
* @param WPSEO_Admin_Banner_Sidebar $banner_sidebar The sidebar to render.
*
* @return string
*/
public function render( WPSEO_Admin_Banner_Sidebar $banner_sidebar ) {
return sprintf( '
<div class="wpseo_content_cell" id="sidebar-container">
<div id="sidebar">
<div class="wpseo_content_cell_title yoast-sidebar__title ">
%1$s
</div>
%2$s
</div>
</div>',
$banner_sidebar->get_title(),
$this->render_banner_spots( $banner_sidebar->get_banner_spots() )
);
}
/**
* Renders the admin banner spots.
*
* @param WPSEO_Admin_Banner_Spot[] $banner_spots The banner spots to render.
*
* @return string
*/
protected function render_banner_spots( array $banner_spots ) {
$return = '';
foreach ( $banner_spots as $banner_spot ) {
$return .= $this->spot_renderer->render( $banner_spot );
}
return $return;
}
}