Example #1
0
 public function InitAction($aVars)
 {
     $oLang = $this->Lang_Dictionary();
     $this->Viewer_Assign('oLang', $oLang);
     $oUser = $this->GetUser();
     if ($oUser && $oUser->IsAdministrator() && Config::Get('plugin.' . $this->sPlugin . '.' . 'icon_menu')) {
         $sScript = Plugin::GetTemplateWebPath($this->sPlugin) . 'js/' . 'icon_menu.js';
         $this->Viewer_AppendScript($sScript);
     }
     if (Router::GetAction() == 'admin' || Router::GetAction() == 'error') {
         return;
     }
     if (!$oUser) {
         if (Router::GetAction() == 'registration') {
             $aIp = admGetAllUserIp();
             foreach ($aIp as $sIp) {
                 if ($this->PluginAceadminpanel_Admin_IsBanIp($sIp)) {
                     $this->Message_AddErrorSingle($this->Lang_Get('adm_banned2_text'), $this->Lang_Get('adm_denied_title'));
                     return $this->UserBanned(null);
                 }
             }
         }
         return;
     }
     if (defined('ADMIN_SITE_CLOSED') && ADMIN_SITE_CLOSED && !$oUser->IsAdministrator()) {
         $this->SiteClosed();
     }
     if ($oUser->IsBannedByLogin() || $oUser->IsBannedByIp() && !$oUser->IsAdministrator()) {
         return $this->UserBanned($oUser);
     }
 }
Example #2
0
 /**
  * Meta hook
  *
  * @return void
  */
 public function hook_meta()
 {
     $sAction = Router::GetAction();
     $sUrl = E::ModuleSeopack()->ClearUrl(R::Url('path'));
     $oSeopack = E::ModuleSeopack()->GetSeopackByUrl($sUrl);
     E::ModuleViewer()->Assign('sCurrentUrl', $sUrl);
     if ($oSeopack) {
         E::ModuleViewer()->Assign('oSeopack', $oSeopack);
     }
     $sMetaDescriptionTemplate = Plugin::GetTemplateDir(__CLASS__) . 'tpls/meta/description/' . $sAction . '.tpl';
     if (E::ModuleViewer()->TemplateExists($sMetaDescriptionTemplate)) {
         $sMetaDescription = E::ModuleViewer()->Fetch($sMetaDescriptionTemplate);
         if ($oSeopack && $oSeopack->getDescription()) {
             E::ModuleViewer()->Assign('sHtmlDescription', htmlspecialchars($oSeopack->getDescription()));
         } else {
             E::ModuleViewer()->Assign('sHtmlDescription', htmlspecialchars($sMetaDescription));
         }
     }
     $sMetaKeywordsTemplate = Plugin::GetTemplateDir(__CLASS__) . 'tpls/meta/keywords/' . $sAction . '.tpl';
     if (E::ModuleViewer()->TemplateExists($sMetaKeywordsTemplate)) {
         $sMetaKeywords = E::ModuleViewer()->Fetch($sMetaKeywordsTemplate);
         if ($oSeopack && $oSeopack->getKeywords()) {
             E::ModuleViewer()->Assign('sHtmlKeywords', htmlspecialchars($oSeopack->getKeywords()));
         } else {
             E::ModuleViewer()->Assign('sHtmlKeywords', htmlspecialchars($sMetaKeywords));
         }
     }
     if ($oSeopack && $oSeopack->getTitle()) {
         E::ModuleViewer()->Assign('sHtmlTitle', htmlspecialchars($oSeopack->getTitle()));
     }
 }
 public function Copyright()
 {
     if (Router::GetAction() != 'blogs' and Router::GetAction() != 'index' and Router::GetAction() != 'page') {
         return false;
     }
     return 'Спонсор плагина - <a href="http://catalognica.ru" target="_blank">catalognica.ru</a><br />';
 }
Example #4
0
 public function Copyright()
 {
     if (Router::GetAction() != 'blogs') {
         return;
     }
     return '<a href="http://imonger.ru" target="_blank">Спонсор DPB - ЯТрейдер</a><br />';
 }
Example #5
0
 public function Init()
 {
     if ($result = parent::Init()) {
         return $result;
     }
     $this->SetDefaultEvent('info');
     $this->InitParams();
     $this->aConfig = array_merge($this->aConfig, HelperPlugin::GetConfig());
     $this->oUserCurrent = $this->PluginAceadminpanel_Admin_GetUserCurrent();
     if (!$this->User_IsAuthorization() || !$this->oUserCurrent->isAdministrator()) {
         return $this->EventDenied();
     }
     $this->oUserCurrent = $this->User_GetUserCurrent();
     $this->Viewer_Assign('ROUTE_PAGE_ADMIN', ROUTE_PAGE_ADMIN);
     $this->Viewer_Assign('sModuleVersion', $this->PluginAceadminpanel_Admin_getVersion(true));
     if (Config::Get('plugin.avalogs.admin_file') && Config::Get('plugin.avalogs.admin_enable')) {
         if (!$this->oLogs) {
             $this->oLogs = $this->Adminlogs_GetLogs();
         }
         $this->oLogs->SetLogOptions('admin', array('file' => Config::Get('plugin.avalogs.admin_file')));
         $this->aLogsMsg[] = 'user=>' . $this->oUserCurrent->GetLogin() . ', ip=>' . $_SERVER["REMOTE_ADDR"] . ', action=>' . Router::GetAction() . ', event=>' . Router::GetActionEvent() . ', path=>' . Router::GetPathWebCurrent();
     }
     if (isset($_SERVER['HTTP_REFERER'])) {
         $this->sPageRef = $_SERVER['HTTP_REFERER'];
     }
     $this->PluginSetTemplate(Router::GetActionEvent());
     $this->sMenuItemSelect = Router::GetActionEvent();
     $this->sMenuSubItemSelect = Router::GetParam(0);
     $this->aPluginInfo = array('version' => HelperPlugin::GetConfig('version'));
     $this->PluginAppendStyle('admin.css');
     $this->PluginAppendScript('admin.js');
 }
 public function InitAction()
 {
     if (Config::Get('general.close') and Config::Get('plugin.getlasttopics.enable_rss')) {
         $sUrl = @$_SERVER['REDIRECT_URL'];
         if (Router::GetAction() == 'login' and substr_count($sUrl, '/rss') > 0) {
             Router::Action('rss', 'login');
         }
     }
 }
 public function CopyrightLink()
 {
     /**
      * Выводим везде, кроме страницы списка блогов и списка всех комментов
      */
     if (!(Router::GetAction() == 'blogs' or Router::GetAction() == 'comments')) {
         return '&copy; Powered by <a href="http://livestreetcms.ru">LiveStreet CMS</a>';
     }
     return '';
 }
 protected function EventError()
 {
     if (Router::GetAction() == 'admin') {
         //func_header_location(Config::Get('path.root.web') . '/admin/');
         admHeaderLocation(Config::Get('path.root.web') . '/admin/');
         exit;
     } else {
         return parent::EventError();
     }
 }
Example #9
0
 public function SponsorLink()
 {
     /**
      * Выводим на странице списка блогов и списка всех комментов
      */
     if (Router::GetAction() == 'blogs' or Router::GetAction() == 'comments') {
         return 'Спонсор релиза LiveStreet - <a href="http://radiorealty.ru" target="_blank">Портал недвижимости</a>';
     }
     return '';
 }
 public function WriteActionCounter($aParams)
 {
     $sAction = Router::GetAction();
     $sEvent = Router::GetActionEvent();
     if (!$sEvent) {
         $sEvent = 'default';
     }
     $oUser = $this->User_GetUserCurrent();
     if ($oUser) {
         $this->PluginBotchecker_Botchecker_writeActionCounter($oUser, $sAction, $sEvent);
     }
 }
Example #11
0
 /**
  * Проверка ключа, в ответ браузеру выдается только сообщение "ok" или "no"
  */
 public function CheckVerificationKey()
 {
     if (Router::GetAction() == 'error' and isset($_GET['livestreet_check_verification_key'])) {
         $sKey = trim((string) Config::Get('module.ls.verification_key'));
         if ($sKey and $_GET['livestreet_check_verification_key'] === $sKey) {
             echo 'ok';
             exit;
         }
         echo 'no';
         exit;
     }
 }
 public function Exec()
 {
     $aPages = $this->PluginPage_Page_GetPages(array('pid' => Config::Get('block.pageslist.pid'), 'active' => 1));
     //Для того, чтобы не допустить конфликта создаем локальный объект представления
     $oViewer = $this->Viewer_GetLocalViewer();
     $sAction = strtolower(Router::GetAction());
     $sParams = Router::GetParams();
     $oViewer->Assign('aPages', $aPages);
     $oViewer->Assign('sAction', $sAction);
     $oViewer->Assign('sParams', $sParams);
     $sPagesList = $oViewer->Fetch('block.pageslist_content.tpl');
     //Передаем данные уже в глобальный объект вида
     $this->Viewer_Assign('sPagesList', $sPagesList);
 }
Example #13
0
 public function CheckSearch($aVars)
 {
     if (!MYSEARCH_HOOK_ENABLE) {
         return;
     }
     if (Router::GetAction() == 'search') {
         if (getRequest('q') && isset($_SERVER["HTTP_REFERER"]) && preg_match('|/search/(\\w+)/|', $_SERVER["HTTP_REFERER"], $m)) {
             $sActionEvent = $m[1];
         } else {
             $sActionEvent = Router::GetActionEvent();
         }
         Router::Action('mysearch', $sActionEvent, Router::GetParams());
     }
 }
Example #14
0
 /**
  * Логика инициализации
  *
  */
 public function InitAction()
 {
     /**
      * Проверяем наличие директории install
      */
     if (is_dir(rtrim(Config::Get('path.root.server'), '/') . '/install')) {
         $this->Message_AddErrorSingle($this->Lang_Get('install_directory_exists'));
         Router::Action('error');
     }
     if (!$this->oUserCurrent and Config::Get('general.close') and Router::GetAction() != 'registration' and Router::GetAction() != 'login') {
         Router::Action('login');
     }
     $this->Hook_Run('init_action');
 }
 public function Init()
 {
     $this->sCurrentEvent = Router::GetActionEvent();
     if ($result = parent::Init()) {
         return $result;
     }
     if ($this->User_IsAuthorization()) {
         $this->oUserCurrent = $this->PluginAceadminpanel_Admin_GetUserCurrent();
     }
     if (!$this->oUserCurrent or !$this->oUserCurrent->isAdministrator()) {
         return $this->EventDenied();
     }
     if (!$this->oUserCurrent) {
         $this->oUserCurrent = $this->User_GetUserCurrent();
     }
     $this->Viewer_Assign('ROUTE_PAGE_ADMIN', ROUTE_PAGE_ADMIN);
     $this->Viewer_Assign('sModuleVersion', $this->PluginAceadminpanel_Admin_getVersion(true));
     $this->_InitParams();
     $this->aConfig = array_merge($this->aConfig, HelperPlugin::GetConfig());
     if (Config::Get('plugin.avalogs.admin_file') and Config::Get('plugin.avalogs.admin_enable')) {
         if (!$this->oLogs) {
             $this->oLogs = $this->Adminlogs_GetLogs();
         }
         $this->oLogs->SetLogOptions('admin', array('file' => Config::Get('plugin.avalogs.admin_file')));
         $this->aLogsMsg[] = 'user=>' . $this->oUserCurrent->GetLogin() . ', ip=>' . $_SERVER["REMOTE_ADDR"] . ', action=>' . Router::GetAction() . ', event=>' . Router::GetActionEvent() . ', path=>' . Router::GetPathWebCurrent();
     }
     $this->sPageRef = ACE::Backward('url');
     if (ACE::Backward('action') == Router::GetAction()) {
         $this->sFormAction = $this->sPageRef;
     }
     //$this->_PluginSetTemplate(Router::GetActionEvent());
     $this->sMenuItemSelect = Router::GetActionEvent();
     $this->sMenuSubItemSelect = Router::GetParam(0);
     $sVerion = HelperPlugin::GetConfig('version');
     if (!$sVerion) {
         $sVerion = ACEADMINPANEL_VERSION . '.' . ACEADMINPANEL_VERSION_BUILD;
     }
     if (preg_match('|[a-z\\-]+|i', $sVerion, $m)) {
         $sVerion = str_replace($m[0], '', $sVerion) . $m[0];
     }
     $this->aPluginInfo = array('version' => $sVerion);
     $sHtmlTitle = $this->Lang_Get('adm_title') . ' v.' . $this->PluginAceadminpanel_Admin_getVersion();
     //$this->Viewer_AddTemplateDir(HelperPlugin::GetTemplatePath(), true);
     $this->Viewer_AddHtmlTitle($sHtmlTitle);
     $this->Viewer_Assign('sAdminTitle', 'aceAdminPanel v.' . $this->PluginAceadminpanel_Admin_getVersion());
 }
Example #16
0
 /**
  * Обработка хука инициализации экшенов
  */
 public function InitAction()
 {
     /**
      * Проверяем наличие директории install
      */
     if (is_dir(rtrim(Config::Get('path.root.server'), '/') . '/install')) {
         $this->Message_AddErrorSingle($this->Lang_Get('install_directory_exists'));
         Router::Action('error');
     }
     /**
      * Проверка на закрытый режим
      */
     $oUserCurrent = $this->User_GetUserCurrent();
     if (!$oUserCurrent and Config::Get('general.close') and Router::GetAction() != 'registration' and Router::GetAction() != 'login') {
         Router::Action('login');
     }
     /**
      * Запуск обработки сборщика
      */
     $this->Ls_SenderRun();
 }
 /**
  * Hook Handler
  * Add banners to body footer
  *
  * @return mixed
  */
 public function AddBannersInFooter($aVars)
 {
     if (in_array(Router::GetAction(), Config::Get('plugin.banneroid.banner_skip_actions'))) {
         return false;
     }
     $aBanners = $this->PluginBanneroid_Banner_GetFooterBanners($_SERVER['REQUEST_URI'], true);
     if (count($aBanners)) {
         //Inser banner block
         $this->Viewer_Assign("aBanners", $aBanners);
         $this->Viewer_Assign('sBannersPath', Config::Get("plugin.banneroid.images_dir"));
         return $this->Viewer_Fetch(Plugin::GetTemplatePath(__CLASS__) . 'footer.banneroid.tpl');
     }
 }
Example #18
0
 /**
  * Анализируем правила и наборы массивов
  * получаем окончательные списки блоков
  */
 protected function BuildBlocks()
 {
     $sAction = strtolower(Router::GetAction());
     $sEvent = strtolower(Router::GetActionEvent());
     foreach ($this->aBlockRules as $sName => $aRule) {
         $bUse = false;
         /**
          * Если в правиле не указан список блоков, нам такое не нужно
          */
         if (!array_key_exists('blocks', $aRule)) {
             continue;
         }
         /**
          * Если не задан action для исполнения и нет ни одного шаблона path, 
          * или текущий не входит в перечисленные в правиле 
          * то выбираем следующее правило
          */
         if (!array_key_exists('action', $aRule) && !array_key_exists('path', $aRule)) {
             continue;
         }
         if (isset($aRule['action'])) {
             if (in_array($sAction, (array) $aRule['action'])) {
                 $bUse = true;
             }
             if (array_key_exists($sAction, (array) $aRule['action'])) {
                 /**
                  * Если задан список event`ов и текущий в него не входит,
                  * переходи к следующему действию.
                  */
                 foreach ((array) $aRule['action'][$sAction] as $sEventPreg) {
                     if (substr($sEventPreg, 0, 1) != '/') {
                         /**
                          * значит это название event`a
                          */
                         if ($sEvent == $sEventPreg) {
                             $bUse = true;
                             break;
                         }
                     } else {
                         /**
                          * это регулярное выражение
                          */
                         if (preg_match($sEventPreg, $sEvent)) {
                             $bUse = true;
                             break;
                         }
                     }
                 }
             }
         }
         /**
          * Если не найдено совпадение по паре Action/Event,
          * переходим к поиску по regexp путей.
          */
         if (!$bUse && isset($aRule['path'])) {
             $sPath = rtrim(Router::GetPathWebCurrent(), "/");
             /**
              * Проверяем последовательно каждый regexp
              */
             foreach ((array) $aRule['path'] as $sRulePath) {
                 $sPattern = "~" . str_replace(array('/', '*'), array('\\/', '[\\w\\-]+'), $sRulePath) . "~";
                 if (preg_match($sPattern, $sPath)) {
                     $bUse = true;
                     break 1;
                 }
             }
         }
         if ($bUse) {
             /**
              * Если задан режим очистки блоков, сначала чистим старые блоки
              */
             if (isset($aRule['clear'])) {
                 switch (true) {
                     /**
                      * Если установлен в true, значит очищаем все
                      */
                     case $aRule['clear'] === true:
                         $this->ClearBlocksAll();
                         break;
                     case is_string($aRule['clear']):
                         $this->ClearBlocks($aRule['clear']);
                         break;
                     case is_array($aRule['clear']):
                         foreach ($aRule['clear'] as $sGroup) {
                             $this->ClearBlocks($sGroup);
                         }
                         break;
                 }
             }
             /**
              * Добавляем все блоки, указанные в параметре blocks
              */
             foreach ($aRule['blocks'] as $sGroup => $aBlocks) {
                 foreach ((array) $aBlocks as $sName => $aParams) {
                     /**
                      * Если название блока указывается в параметрах
                      */
                     if (is_int($sName)) {
                         if (is_array($aParams)) {
                             $sName = $aParams['block'];
                         }
                     }
                     /**
                      * Если $aParams не являются массивом, значит передано только имя блока
                      */
                     if (!is_array($aParams)) {
                         $this->AddBlock($sGroup, $aParams);
                     } else {
                         $this->AddBlock($sGroup, $sName, isset($aParams['params']) ? $aParams['params'] : array(), isset($aParams['priority']) ? $aParams['priority'] : 5);
                     }
                 }
             }
         }
     }
     return true;
 }
Example #19
0
 public function Display($sTemplate)
 {
     // ajax-запросы нас не интересуют ?
     if (!$this->sResponseAjax) {
         if ($sTemplate) {
             $sTemplate = ACE::FilePath($this->Plugin_GetDelegate('template', $sTemplate), '/');
             if (!$this->TemplateExists($sTemplate)) {
                 if (dirname($sTemplate) == '.') {
                     if (strpos($sClass = Router::GetActionClass(), 'Plugin') === 0) {
                         $sTemplate = HelperPlugin::GetPluginSkinPath($sClass) . 'actions/Action' . ucfirst(Router::GetAction()) . '/' . $sTemplate;
                     }
                 }
                 $sTemplate = $this->_getRealTeplate($sTemplate);
             }
             $sPathRoot = ACE::FilePath(Config::Get('path.root.server'), '/');
             if ($this->bAddPluginDirs and strpos($sTemplate, $sPathRoot) === 0 and is_file($sTemplate)) {
                 // добавляем пути к шаблонам
                 $sPath = dirname($sTemplate);
                 if ($sPath and $sPath != '.') {
                     $this->AddTemplateDir($sPath, true);
                     if (basename(dirname($sPath)) == 'actions') {
                         $this->AddTemplateDir(dirname(dirname($sPath)), true);
                     }
                 }
             }
         }
     }
     $this->_initTplHooks();
     return parent::Display($sTemplate);
 }
Example #20
0
 /**
  * Загружает виджеты, указанные в правилах
  *
  * @return mixed
  */
 protected function _loadWidgetsList()
 {
     $aResult = parent::_loadWidgetsList();
     // добавляем LS-блоки по старым правилам, если они есть
     $aBlockRules = Config::Get('block');
     if ($aBlockRules) {
         $sAction = strtolower(Router::GetAction());
         $sEvent = strtolower(Router::GetActionEvent());
         $sEventName = strtolower(Router::GetActionEventName());
         foreach ($aBlockRules as $aRule) {
             $bUse = false;
             // * Если в правиле не указан список блоков, нам такое не нужно
             if (!array_key_exists('blocks', $aRule)) {
                 continue;
             }
             /*
              * Если не задан action для исполнения и нет ни одного шаблона path,
              * или текущий не входит в перечисленные в правиле
              * то выбираем следующее правило
              */
             if (!array_key_exists('action', $aRule) && !array_key_exists('path', $aRule)) {
                 continue;
             }
             if (isset($aRule['action'])) {
                 if (in_array($sAction, (array) $aRule['action'])) {
                     $bUse = true;
                 }
                 if (array_key_exists($sAction, (array) $aRule['action'])) {
                     /**
                      * Если задан список event`ов и текущий в него не входит,
                      * переходи к следующему действию.
                      */
                     foreach ((array) $aRule['action'][$sAction] as $sEventPreg) {
                         if (substr($sEventPreg, 0, 1) == '/') {
                             // * Это регулярное выражение
                             if (preg_match($sEventPreg, $sEvent)) {
                                 $bUse = true;
                                 break;
                             }
                         } elseif (substr($sEventPreg, 0, 1) == '{') {
                             // * Это имя event'a (именованный евент, если его нет, то совпадает с именем метода евента в экшене)
                             if (trim($sEventPreg, '{}') == $sEventName) {
                                 $bUse = true;
                                 break;
                             }
                         } else {
                             // * Это название event`a
                             if ($sEvent == $sEventPreg) {
                                 $bUse = true;
                                 break;
                             }
                         }
                     }
                 }
             }
             // * Если не найдено совпадение по паре Action/Event, то переходим к поиску по regexp путей.
             if (!$bUse && isset($aRule['path'])) {
                 $sPath = rtrim(Router::GetPathWebCurrent(), "/");
                 // * Проверяем последовательно каждый regexp
                 foreach ((array) $aRule['path'] as $sRulePath) {
                     $sPattern = "~" . str_replace(array('/', '*'), array('\\/', '[\\w\\-]+'), $sRulePath) . "~";
                     if (preg_match($sPattern, $sPath)) {
                         $bUse = true;
                         break 1;
                     }
                 }
             }
             if ($bUse) {
                 // * Если задан режим очистки блоков, сначала чистим старые блоки
                 if (isset($aRule['clear'])) {
                     switch (true) {
                         // * Если установлен в true, значит очищаем все
                         case $aRule['clear'] === true:
                             //$this->ClearBlocksAll();
                             $aResult = array();
                             break;
                         case is_string($aRule['clear']):
                             //$this->ClearBlocks($aRule['clear']);
                             foreach ($aResult as $sId => $oWidget) {
                                 if ($oWidget->GetGroup() == $aRule['clear']) {
                                     unset($aResult[$sId]);
                                 }
                             }
                             break;
                         case is_array($aRule['clear']):
                             /*
                             foreach ($aRule['clear'] as $sGroup) {
                                 $this->ClearBlocks($sGroup);
                             }
                             */
                             foreach ($aResult as $sId => $oWidget) {
                                 if (in_array($oWidget->GetGroup(), $aRule['clear'])) {
                                     unset($aResult[$sId]);
                                 }
                             }
                             break;
                     }
                 }
                 // * Добавляем все блоки, указанные в параметре blocks
                 foreach ($aRule['blocks'] as $sGroup => $aBlocks) {
                     foreach ((array) $aBlocks as $sName => $aParams) {
                         // * Если название блока указывается в параметрах
                         if (is_int($sName)) {
                             if (is_array($aParams)) {
                                 $sName = $aParams['block'];
                             }
                         }
                         // * Если $aParams не являются массивом, значит передано только имя блока
                         if (!is_array($aParams)) {
                             $sName = $aParams;
                             $aParams = array();
                             $nPriority = isset($aParams['priority']) ? $aParams['priority'] : 5;
                         } else {
                             $nPriority = isset($aParams['priority']) ? $aParams['priority'] : 5;
                             $aParams = isset($aParams['params']) ? $aParams['params'] : array();
                         }
                         $aWidgetData = array('name' => $sName, 'group' => $sGroup, 'priority' => $nPriority, 'params' => $aParams);
                         $oWidget = $this->MakeWidget($aWidgetData);
                         $aResult[$oWidget->getId()] = $oWidget;
                     }
                 }
             }
         }
     }
     return $aResult;
 }
Example #21
0
 public function InitAction()
 {
     $oLang = $this->Lang_Dictionary();
     $this->Viewer_Assign('oLang', $oLang);
     $this->Viewer_Assign('MSIE6', ACE::MSIE6());
     $this->Viewer_Assign('WEB_ADMIN_SKIN', ACE::MSIE6());
     $oUser = $this->_getUser();
     $this->_checkPluginAction();
     $sScript = Config::Get('path.admin.skin') . '/assets/js/' . 'ace-admin.js';
     $this->Viewer_AppendScript($sScript);
     if (Router::GetAction() == 'admin' or Router::GetAction() == 'error') {
         return;
     }
     if (!$oUser) {
         if (Router::GetAction() == 'registration') {
             $aIp = ACE::GetAllUserIp();
             foreach ($aIp as $sIp) {
                 if ($this->PluginAceadminpanel_Admin_IsBanIp($sIp)) {
                     $this->Message_AddErrorSingle($this->Lang_Get('adm_banned2_text'), $this->Lang_Get('adm_denied_title'));
                     return $this->_userBanned(null);
                 }
             }
         }
         return;
     }
     if (defined('ADMIN_SITE_CLOSED') and ADMIN_SITE_CLOSED and !$oUser->IsAdministrator()) {
         $this->SiteClosed();
     }
     if ($oUser->IsBannedByLogin() || ($oUser->IsBannedByIp() and !$oUser->IsAdministrator())) {
         return $this->_UserBanned($oUser);
     }
 }
Example #22
0
 /**
  * Получить путь (полное имя файла) к шаблону акшена
  *
  * @param   string  $sFile
  * @return  string
  */
 public static function GetTemplateActionPath($sFile = '')
 {
     $aClassElements = self::ClassNameExplode(Router::GetActionClass());
     if (isset($aClassElements['Action'])) {
         $sAction = $aClassElements['Action'];
     } else {
         $sAction = Router::GetAction();
     }
     return self::GetTemplatePath('actions/Action' . ucfirst($sAction) . '/' . $sFile);
 }
Example #23
0
 */
require_once $sPathToFramework . '/config/loader.php';
/**
 * Определяем дополнительные параметры роутинга
 */
$aRouterParams = array('callback_after_parse_url' => array(function () {
    /**
     * Логика по ЧПУ топиков
     * Если URL соответствует шаблону ЧПУ топика, перенаправляем обработку на экшен/евент /blog/_show_topic_url/
     * Через свои параметры конфига передаем исходный URL
     * Суть обработки _show_topic_url в том, чтобы определить ID топика и корректность его URL, если он некорректен, то произвести его корректировку через внешний редирект на правильный URL
     * Если удалось определить топик и URL корректный, то происходит внутренний редирект на стандартный евент отображения топика по ID (/blog/12345.html)
     */
    $sUrlRequest = '';
    if (Router::GetAction()) {
        $sUrlRequest .= Router::GetAction();
    }
    if (Router::GetActionEvent()) {
        $sUrlRequest .= '/' . Router::GetActionEvent();
    }
    if (Router::GetParams()) {
        $sUrlRequest .= '/' . join('/', Router::GetParams());
    }
    /**
     * Функция для формирования регулярного выражения по маске URL топика
     *
     * @param string $sUrl
     * @return string
     */
    $funcMakePreg = function ($sUrl) {
        $sUrl = preg_quote(trim($sUrl, '/ '));
Example #24
0
 /**
  * Восстановление сохраненного скина, чтобы сторонние плагины могли создать свою собственную админику
  *
  * @param $aEvents
  */
 static function RestoreAdminSkin($aEvents)
 {
     if (Config::Get('saved')) {
         if ($aEvents and !is_array($aEvents)) {
             $aEvents = array_map('trim', explode(',', $aEvents));
         } else {
             $aEvents = (array) $aEvents;
         }
         if (Router::GetAction() == 'admin' and (!$aEvents or in_array(Router::GetActionEvent(), $aEvents))) {
             if (Config::Get('saved.view.skin')) {
                 Config::Set('view.skin', Config::Get('saved.view.skin'));
             }
             if (Config::Get('saved.path.smarty.template')) {
                 Config::Set('path.smarty.template', Config::Get('saved.path.smarty.template'));
             }
             if (Config::Get('saved.path.static.skin')) {
                 Config::Set('path.static.skin', Config::Get('saved.path.static.skin'));
             }
         }
     }
 }