Core_Auth::logged()

https://www.hostcms.ru/api7/classes/Core-Auth.html

Вывод данных только для администраторов

1
if(Core_Auth::logged())
2
{
3
print_r($_SESSION);
4
}
5
6
// для определенного пользвоателя ЦА
7
$oUser = Core_Auth::getCurrentUser();
8
9
if(!is_null($oUser) && $oUser->id == 123)
10
{
11
print_r($_SESSION);
12
}

Компрессия CSS и JS

Позволяет отключать компрессию css и js для администраторов сайта, но для посетителей компрессия будет работать
1
Core_Page::instance()
2
->prependCss('/css/bootstrap.min.css')
3
->fileTimestamp(TRUE)
4
->compress(!Core_Auth::logged())
5
->showCss();
6
7
Core_Page::instance()
8
->prependJs('/js/jquery.min.js')
9
->fileTimestamp(TRUE)
10
->compress(!Core_Auth::logged())
11
->showJs(TRUE);

Компиляция Less

При внесении администратором сайта изменений в less файл макета, будет сразу компилировать css (код можно разместить например в основном макете сайта в самом начале)
1
if(Core_Auth::logged() && Core_Page::instance()->template)
2
{
3
$oTemplate = Core_Page::instance()->template;
4
5
$css = is_file($oTemplate->getTemplateLessFilePath())
6
? $oTemplate->loadTemplateLessFile()
7
: $oTemplate->loadTemplateCssFile();
8
$oTemplate->saveTemplateLessFile($css);
9
10
while ($oTemplate->template_id)
11
{
12
$oTemplate = $oTemplate->getParent();
13
14
$css = is_file($oTemplate->getTemplateLessFilePath())
15
? $oTemplate->loadTemplateLessFile()
16
: $oTemplate->loadTemplateCssFile();
17
$oTemplate->saveTemplateLessFile($css);
18
}
19
}

XSL-шаблоны

Добавления тэга Core_Auth в XSL-шаблон через хук
1
class Auth_Shop_Controller_Show
2
{
3
static public function onBeforeRedeclaredShow($controller)
4
{
5
Core_Auth::logged() && $controller->addEntity(
6
Core::factory('Core_Xml_Entity')
7
->name('Core_Auth')
8
->value(1)
9
);
10
}
11
}
12
// хук для контроллера информационных систем
13
Core_Event::attach('Informationsystem_Controller_Show.onBeforeRedeclaredShow', array('Auth_Shop_Controller_Show', 'onBeforeRedeclaredShow'));
14
// хук для контроллера магазина
15
Core_Event::attach('Shop_Controller_Show.onBeforeRedeclaredShow', array('Auth_Shop_Controller_Show', 'onBeforeRedeclaredShow'));
Проверка в XSL-шаблоне
1
<xsl:if test="/shop/Core_Auth">
2
Я админ!
3
</xsl:if>

TPL-шаблоны

Проверка в TPL-шаблоне
{if Core_Auth::logged()}
Я админ!
{/if}

Template (макеты)

При разработке нового дизайн позволяет подменять макеты и XSL-шаблоны для ТДС на новые для администраторов сайта, но для посетителей будут работать старые, данный хук можно разметсить в bootstrap.php
1
if(Core_Auth::logged())
2
{
3
class Auth_Template_Observer
4
{
5
static public function onBeforeSetTemplate($controller)
6
{
7
$libParams = Core_Page::instance()->libParams;
8
$object = Core_Page::instance()->object;
9
$template = Core_Page::instance()->template;
10
11
if(CURRENT_SITE == 1) // ID сайта
12
{
13
isset($libParams['shopXsl']) && $libParams['shopXsl'] == 'МагазинКаталогТоваров'
14
&& $libParams['shopXsl'] = 'МагазинКаталогТоваров [NEW]';
15
16
$aTemplates = array(
17
97 => 116 // старый макет => новый макет
18
);
19
20
$oTemplate = Core_Entity::factory('Template', Core_Array::get($aTemplates, $template->id, $template->id));
21
22
Core_Page::instance()
23
->libParams($libParams)
24
->template($oTemplate);
25
}
26
}
27
}
28
29
Core_Event::attach('Core_Command_Controller_Default.onBeforeSetTemplate', array('Auth_Template_Observer', 'onBeforeSetTemplate'));
30
}

Вывод 404 на тестовой странице

if(!Core_Auth::logged() && strpos(Core::$url['path'], '/test/') !== FALSE)
{
Core_Page::instance()->error404();
}