/**
  * Returns the *Singleton* instance of this class.
  *
  * @param AbsMenuPage $menuPage
  *
  * @return $this ::class The *Singleton* instance.
  */
 public static function getInstance(AbsMenuPage $menuPage)
 {
     $class = get_called_class();
     if (!isset(self::$instances[$menuPage->getMenuSlug()])) {
         self::$instances[$menuPage->getMenuSlug()] = array();
     }
     if (!isset(self::$instances[$menuPage->getMenuSlug()][$class])) {
         self::$instances[$menuPage->getMenuSlug()][$class] = new $class($menuPage);
     }
     return self::$instances[$menuPage->getMenuSlug()][$class];
 }
Esempio n. 2
0
 /**
  * Registers a menu page
  *
  * @param AbsMenuPage $menuPage The menu page instance to be registered
  *
  * @author Panagiotis Vagenas <*****@*****.**>
  * @see    WpMenuPages::$menuPages
  * @since  1.0.0
  */
 public function attachMenuPage(AbsMenuPage $menuPage)
 {
     if (isset($this->menuPages[$menuPage->getMenuSlug()])) {
         user_error('A page with the slug "' . $menuPage->getMenuSlug() . '" is already registered');
     }
     $this->menuPages[$menuPage->getMenuSlug()] = $menuPage;
 }
Esempio n. 3
0
 /**
  * Each page instance should use this function to initialize options for her self
  *
  * @param AbsMenuPage $page A page to init options for
  *
  * @author Panagiotis Vagenas <*****@*****.**>
  * @since  1.0.0
  */
 public function maybeInitPageOptions(AbsMenuPage $page)
 {
     if (!isset($this->options[self::PAGE_OPT][$page->getMenuSlug()])) {
         $this->options[self::PAGE_OPT][$page->getMenuSlug()] = [];
     }
 }