Собственные шаблоны для (категорий/головной страницы)

Материал из Документация NGCMS

Перейти к: навигация, поиск

Q: Можно ли для какой-то конкретной категории (или для нескольких) задать свой собственный шаблон?
A: Да, можно.

Для этого необходимо:
1. Создать в каталоге вашего шаблона (предположим, что вы используете шаблон default) создать каталог ncustom - в нём будут храниться "персональные" шаблоны категорий:
/templates/default/ncustom/

2. Внутри только что созданного каталога - создаём каталоги для персональных шаблонов, например - custom1 и custom2.
/templates/default/ncustom/custom1/
/templates/default/ncustom/custom2/

3. В каталоге персонального шаблона необходимо создать следующие файлы:
news.short.tpl - отвечает за вывод короткой новости
news.full.tpl - отвечает за вывод полной новости
comments.form.tpl - отвечает за вывод формы добавления комментария
comments.show.tpl - отвечаеи за вывод комментариев

Все эти файлы обязательно необходимо создавать. Проще всего для начала скопировать их из каталога шаблона.

4. Зайти в настройки нужных категорий (панель управления => настройка => управление категориями => редактировать) и в поле "шаблон для новостей категории" выбрать необходимый вам шаблон.

Внимание!
Если вы используете плагин switcher или просто переключаетесь между шаблонами, то помните, что собственные шаблоны категорий необходимо создавать во всех используемых шаблонах!

Q: А я очень сильно хочу для главной страницы использовать один шаблон (main.tpl), а для остальных страниц - другой. Так можно?
A: Нельзя. Но если ОЧЕНЬ хочется, то можно

Штатно такой функции в движке нет.
Но вы можете немного пропатчить код движка и получить нужную вам возможность.
1. Открываете файл index.php, находите блок:

// ===================================================================
// Make page output
// ===================================================================
 
$tpl -> template('main', tpl_site);
$tpl -> vars('main', $template);
if (!$SUPRESS_TEMPLATE_SHOW) {
    echo $tpl -> show('main');
} else if (!$SUPRESS_MAINBLOCK_SHOW) {
    echo $template['vars']['mainblock'];
}

2. Заменяете этот блок на:

// ===================================================================
// Make page output
// ===================================================================
$masterTemplateName = 'main';
 
// BEGIN: ** AREA FOR HANDY CORRECTIONS **
// END: ** AREA FOR HANDY CORRECTIONS **
 
$tpl -> template($masterTemplateName, tpl_site);
$tpl -> vars($masterTemplateName, $template);
if (!$SUPRESS_TEMPLATE_SHOW) {
    echo $tpl -> show($masterTemplateName);
} else if (!$SUPRESS_MAINBLOCK_SHOW) {
    echo $template['vars']['mainblock'];
}

Всё, теперь движок готов к внесению безопасных изменений.

3. Между строками:

// BEGIN: ** AREA FOR HANDY CORRECTIONS **
// END: ** AREA FOR HANDY CORRECTIONS **

вставляете код (в нашем случае шаблоном для главной страницы будет шаблон mainroot.tpl):

if ((!$action)&&(!$category)&&(!$cstart)&&(!$year)&&(!$month)&&(!$id)) {
 $masterTemplateName = 'mainroot';
}

Вуаля, всё готово