Шаблоны и шаблонирование
CMS RUEN дает возможность использовать шаблоны для оформления информации, выдаваемой компонентами. При этом мы придерживаемся правила, что изначально информация должна корректно отображаться и настраиваться обычными пользователями CMS без шаблонов. В то же время опытные пользователи, владеющие знаниями верстки сайтов, смогут настроить выдачу информации по своему усмотрению. Чтобы все это работало правильно, при разработке компонентов следует использовать следующие механизмы работы с шаблонами.Подготовка данных
Каждый шаблон может содержать в себе множество элементов данных, местоположения которых обозначаются специальными маркерами. Если использовать распространенные маркеры, то тогда шаблоны получаются унифицированными и их можно использовать в различных компонентах. При желании, таким образом можно достичь единообразия отображения информации на сайте в разных разделах. В самом начале необходимо подготовиться к использованию шаблона, обозначив все используемые маркеры.#
# Подготовка данных
#
$_template = array();
$_template['adminka'] = '';
$_template['title'] = '';
$_template['link'] = $ruen_wpath_site.$i1.$blog_id1.$i2.'post'.$i3.$blog_posts[$_num][0].$i99;
$_template['image'] = '';
$_template['description'] = '';
$_template['date'] = '';
$_template['user'] = '';
$_template['tags'] = '';
$_template['themes'] = '';
$_template['moods'] = '';
$_template['comments'] = '';
После этого можно приступать к заполнению данных. Для этого в созданный массив вносятся все доступные данные под соответствующими индексами, которые совпадают с маркерами, используемыми в шаблонах.
Подготовка шаблона
При загрузке сайта все доступные шаблоны определяются на основе основного файла оформления сайта. Полный перечень шаблонов сводятся в единый массив$ruen_templates
. Данный массив можно использовать в настройке компонента, чтобы назначать разные шаблоны разным элементам страницы.Для корректной работы сайта необходимо также предусмотреть шаблон по-умолчанию, который изначально должен быть доступен в переменной
$_template_page
. Пример такого шаблона представлен ниже. Маркеры можно указывать как в квадратных скобках – [title]
, так и в виде HTML-комментариев – <!-- title -->
. Во втором случае, если данных для маркера нет, то он и не будет отображаться. Также при сборке шаблона по-умолчанию можно пользоваться проверкой данных на наличие нужных и просто не выводить пустые значения.Данный шаблон не является обязательным. При его отсутствии необходимо выполнять обнуление переменной
$_template_page
и учитывать тот момент, что без шаблона, подключенного из оформления сайта, данные отображаться не будут.#
# Подготовка шаблона
#
$_template_page = '<h2>[title]</h2>'.
'<p>[description]</p>';
Обработка шаблона
Функция шаблонизатора выполняет совмещение шаблона и подготовленных для него данных. Нужный шаблон можно указать в параметрах функции. Проверка на его наличие будет автоматически выполнена при запуске функции и при отрицательном результате будет использован шаблон по-умолчанию.#
# Обработка шаблона
#
$ruen_page .= ruen_templater($blog_options_templates_pagemain_post);