Руководство по эксплуатации программного продукта
CNCat 4.0
Приложение 1
Редактирование оформления
© 2002-2008 "CN-Software" Ltd.
http://www.cn-software.com/cncat/
Версия документа: 1.0 (24.12.2007)
Содержание
- Общая информация
- Файлы темы и шаблоны
- index.tpl
- common.tpl
- category.tpl
- item.tpl
- extended.tpl
- map.tpl
- search.tpl
- add.tpl
- admin.tpl
- js.tpl
- mail.tpl
- Формат файла шаблонов
Общая информация
Оформление страниц каталога CNCat 4.0 осуществляется посредством тем оформления. Выбор темы оформления производится в административном интерфейсе каталога (Настройки – Каталог - Тема).
Темы оформления CNCat 4.0 обладают следующими возможностями:
расположение элементов страниц в произвольном порядке;
отображение произвольных полей категорий, подкатегорий и ссылок;
отображение переменных;
поддержка условий (if-then-else);
включение шаблонов оформления друг в друга.
Примечание: В темах не поддерживается PHP-код. При необходимости исполнения PHP-кода можно создать файлы _top.php и/или _bottom.php, которые будут отображаться в начале и в конце страницы каталога.
Файлы темы и шаблоны
Примечание: не следует изменять файлы стандартных тем оформления: это может повлиять на корректность обновления версий каталога. Если Вы хотите изменить дизайн каталога, то рекомендуется создать новую тему.
Темы оформления находятся в папке /cncat_config/themes/. Каждая тема располагается в отдельной папке.
Для создания новой темы достаточно скопировать одну из стандартных тем в новую папку и задать заголовок темы в файле theme.txt (см. ниже).
Тема состоит из файлов описания шаблонов (*.tpl), файла описания темы (theme.txt) и вспомогательных файлов (style.css, файлы изображений и т.д.).
Файл theme.txt содержит название и описание темы:
title - заголовок темы (отображается при выборе темы);
screenshot - имя файла со скриншотом темы;
description - описание темы.
В файлах описания шаблонов содержится описание одного или нескольких шаблонов, используемых в зависимости от отображаемой страницы:
|
Страница |
Файлы шаблонов (.tpl) |
|
Страница каталога - страница, содержащая список категорий и ссылок. К страницам каталога относятся главная страница каталога и страницы для всех категорий. |
index |
|
Расширенное описание сайта – страница, доступная по ссылке [+]. |
extended |
|
Карта каталога – отображает список всех категорий каталога. |
map |
|
Страница результатов поиска |
search |
|
Страница добавления ссылки |
add |
|
Страницы административного интерфейса |
admin |
Каждый шаблон оформления описывает один из элементов страницы, либо часть элемента страницы. Ниже перечислен список шаблонов для каждого tpl-файла:
index.tplШаблон общей структуры страниц каталога. |
|
|
index |
Определяет общую структуру главной страницы. С помощью этого шаблона можно задавать порядок основных элементов страницы каталога. |
search.tplШаблоны страницы результатов поиска. Для отображения ссылок используются шаблоны из файла item.tpl. |
|
|
search |
Определяет структуру страницы с результатами поиска. |
js.tplОписание скриптов JavaScript. |
|
|
js_calendar |
Функции отображения всплывающего календаря (в административном интерфейсе) |
Формат файла шаблонов
Файл шаблона содержит описание одного или нескольких шаблонов. Каждый шаблон имеет следующий формат:
{TEMPLATE имя_шаблона}
HTML-код шаблона
{/TEMPLATE}
Для некоторых шаблонов после имени задается список используемых полей базы данных. Данная опция предусмотрена для повышения производительности. Например:
{TEMPLATE newitem (ITEM[item_id, item_title, item_descr, link_url, link_target])}
В данном случае из базы данных для переменной ITEM запрашиваются только поля item_id, item_title, item_descr, link_url, link_target.
HTML-код шаблона может содержать следующие специальные элементы:
включение сгенерированного HTML-кода;
включение другого шаблона;
отображение переменной;
условие типа if-then;
условие типа if-then-else;
вызов функции (из ограниченного списка).
Примечание. HTML-код шаблона отображается «как есть», за исключением специальных элементов. Это означает, что отображаются также все переносы строк, пробелы и пр. При необходимости весь шаблон можно записать в одну строку.
Ниже приведено подробное описание специальных элементов.
Включение сгенерированного HTML-кода
Формат: {DISPLAY имя_кода}
Пример: {DISPLAY CATEGORIES}
Используется для включения уже сгенерированных блоков страницы в шаблон. Генерация каждого блока производится ядром CNCat на основе нескольких шаблонов. Например, в файле index.tpl таким образом включаются блоки категорий, ссылок, сортировки и т.д.
Включение другого шаблона
Формат: {INCLUDE имя_шаблона}
Пример: {INCLUDE top}
Применяется для простого включения одного шаблона в другой; например, для подключения верхней и нижней частей страницы.
Отображение переменной
Формат 1: {$имя_переменной}
Формат 2: {$имя_массива[индекс1] }
Формат 3: {$имя_массива[индекс1][индекс2]}
Пример 1: {$CNCAT[item][link_url]}
Пример 2: {cn_str($CNCAT[item][item_title])}
Используется для отображения переменных и элементов массивов. В частности, в примере 1 показано отображение URL ссылки.
В примере 2 дополнительно используется функция cn_str(), аналогичная PHP-функции htmlspecialchars(). Данная функция предотвращает вставку вредоносного JS и HTML-кода. Рекомендуется использовать эту функцию для отображения всех строковых переменных.
Примечание:индексы массивов указываются без кавычек.
В целях безопасности в настоящее время в шаблонах доступны следующие переменные:
$CNCAT – массив, содержащий всю информацию о странице и выводимых данных;
$THEMEURL – корневой URL для файлов темы;
$CNCAT_ENGINE – объект ядра CNCat.
Условия
Формат 1: {IF условие} HTML-код {ENDIF}
Формат 2: {IF условие} HTML-код {ELSE} HTML-код {ENDIF}
Пример:
{IF $CNCAT[page][cat_item_count]>0}
{$CNCAT[lang][items_in_category]}:
<strong>{$CNCAT[page][cat_item_count]}</strong>
{ELSE}
{$CNCAT[lang][no_items_in_category]}
{ENDIF}
В данном примере проверяется условие: если количество ссылок на странице больше 0 – то следует вывести количество; в противном случае следует вывести сообщение об отсутствии ссылок.
В условиях допустимо использование переменных и констант (число либо строка в одинарных кавычках).
Поддерживаются следующие операторы:
== != > < >= <= || && % + - * /
Поддерживаются вызовы функций (см. ниже).
Скобки не поддерживаются.
Вызов функции
Формат 1: {имя_функции ()}
Формат 2: {имя_функции (параметр, ….)}
Пример 1: {cn_str($CNCAT[item][item_title])}
Пример 2: {cn_date($CNCAT[item][item_insert_date])}
В качестве параметра функции может использоваться выражение (переменные, константы, операции, без использования скобок).
В целях безопасности доступны только следующие функции:
cn_str(string) – подготавливает строку к выводу на страницу (аналог htmlspecialchars());
cn_date(mysql_date) – форматирует дату;
intval();
ceil();
floor();
round();
cn_copyright() – отображает Copyrights (обязательна для CNCat Free).
