Exemplo n.º 1
0
 protected function doBuild(PageContext $ctxt, PageBuilderContext $builderCtxt, RequestArrayAdapter $requestParams, ArrayAdapter $buildParams)
 {
     //1. ЗАГОЛОВОК
     $builderCtxt->setTitle($this->basicPage->getTitle());
     //2. JAVASCRIPT
     $jsParams['postId'] = $ctxt->getPostId();
     $jsParams['rubricId'] = $ctxt->getRubricId();
     $jsParams['postType'] = $ctxt->getPostType();
     $jsParams['isPostsListPage'] = $ctxt->isPostsListPage();
     $jsParams['isRubricPage'] = $ctxt->isRubricPage();
     $jsParams['isPostPage'] = $ctxt->isPostPage();
     //Разборы, пройденные пользователем
     $passed = TrainManager::inst()->getUserPassedLessons();
     $jsParams['passedLessons'] = empty($passed) ? null : $passed;
     //Структура проекта
     $jsParams['structure'] = NavigationManager::inst()->getStructure();
     $builderCtxt->setJsParams($jsParams);
     //Параметры, зависимые от страницы
     $builderCtxt->setJsParams($this->basicPage->getJsParams());
     //3. SMARTY RESOURCES
     $builderCtxt->setSmartyParams4Resources($this->basicPage->getSmartyParams4Resources());
     //4. GET SMARTY PARAMS FOR TPL
     $smartyParams['host'] = ServerArrayAdapter::HTTP_HOST();
     $smartyParams['content'] = BasicPagesManager::inst()->getResourcesLinks($this->basicPage->getIdent(), ContentHelper::getContent($this->basicPage));
     return $smartyParams;
 }
Exemplo n.º 2
0
 /**
  * Метод загружает текущую страницу.
  * При этом он имеет ввиду, что страница может и не быть зарегистрирована.
  * Все методы, вне методов WebPages, должны работать в предположении, что текущая 
  * страница существует и установлена. Данный метод нужен только для нужд этого класса.
  * 
  * @return WebPage - текущая страница или null
  */
 private static function loadCurPage($ensure)
 {
     if (!self::$CURPAGE_SETTED) {
         self::$CURPAGE_SETTED = true;
         self::$CURPAGE = self::getPage(ServerArrayAdapter::PHP_SELF(), false);
     }
     check_condition(!$ensure || self::$CURPAGE instanceof WebPage, 'Текущая страница не установлена');
     return self::$CURPAGE;
 }
Exemplo n.º 3
0
 protected function doBuild(PageContext $ctxt, PageBuilderContext $builderCtxt, RequestArrayAdapter $requestParams, ArrayAdapter $buildParams)
 {
     //1. ЗАГОЛОВОК
     $builderCtxt->setTitle('Моя страница');
     //2. JAVASCRIPT
     $jsParams['param1'] = $ctxt->getPostId();
     $jsParams['param2'] = 'My value';
     $builderCtxt->setJsParams($jsParams);
     //3. SMARTY RESOURCES
     $builderCtxt->setSmartyParam4Resources('TIMELINE_ENABE', true);
     //4. GET SMARTY PARAMS FOR TPL
     $smartyParams['host'] = ServerArrayAdapter::HTTP_HOST();
     return $smartyParams;
 }
Exemplo n.º 4
0
 public function send($email)
 {
     //Загружаем код пользователя по e-mail
     $userId = PsUser::instByMail($email)->getId();
     //Генерируем код
     $CODE = PsUserCode::passRecover()->generateAndSave($userId);
     //Отправляем письмо
     try {
         $content = $this->foldedEntity->fetchTpl(array('code' => $CODE->getCode()));
         PsMailSender::fastSend('Восстановление пароля на ' . ServerArrayAdapter::HTTP_HOST(), $content, $email);
     } catch (Exception $ex) {
         //Коды, высланные пользователю, нужно удалить
         $CODE->dropUnusedCodes($userId);
         throw $ex;
     }
 }
Exemplo n.º 5
0
 /**
  * @covers PsUrl::current
  */
 public function testCurrent()
 {
     $this->assertEquals(PsUrl::current(), 'http://127.0.0.1');
     //Меняем HTTP_HOST
     $host = 'postupayu.ru';
     ServerArrayAdapter::inst()->set('HTTP_HOST', $host, true);
     $this->assertEquals(PsUrl::current(), "http://{$host}");
     //Меняем SERVER_PORT
     $port = 100;
     ServerArrayAdapter::inst()->set('SERVER_PORT', $port, true);
     $this->assertEquals(PsUrl::current(), "http://{$host}:{$port}");
     //Меняем HTTPS
     ServerArrayAdapter::inst()->set('HTTPS', 'on', true);
     $this->assertEquals(PsUrl::current(), "https://{$host}:{$port}");
     //Отменяем и проверим, что всё вернулось
     ServerArrayAdapter::inst()->restoreStory();
     $this->assertEquals(PsUrl::current(), 'http://127.0.0.1');
 }
Exemplo n.º 6
0
 public function isAjax()
 {
     return $this->isAjax || ServerArrayAdapter::IS_AJAX();
 }
Exemplo n.º 7
0
 /**
  * Метод полностью очищает состояние отправщика писем, подготовливая его к отправке нового письма
  * 
  * @return PsMailSender
  */
 public function reset()
 {
     $this->ClearAllRecipients();
     $this->ClearAttachments();
     $this->ClearCustomHeaders();
     $this->SetSubject('');
     $this->SetBody('');
     $this->SetFrom(PS_MAIL_NO_REPLY . '@' . ServerArrayAdapter::HTTP_HOST(), PS_MAIL_NO_REPLY);
     return $this;
 }
Exemplo n.º 8
0
 /**
  * Аудит входа пользователя в систему
  */
 public function afterLogin($userId)
 {
     $data['ip'] = ServerArrayAdapter::REMOTE_ADDR();
     $data['agent'] = ServerArrayAdapter::HTTP_USER_AGENT();
     $this->doAudit(self::ACTION_LOGIN, $userId, $data, true, self::ACTION_REGISTER);
 }
Exemplo n.º 9
0
 /**
  * Метод запускается после регистрации всех страниц
  */
 private final function init()
 {
     $this->curpage = $this->searchPage(ServerArrayAdapter::PHP_SELF());
     //Если страница не определена, то, возможно, это страница рабочего окружения (другой CMS).
     if (!$this->curpage && PsEnvironment::isIncluded()) {
         $this->curpage = $this->getPage(PAGE_ENV);
     }
     $this->LOGGER->info('CURRENT: {}', $this->curpage);
 }
Exemplo n.º 10
0
 /**
  * Метод возвращает текущий открытый url:
  * http://postupayu.ru/t.php?a=b
  */
 public static function current()
 {
     return self::toHttp(ServerArrayAdapter::REQUEST_URI());
 }
Exemplo n.º 11
0
function smarty_function_PSHOST($params, Smarty_Internal_Template &$smarty)
{
    $host = ServerArrayAdapter::HTTP_HOST();
    $ucf = ArrayAdapter::inst($params)->bool('ucf');
    echo $ucf ? ucfirst($host) : $host;
}