Smarty Создать приватную зону
В smarty есть способ для реализации тега по типу {admin}{/admin}. Либо же можно как либо замаскировать {if $var eq true}{/if}
Ответы (1 шт):
Автор решения: teran
→ Ссылка
Можете добавить свою блочную функцию.
В контроллере (в пхп коде) вы устаналиваете переменную а-ля
$this->_smarty->assign('admin', true);
Потом регистрируете плагин
$this->_smarty->registerPlugin("block", "admin", function($params, $content, $template, &$repeat){
if(!$repeat){
$adm = $template->smarty->getTemplateVars('admin');
if($adm) {
return $content;
}
}
return null;
});
а в шаблоне используете
{admin}hey!{/admin}
По крайней мере можете двигаться в этом направлении и изучать нюансы.
В такой реализации, конечно, это не отличается от {if $admin}hey{/if} но потенциально, можно расширить параметрами и добавить еще какую-то логику, тогда смысл имеет. Например, проверять статус авторизации и роль юзера.
{auth allow=['admin', 'editor']}hey!{/auth}
проверяя внутри не только user но и сравнивая условный $user->role с $params['allow']