все форумы все темы добавить тему
Отдельные шаблоны сайта и админки
Здравствуйте.
Столкнулся с проблемой: я хочу сделать свой шаблон для сайта. "Склонировал" папку default, переименовал и вожусь там. Сделал изменения в файле default.tpl и в all.css
Проблема в том, что теперь и этот шаблон распространяется на админку, что очень неудобно.
Как можно в админке оставить родной шаблон, а для сайта - другой.
 
Спасибо.
 
ЗЫ: Ваша CMS очень понравилась.
На самом деле, копирование базового шаблона целиком - не самая лучшая практика. Если в своем дизайне продублировать все имеющиеся шаблоны, то придется самостоятельно следить за их актуальностью. Гораздо разумнее копировать и изменять только те шаблоны, которые не получается изменить требуемым образом с помощью CSS. например, дизайн этого сайта состоит всего из четырех шаблонов - все остальные наследуются из базового. В итоге, при реализации дополнительных функций мне его не приходится править.
 
Что касается вопроса разных дизайнов для разных разделов, то тут можно пойти тремя путями. Они все не очень красивые, но система изначально задумывалась для работы в едином дизайне:
 
1. в каждом модуле админки прописать принудительное переключение дизайна
PHP

LabCMS::i()->setSkin('default');
 
Этот способ самый некрасивый и неправильный
 
2. Является развитием способа номер 1. Пишется статичный системный модуль, который состоит из одной строчки (той, что я выше написал) и подключается к корню раздела админки.
 
3. Можно сделать в своем дизайне шаблон admin.tpl, который будет являться копией шаблона default.tpl из базового шаблона, но заменить в нем автоматически генерируемые значения
Smarty

<base href="{$base}" />
<link rel="icon" href="{$base}favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="{$base}favicon.ico" type="image/x-icon" />
...
{foreach $css as $item}
<link rel="stylesheet" type="text/css" href="{$item.path}" media="{$item.media}" />
{/foreach}
{foreach $js as $item}
<script type="text/javascript" src="{$item}"></script>
{/foreach}
 

на статичные значения, указывающие на базовый шаблон. Теперь подключив этот шаблон к корневому элементу админки, получим тот же результат что и в первых двух случаях.
О, спасибо! Попробую.
Loki: 3. Можно сделать в своем дизайне шаблон admin.tpl, который будет являться копией шаблона default.tpl из базового шаблона, но заменить в нем автоматически генерируемые значения
 
Smarty
...
{foreach $css as $item}
<link rel="stylesheet" type="text/css" href="{$item.path}" media="{$item.media}" />
{/foreach}
...

на статичные значения, указывающие на базовый шаблон.
В связи с этим у меня вопрос, а нельзя ли добавить определение переменной, скажем, $admin_path, чтобы в admin.tpl можно было использовать генерируемое значение атрибута href="{$item.admin_path}" ?
Для единого дизайна это никаких проблем не создаст, зато тем, кому его мало чуть-чуть облегчит жизнь то есть расширит возможности системы.
jen: В связи с этим у меня вопрос, а нельзя ли добавить определение переменной, скажем, $admin_path, чтобы в admin.tpl можно было использовать генерируемое значение атрибута href="{$item.admin_path}" ?
Да штука в том, что нет никакого admin_path. Все модули равноправны, а расположены они в две группы исключительно из-за того, что люди ожидают увидеть "админку" как некий отдельный раздел. Например, модуль статичных страниц сам себе админка, аналогично с форумом, гостевой и прочими. А если кому-то хочется отдельного дизайна для админки, то это совсем необязательно будет базовый дизайн - ведь выбор может пасть на любой другой... Так что что помещать в admin_path совсем непонятно
Спасибо, все ясно. Наверное, сознание не сразу отвыкает от привычной схемы