Структура шаблонов для оформления объектов

На печать

Фреймворк Багира – система, позволяющая организовывать структуру сайта любым желаемым способом. Вы можете создать категорию, поместить в нее одновременнои страницы, и новости, и товары. Естественно, при такой гибкости возникает необходимость правильно и корректно выводить этот «разношерстный» контент.

Для этого была разработана система шаблонов, позволяющая организовать оформление данных в зависимости от их назначения. Благодаря этому можно создавать единый файл шаблона оформления для целых разделов сайта.

Ниже будут описаны правила работы с шаблонами для следующих макросов системы:

%structure.objView()%

%structure.objList()%

%structure.objListByTags()%

%structure.getPropertyList()%

 

 

Структура шаблонов

Шаблоны для оформления объектов находятся в папке /template/structure/objects.

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

Так же есть еще одна приятная мелочь. Если вы в модуле «Конструктор» добавили объекту новое свойство и хотите вывести его на сайте, просто укажите соответствующий макрос в нужном шаблоне. Все остальное сделает система, теперь нет необходимости открывать обработчики вывода и разбираться в PHP-коде.

Шаблон состоит из следующих блоков:

 

frame

Выводит общее оформление содержимого страницы. Для вывода списка подразделов используйте макрос %list%. Далее, при постройке списка используются блоки list и list_active. При этом, если есть блок frame_list, полученный список подразделов дополнительно оформляется в соответствии с этим блоком.

Примеры названий блока в зависимости от класса раздела:

Доступные локальные макросы:

%list%

Вывод подразделов страницы

%back_url%

Ссылка «вернуться назад»

%obj.id%

ID страницы

%obj.name%

Имя страницы

%obj.url%

URL страницы

%obj.имя_поля%

Вы можете обратиться к любому свойству объекта

 

frame_list

Необязательный блок, выводит обрамление списка подразделов. Примеры названий блока в зависимости от класса раздела:

Доступные локальные макросы:

%list%

Выводит список страниц в оформлении блоков list или list_active.

%count_page%

Количество страниц в постраничной навигации. Передается параметром в макрос %structure.navigation()%.

 

list

Выводит оформление элемента списка. Примеры названий блока в зависимости от класса элемента списка:

 

list_active

Необязательный блок. Выводит оформление активного элемента (страницы) списка. Примеры названий блока в зависимости от класса элемента списка:

Для блоков list или list_active доступны следующие локальные макросы:

%obj.id%

ID страницы

%obj.name%

Имя страницы

%obj.url%

URL страницы

%obj.target%

Вернет «target=”_blank”», если у страницы стоит галочка «Открывать в новом окне».

%obj.class%

Вернет имя класса, можно использовать для генерации имен CSS классов.

%obj.имя_поля%

Вы можете обратиться к любому свойству объекта.

   

%obj.num%

Номер страницы по порядку в текущем списке.

%class-first%

Вернет «first», если страница является первой в списке. Используется для генерации имен для CSS классов.

%class-last%

Вернет «last», если страница является последней в списке. Используется для генерации имен для CSS классов.

%class-odd%

Вернет «odd», если порядковый номер страницы четный. Используется для генерации имен для CSS классов.

%class-even%

Вернет «even», если порядковый номер страницы нечетный. Используется для генерации имен для CSS классов.

%class-third% Вернет «third», для каждой третьей страницы в списке. Используется для генерации имен для CSS классов.

 

list_empty или empty

Необязательный блок. Используется в том случае, если нужно показать сообщение «список пуст». Примеры названий блока в зависимости от класса раздела:

Блок list_empty используется только макросом %structure.objView()%. Другие макросы используют название empty, при этом уточнение по классу не используется.

 

separator

Необязательный блок. Оформление разделителя для элементов списка. Уточнение класса данных не используется.



Что-то не так? Напиши, учтем!