Руководство по эксплуатации
СNCat 4.1
Редактирование оформления
http://www.cn-software.com/cncat/
Версия руководства: 1.0.1 (20.05.2008)
© 2002-2008 "CN-Software" Ltd.
Содержание
3.1 Включение сгенерированного HTML-кода
Оформление страниц каталога CNCat 4.1 осуществляется посредством тем оформления. Выбор темы оформления производится в административном интерфейсе каталога (Настройки – Каталог - Тема).
Темы оформления CNCat 4.1 обладают следующими возможностями:
Примечание: В темах не поддерживается PHP-код. При необходимости исполнения PHP-кода можно создать файлы _top.php и/или _bottom.php, которые будут отображаться в начале и в конце страницы каталога.
Примечание: Не следует изменять файлы стандартных тем оформления: это может повлиять на корректность обновления версий каталога. Если Вы хотите изменить дизайн каталога, то рекомендуется создать новую тему.
Темы оформления находятся в папке /cncat_config/themes/. Каждая тема располагается в отдельной папке.
Для создания новой темы достаточно скопировать одну из стандартных тем в новую папку и задать заголовок темы в файле theme.txt (см. ниже).
Тема состоит из файлов описания шаблонов (*.tpl), файла описания темы (theme.txt) и вспомогательных файлов (style.css, файлы изображений и т.д.).
Файл theme.txt содержит название и описание темы:
В файлах описания шаблонов содержится описание одного или нескольких шаблонов, используемых в зависимости от отображаемой страницы:
Страница |
Файлы шаблонов (.tpl) |
Страница каталога - страница, содержащая список категорий, ссылок и статей. К страницам каталога относятся главная страница каталога и страницы для всех категорий. |
index |
Расширенное описание сайта – страница, доступная по ссылке [+]. |
extended |
Карта каталога – отображает список всех категорий каталога. |
map |
Страница результатов поиска |
search |
Страница добавления ссылки/статьи |
add |
Страницы административного интерфейса |
admin |
Каждый шаблон оформления описывает один из элементов страницы, либо часть элемента страницы. Далее представлен список шаблонов для каждого tpl-файла.
Шаблон общей структуры страниц каталога
index |
Определяет общую структуру главной страницы. С помощью этого шаблона можно задавать порядок основных элементов страницы каталога. |
Шаблоны, общие для всех (или большинства) пользовательских страниц.
common.tpl |
|
top |
Верхняя часть страницы (header) |
bottom |
Нижняя часть страницы (footer) |
menu |
Пункты меню в заголовке (Каталог, Добавить ссылку и т.д.) |
searchform |
Форма поиска |
sort_top |
Начало блока сортировки ссылок |
sort |
Элемент блока сортировки |
sort_delim |
Разделитель между элементами блока сортировки |
sort_bottom |
Конец блока сортировки |
pagenav_top |
Начало блока навигации по страницам |
pagenav_curpage |
Номер текущей страницы |
pagenav_pageitem |
Номер страницы, не являющейся текущей |
pagenav_delim1 |
Разделитель между соседними номерами страниц |
pagenav_delim2 |
Разделитель между дальними номерами страниц |
pagenav_bottom |
Конец блока навигации по страницам |
filters_top |
Начало блока фильтров |
filter_top |
Начало описания отдельного фильтра |
filtval |
Значение фильтра |
filtval_delim |
Разделитель между значениями фильтра |
filter_bottom |
Конец описания отдельного фильтра |
filters_delim |
Разделитель между описаниями фильтров |
filters_end |
Конец блока фильтров |
Шаблоны отображения категорий и подкатегорий, а также пути к текущей категории.
cats_top |
Начало блока категорий |
cats_column_top |
Начало столбца блока категорий |
cat |
Описание категории; включает вызов шаблонов «subcat…» со списком подкатегорий для данной категории. |
cats_column_bottom |
Конец столбца блока категорий |
cats_bottom |
Конец блока категорий |
subcats_top |
Начало блока подкатегорий для текущей категории |
subcat |
Описание подкатегории |
subcats_delim |
Разделитель между подкатегориями |
subcats_more |
Троеточие либо другой символ в конце списка подкатегорий, если их больше, чем может быть отображено на странице. |
subcats_bottom |
Конец блока подкатегорий |
catpath_top |
Начало описания пути к текущей категории (Главная->Подкатегория->Подкатегория->Текущая категория) |
catpath_rootcat |
Корневая категория |
catpath_parentcat_delim |
Разделитель между родительскими категориями |
catpath_parentcat |
Одна из родительских категорий |
catpath_currentcat_delim |
Разделитель перед текущей категорией |
catpath_currentcat |
Текущая категория |
catpath_bottom |
Конец блока описания пути к категории |
Шаблоны отображения ссылок на пользовательских страницах каталога.
items_top |
Начало блока ссылок |
item |
Описание ссылки |
items_bottom |
Конец блока ссылок |
admin_rating_top |
Начало блока оценки администратора (только для администратора) |
admin_rating_num |
Оценка |
admin_rating_num_active |
Текущая оценка для ссылки |
admin_rating_delim |
Разделитель между оценками |
admin_rating_bottom |
Конец блока оценок администратора |
itemcount |
Количество ссылок в категории |
favitems_top |
Начало блока избранных ссылок (блок включается в начало общего списка ссылок) |
favitems_bottom |
Конец блока избранных ссылок |
brokenscript |
Скрипт отображения окна подтверждения предупреждения администратора (при нажатии на ссылку [x]) |
newitems_top |
Начало блока новых ссылок |
newitem |
Описание новой ссылки |
newitems_bottom |
Конец блока новых ссылок |
Шаблоны отображения статей на пользовательских страницах каталога.
article |
Анонс статьи |
newarticles_top |
Начало блока новых статей |
newarticle |
Анонс новой статьи |
newarticles_bottom |
Конец блока новых статей |
Шаблоны страницы расширенного описания ссылки.
extended.tpl |
|
ext |
Определяет общую структуру страницы расширенного описания ссылки, включая и само описание. Включает вызовы шаблонов «ext…», описывающих список категорий и фильтров для ссылки. |
ext_cats_top |
Начало блока списка категорий для текущей ссылки |
ext_cat |
Описание категории |
ext_cat_delim |
Разделитель между категориями |
ext_cats_bottom |
Конец блока списка категорий |
ext_filter_top |
Начало описания фильтра |
ext_filtval |
Значение фильтра |
ext_filter_delim |
Разделитель между значениями фильтра |
ext_filter_bottom |
Конец описания фильтра |
Шаблоны страницы, содержащей полный текст статьи.
ext_article |
Определяет общую структуру страницы с полным текстом статьи. Включает вызовы шаблонов «ext…», описывающих список категорий и фильтров для статьи. |
ext_cats_top |
Начало блока списка категорий для текущей статьи |
ext_cat |
Описание категории |
ext_cat_delim |
Разделитель между категориями |
ext_cats_bottom |
Конец блока списка категорий |
ext_filter_top |
Начало описания фильтра |
ext_filtval |
Значение фильтра |
ext_filter_delim |
Разделитель между значениями фильтра |
ext_filter_bottom |
Конец описания фильтра |
Шаблоны страницы «Карта каталога».
map |
Определяет структуру страницы карты каталога |
map_cat_next_level |
Отображается при возрастании уровня вложенности категории |
map_cat |
Описание категории |
map_cat_prev_level |
Отображается при уменьшении уровня вложенности категории |
Шаблоны страницы результатов поиска. Для отображения ссылок используются шаблоны из файла item.tpl.
search |
Определяет структуру страницы с результатами поиска. |
Шаблоны страницы добавления ссылки.
add.tpl |
|
add |
Определяет общую структуру всех страниц добавления ссылки |
form |
Определяет структуру формы добавления ссылки (для режима «Одна форма» |
step1 |
Определяют структуру форм добавления ссылки по шагам (для режима «Мастер добавления») |
final |
Определяет информацию, отображаемую после добавления ссылки |
field_link_url |
Определяют элементы ввода соответствующих полей ссылки |
extfield_ext_int1 |
Определяют элементы ввода соответствующих расширенных полей ссылки |
add_filter_top |
Начало блока выбора значений фильтра (включает название фильтра) |
add_filtval |
Элемент выбора значения фильтра |
add_filter_bottom |
Конец блока выбора значений фильтра |
add_backlinks_top |
Начало блока списка предлагаемых обратных ссылок |
add_backlink |
Описание обратной ссылки |
add_backlinks_bottom |
Конец блока обратных ссылок |
add_errors_top |
Начало блока списка ошибок |
add_error |
Описание ошибки |
add_errors_bottom |
Конец блока списка ошибок |
add_cat_next_level |
Отображается при возрастании уровня вложенности категории в списке категорий |
add_cat |
Элемент выбора категории |
add_cat_prev_level |
Отображается при уменьшении уровня вложенности категории в списке категорий |
Шаблоны страницы добавления статьи.
add_article_form |
Определяет общую структуру формы добавления статьи |
Шаблоны отображения ссылок в административном интерфейсе.
admin_items_begin |
Начало блока ссылок административного интерфейса |
admin_item |
Описание ссылки |
admin_items_end |
Конец блока ссылок |
admin_item_cat |
Описание категории, в которую входит ссылка |
admin_item_cat_delim |
Разделитель между категориями |
admin_item_rating |
Элемент рейтинга ссылки |
Описание скриптов JavaScript.
js_calendar |
Функции отображения всплывающего календаря (в административном интерфейсе) |
Шаблоны писем с уведомлениями для администраторов и пользователей.
mail.tpl |
|
mail_admin_to |
Описание шаблона писем для уведомления администратора и модераторов |
mail_add_from |
Описание шаблона писем для уведомления пользователей о предварительном добавлении ссылки в каталог на рассмотрение администратора |
mail_approve_from |
Описание шаблона писем для уведомления пользователей об утверждении ссылки в каталоге |
mail_decline_from |
Описание шаблона писем для уведомления пользователей об отклонении ссылки |
Файл шаблона содержит описание одного или нескольких шаблонов. Каждый шаблон имеет следующий формат:
{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-код шаблона отображается «как есть», за исключением специальных элементов. Это означает, что отображаются также все переносы строк, пробелы и пр. При необходимости весь шаблон можно записать в одну строку.
Ниже приведено подробное описание специальных элементов.
Формат: {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-кода. Рекомендуется использовать эту функцию для отображения всех строковых переменных.
Примечание: Индексы массивов указываются без кавычек.
В целях безопасности в настоящее время в шаблонах доступны следующие переменные:
Формат 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])}
В качестве параметра функции может использоваться выражение (переменные, константы, операции, без использования скобок).
В целях безопасности доступны только следующие функции: