Ejemplo n.º 1
0
 protected function postProcessImpl(PageParams $pageParams, \RequestArrayAdapter $requestParams)
 {
     $SMARTY_PARAMS['JS_DEFS'] = PageBuilder::inst()->buildJsDefs($pageParams);
     $SMARTY_PARAMS_PAGE = $pageParams->getSmartyParams4Resources();
     $SMARTY_PARAMS = array_merge($SMARTY_PARAMS, $SMARTY_PARAMS_PAGE);
     $resources = PSSmarty::template('page/environment/wordpress/wp_page_resources_footer.tpl', $SMARTY_PARAMS)->fetch();
     $resources = trim($resources);
     $this->LOGGER->infoBox('PAGE_RESOURCES_FOOTER', $resources);
     echo PsHtml::div(array(), $resources);
 }
Ejemplo n.º 2
0
 /**
  * Список фолдингов
  */
 public static function listFoldings()
 {
     $managers = array(MagManager::inst(), BlogManager::inst(), TrainManager::inst());
     $foldings = array();
     foreach ($managers as $manager) {
         if ($manager instanceof RubricsProcessor) {
             $foldings[] = $manager->getRubricsFolding();
         }
         if ($manager instanceof PostsProcessor) {
             $foldings[] = $manager->getFolding();
         }
     }
     //Фолдинги
     $foldings[] = PopupPagesManager::inst();
     $foldings[] = PluginsManager::inst();
     $foldings[] = IdentPagesManager::inst();
     $foldings[] = TimeLineManager::inst();
     $foldings[] = TemplateMessages::inst();
     $foldings[] = UserPointsManager::inst();
     $foldings[] = StockManager::inst();
     $foldings[] = HelpManager::inst();
     $foldings[] = EmailManager::inst();
     $foldings[] = PSForm::inst();
     $foldings[] = DialogManager::inst();
     //Библиотеки
     $foldings[] = PoetsManager::inst();
     $foldings[] = ScientistsManager::inst();
     //Админские страницы
     $foldings[] = APagesResources::inst();
     //Базовые страницы
     $foldings[] = BasicPagesManager::inst();
     //Построитель страниц
     $foldings[] = PageBuilder::inst();
     //Управление списком предпросмотра постов
     $foldings[] = ShowcasesCtrlManager::inst();
     //Элементы в правой панели навигации
     $foldings[] = ClientBoxManager::inst();
     //Все фолдинги системы
     return $foldings;
 }
Ejemplo n.º 3
0
 private function __construct()
 {
     PsProfiler::inst(__CLASS__)->start(__FUNCTION__);
     $managers = array(MagManager::inst(), BlogManager::inst(), TrainManager::inst());
     foreach ($managers as $manager) {
         //Соберём типы постов
         $this->postTypes[] = $manager->getPostType();
         if ($manager instanceof RubricsProcessor) {
             $this->rubricsProcessors[$manager->getPostType()] = $manager;
             $this->foldings[] = $manager->getRubricsFolding();
         }
         if ($manager instanceof PostsProcessor) {
             $this->postsProcessors[$manager->getPostType()] = $manager;
             $this->foldings[] = $manager->getFolding();
         }
         if ($manager instanceof CommentsProcessor) {
             $this->commentProcessors[$manager->getPostType()] = $manager;
             $this->discussionControllers[$manager->getDiscussionController()->getDiscussionUnique()] = $manager->getDiscussionController();
         }
         if ($manager instanceof PagePreloadListener) {
             $this->pagePreloadListeners[] = $manager;
         }
         if ($manager instanceof NewsProvider) {
             $this->newsProviders[$manager->getNewsEventType()] = $manager;
         }
     }
     //Контроллеры дискуссий
     $this->discussionControllers[FeedbackManager::inst()->getDiscussionUnique()] = FeedbackManager::inst();
     //Фолдинги
     $this->foldings[] = PopupPagesManager::inst();
     $this->foldings[] = PluginsManager::inst();
     $this->foldings[] = IdentPagesManager::inst();
     $this->foldings[] = TimeLineManager::inst();
     $this->foldings[] = TemplateMessages::inst();
     $this->foldings[] = UserPointsManager::inst();
     $this->foldings[] = StockManager::inst();
     $this->foldings[] = HelpManager::inst();
     $this->foldings[] = EmailManager::inst();
     $this->foldings[] = PSForm::inst();
     $this->foldings[] = DialogManager::inst();
     //Библиотеки
     $this->foldings[] = PoetsManager::inst();
     $this->foldings[] = ScientistsManager::inst();
     //Админские страницы
     $this->foldings[] = APagesResources::inst();
     //Базовые страницы
     $this->foldings[] = BasicPagesManager::inst();
     //Построитель страниц
     $this->foldings[] = PageBuilder::inst();
     //Управление списком предпросмотра постов
     $this->foldings[] = ShowcasesCtrlManager::inst();
     //Элементы в правой панели навигации
     $this->foldings[] = ClientBoxManager::inst();
     /*
      * Выделим различные подклассы фолдингов
      */
     foreach ($this->foldings as $folding) {
         //Фолдинги библиотек
         if ($folding instanceof LibResources) {
             $this->libs[] = $folding;
         }
         //Фолдинги обработчиков постов
         if ($folding instanceof PostFoldedResources) {
             $this->postProcessorFoldings[] = $folding;
         }
         //Фолдинги для баблов
         if ($folding instanceof BubbledFolding) {
             $this->bubbles[] = $folding;
         }
         //Фолдинги, предоставляющие панели
         if ($folding instanceof PanelFolding) {
             $this->panels[] = $folding;
         }
         //Фолдинги, финализирующие контент страницы
         if ($folding instanceof PageFinalizerFolding) {
             $this->pageFinaliseFoldings[] = $folding;
         }
         //Индексированный список фолдингов
         $this->folding2unique[$folding->getUnique()] = $folding;
         //Префиксы smarty к фолдингам
         $this->folding2smartyPrefix[$folding->getSmartyPrefix()] = $folding;
         //Префиксы классов к фолдингам
         if ($folding->getClassPrefix()) {
             $this->folding2classPrefix[$folding->getClassPrefix()] = $folding;
         }
     }
     PsProfiler::inst(__CLASS__)->stop();
 }
Ejemplo n.º 4
0
 /**
  * Регистрация страниц SDK
  */
 private function registerSdkFoldings()
 {
     $this->register(PopupPagesManager::inst());
     $this->register(PluginsManager::inst());
     $this->register(TimeLineManager::inst());
     $this->register(UserPointsManager::inst());
     $this->register(StockManager::inst());
     $this->register(HelpManager::inst());
     $this->register(EmailManager::inst());
     $this->register(PSForm::inst());
     $this->register(DialogManager::inst());
     $this->register(PageBuilder::inst());
     //Библиотеки
     $this->register(PoetsManager::inst());
     $this->register(ScientistsManager::inst());
     //Админские страницы
     $this->register(APagesResources::inst());
 }
Ejemplo n.º 5
0
 /**
  * Основной метод, выполняющий построение страницы
  */
 public final function buildPage()
 {
     //Может ли данная страница вообще быть построена
     check_condition($this->builderIdent, "{$this} не может быть построена");
     //Проверим, установлена ли эта страница, как текущая
     check_condition(WebPages::isCurPage($this), "{$this} не установлена, как текущая, и не может быть построена");
     //Если у пользователя нет доступа к данной странице - выполним редирект
     if (!$this->hasAccess()) {
         $this->redirectHere();
     }
     //Теперь провалидируем установленный контекст
     $ctxt = PageContext::inst();
     check_condition($this->isIt($ctxt->getPage()), PsUtil::getClassName($ctxt) . ' проинициализирован некорректно');
     //Строим страницу
     PageBuilder::inst()->buildPage();
 }
Ejemplo n.º 6
0
 /**
  * Основной метод, выполняющий построение страницы
  */
 public final function buildPage()
 {
     //Проверим, установлена ли эта страница, как текущая
     check_condition(WebPages::isCurPage($this), "{$this} не установлена, как текущая, и не может быть построена");
     //Если у пользователя нет доступа к данной странице - выполним редирект
     if (!$this->hasAccess()) {
         $this->redirectHere();
     }
     //Теперь провалидируем установленный контекст
     $ctxt = PageContext::inst();
     check_condition($this->isIt($ctxt->getPage()), PsUtil::getClassName($ctxt) . ' проинициализирован некорректно');
     $redirectPage = self::inst(is_numeric($this->pageCodeBase) ? $this->pageCodeBase : BASE_PAGE_INDEX);
     if ($ctxt->isRubricPage() && !$ctxt->getRubric()) {
         $redirectPage->redirectHere();
     }
     if ($ctxt->isPostPage() && !$ctxt->getPost()) {
         $redirectPage->redirectHere();
     }
     if ($ctxt->isPopupPage() && !PopupPagesManager::inst()->isValidPageRequested()) {
         $redirectPage->redirectHere();
     }
     PageBuilder::inst()->buildPage();
 }
Ejemplo n.º 7
0
<?php

header('Content-Type: text/html; charset=utf-8');
require_once 'ps-includes/MainImport.php';
header('Content-Type: text/html; charset=utf-8');
ExceptionHandler::registerPretty();
$suffix = RequestArrayAdapter::inst()->str('page', 'img');
$tplPath = "crop/crop-page-{$suffix}.tpl";
if (!PSSmarty::smarty()->templateExists($tplPath)) {
    $suffix = 'img';
    $tplPath = "crop/crop-page-{$suffix}.tpl";
}
$SMARTY_PARAMS['JS_DEFS'] = PageBuilder::inst()->buildJsDefs();
$SMARTY_PARAMS['CROP_SUFFIX'] = $suffix;
$PARAMS['RESOURCES'] = PSSmarty::template('crop/page_resources.tpl', $SMARTY_PARAMS)->fetch();
$PARAMS['CONTENT'] = PSSmarty::template($tplPath)->fetch();
$PARAMS['TITLE'] = 'Мои мысли';
PSSmarty::template('crop/page_pattern.tpl', $PARAMS)->display();
Ejemplo n.º 8
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;
 }