Меню с помощью Usel (для tpl-шаблонизатора) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Задача:''' сделать дополнительное вертикальное меню. '''Решение:''' для реализации этой зад…»)
(нет различий)

Версия 07:24, 28 июля 2011

Задача: сделать дополнительное вертикальное меню.

Решение: для реализации этой задачи мы будем использовать выборку с помощью использования Usel, с помощью этой выборки мы можем вывести в дополнительное меню страницы у которых не стоят галочки "отображать в меню".

1. Заходим в модуль «Шаблоны данных», выбираем вкладку «Типы данных», нажимаем на "+" рядом с "Раздел сайта", далее на "страница контента". В окрывшемся окне нажимаем «Добавить группу», нажимаем «Добавить поле» (назовем его, например, field) тип "кнопка флажок" и нажимаем «Сохранить». Далее заходим в модуль «Структура», определяем какие из страниц мы хотим вывести в дополнительном меню, открываем эти страницы для редактирования и ставим галочку в поле "field".

2. Создаем непосредственно сам шаблон выборки Usel. Шаблон выборки Usel это XML-файл, который должен находится в папке ~/usels/. Подробно о создании шаблона Usel написано в документации разработчиков сайтов [1] Для нашей задачи он будет выглядеть таким образом:

<?xml version="1.0" encoding="utf-8"?>
<selection>
 <target expected-result="pages">
  <type id="42" />
 </target>
 <sort>rand()</sort>
 <property name="field" value="1" />
</selection>

Где "field"-название, добавленого поля, 42-это id объекта страницы (можно посмотреть в модуле "Шаблоны данных"), назовем наш шаблон выборки for_menu.

3. Для вывода работы выборки используется макрос %data doSelection()%. К примеру такой %data doSelection('default', for_menu)% (где default -это шаблон отвечает за вид вывода выборки, находится по пути ~tpls/data/usel/ его можно отредактировать нужным вам образом , а for_menu- это название нашего шаблона для выборки).

Аналогичным образом мы можем создать неограниченное число выборок и сделать неограниченное число выводов дополнительных меню на разных страницах нашего сайта.