Esempio n. 1
0
 /**
  * Метод получения зарегистрированной страницы
  * 
  * @return WebPage
  */
 public static final function getPage($page, $ensure = true)
 {
     if (self::$storeState === 0) {
         self::$storeState = 1;
         PageBuilder::inst()->registerAllHtmlPages();
         self::$storeState = 2;
         //Проверим, чтобыла зарегистрирована страница index и пользователь имеет доступ к ней.
         check_condition(self::getPage(BASE_PAGE_INDEX)->hasAccess(), 'Пользователь не имеет доступа к индексной странице');
     }
     check_condition(self::$storeState === 2, 'Хранилище страниц ещё не наполнено');
     if ($page instanceof WebPage) {
         return $page;
     }
     if (is_numeric($page)) {
         if (array_key_exists($page, self::$page2code)) {
             return self::$page2code[$page];
         }
         check_condition(!$ensure, "Страница с кодом [{$page}] не зарегистрирована");
         return null;
     }
     if (is_string($page)) {
         $pathBase = get_file_name($page);
         if (array_key_exists($pathBase, self::$page2pathBase)) {
             return self::$page2pathBase[$pathBase];
         }
         check_condition(!$ensure, "Страница с адресом [{$page}] не зарегистрирована");
         return null;
     }
     check_condition(!$ensure, "Страница не зарегистрирована");
     return null;
 }