/wp-content/plugins/wordpress-seo/admin/banner/class-admin-banner-spot.php
https://bitbucket.org/carloskikea/helpet · PHP · 120 lines · 41 code · 16 blank · 63 comment · 1 complexity · 2f16480741d490056da0ab7785c43853 MD5 · raw file
- <?php
- /**
- * WPSEO plugin file.
- *
- * @package WPSEO\Admin\Banner
- */
- /**
- * Represents the an admin banner spot.
- */
- class WPSEO_Admin_Banner_Spot {
- /** @var string */
- private $title;
- /** @var string */
- private $description = '';
- /** @var string */
- private $extra = '';
- /** @var WPSEO_Admin_Banner[] */
- private $banners = array();
- /**
- * WPSEO_Admin_Banner_Spot constructor.
- *
- * @param string $title The title for the spot.
- * @param WPSEO_Admin_Banner_Renderer $banner_renderer The renderer for the banner.
- */
- public function __construct( $title, WPSEO_Admin_Banner_Renderer $banner_renderer = null ) {
- $this->title = $title;
- $this->banner_renderer = ( is_null( $banner_renderer ) ? new WPSEO_Admin_Banner_Renderer() : $banner_renderer );
- }
- /**
- * Returns the title.
- *
- * @return string
- */
- public function get_title() {
- return $this->title;
- }
- /**
- * Returns the description.
- *
- * @return string
- */
- public function get_description() {
- return $this->description;
- }
- /**
- * Returns the extra content.
- *
- * @return string
- */
- public function get_extra() {
- return $this->extra;
- }
- /**
- * Sets the description
- *
- * @param string $description The description.
- */
- public function set_description( $description ) {
- $this->description = $description;
- }
- /**
- * Sets the "extra"
- *
- * @param string $extra The "extra".
- */
- public function set_extra( $extra ) {
- $this->extra = $extra;
- }
- /**
- * Adds an admin banner.
- *
- * @param WPSEO_Admin_Banner $banner The banner to add.
- */
- public function add_banner( WPSEO_Admin_Banner $banner ) {
- $this->banners[] = $banner;
- }
- /**
- * Renders the banner.
- *
- * @return string
- */
- public function render_banner() {
- if ( ! $this->has_banners() ) {
- return '';
- }
- return $this->banner_renderer->render( $this->get_random_banner() );
- }
- /**
- * Checks if there are any banners set.
- *
- * @return bool
- */
- public function has_banners() {
- return ! empty( $this->banners );
- }
- /**
- * Returns a random banner.
- *
- * @return null|WPSEO_Admin_Banner
- */
- protected function get_random_banner() {
- return $this->banners[ array_rand( $this->banners, 1 ) ];
- }
- }