/** * Метод получения зарегистрированной страницы * * @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; }