Нодус:Шаблоны отображения

Компонент: Nodus

В Нодусе существует гибкая и простая в использовании система шаблонов отображения. Для изменения внешнего вида какой-то части сайта достаточно всего лишь скопировать стандартный шаблон и изменить его под собственные нужды, не забывая при этом очищать кеш при любом изменении файловой структуры (т.е. при создании или удалении шаблона).

Шаблоны для отображения материала

Кроме различных режимов отображения материала (для каждого из которых есть свой шаблон), иногда встречается задача изменить внешний вид лишь какого-то конкретного материала - не типа, а именно материала, одной записи. Вот, например, понадобилось нам, чтобы все коты отображались с одним шаблоном, а конкретно Леопольд - с другим, персональным шаблоном. Для этого нужно всего лишь создать файл этого шаблона со специальным именем, из которого будет следовать, что это шаблон именно для Леопольда.

Допустим, идентификатор материала "Леопольд" равен 46. Мы можем воспользоваться им для именования шаблона. Создаем файл (копируем из full.phtml):

 app/components/Nodus/app/Datatype/Cat/full-46.phtml

Редактируем и сбрасываем кеш. После этого система будет знать, что материал типа "cat" с идентификаторм 46 в режиме отображения "full" нужно отбражать именно с этим шаблоном, а остальные материалы типа "cat" - с шаблоном full.phtml

Однако, идентификатор - это не наглядно. Хорошо, если такой "Леопольд" - один. А если их десятки, то задача найти нужный файл станет проблемой - не всякий запомнит на память идентификаторы всех котов. Поэтому есть такая штука как мнемокод материала. Это поле есть на форме редактирования во вкладке "Доп.параметры". Если мнемокод указан, то мы можем воспользоваться им точно также, как и идентификатором. Т.е., укажем мнемокод "leopold" и назовем файл шаблона так:

 app/components/Nodus/app/Datatype/Cat/full-leopold.phtml

Мнемокоды не обязательно должны быть уникальными. Мы вполне можем сделать кучу котов с одинаковым мнемокодом и сделать отдельный шаблон для отображения не конкретного кота, а целого класса котов. А если будут пересекаться мнемокоды у материалов разного типа, то это и подавно ни на что не повлияет.

Метки: Нодус
26.06.2014
Все статьи