Коллекция материалов и статей для веб разработчиков


Дополнительное меню в UMI CMS с помощью usel

Для вывода главного меню в umi служит макрос "content menu()", но довольно часто возникает ситуация в создании дополнительного меню, а может даже и нескольких меню. Не проблема скажете вы, дополнительное меню можно вывести просто статично в шаблоне сайта, но что если нам надо меню редактируемое из админки? С помощью usel мы можем создать несколько дополнительных меню без особых проблем.
Итак, для начала чтобы иметь возможность вызывать usel из адресной строки как и другие макросы, необходимо настроить разрешения в config.ini
в секции [streams] нам надо указать параметр, usel.http.allow = "1"

Перед созданием непосредственно usel, нам необходимо создать в админке поля, в которых мы будем отмечать страницы, которые надо отображать в дополнительном меню. Например нам надо разместить дополнительное меню в футере, для этого заходим в "шаблоны данных", находим там пункт "Разделы сайта", находим необходимый раздел, например "Страница контента" и добавляем в нее поле со след параметрами
название - "Отображать в меню в футере"
идентификатор - show_footer (именно по нему мы будет проводить выборку)
тип - "кнопка-флажок"
Такие же поля если нужно добавляем в раздел "лента новостей", "раздел каталога" и т. д.

Также для usel нам понадобятся id разделов в которые мы добавили поля, их можно увидеть в адресной строке при редактировании(когда добавляем поля), например
http://site/admin/data/type_edit/31/ - 31 это id типа страница контента, и т. д.

Ниже приведен код usel с комментариями

8

Я думаю с данного кода все понятно в тегах "type" перечисляем все id разделов которые мы ищем, в property имя поля, которые мы ищем и указываем что значение должно быть равно "1", т е отмечена галочка в админке, limit количество выводимых страниц...
файл usel сохраняем под любым именем с расширением xml - "menu_footer.xml", копируем в папку /templates/themename/usels/ или просто в папку /usels/
Для просмотра в адресной строке используем http://site/usel://menu_footer
Для вызова


Если у нас несколько дополнительных меню, чтобы на каждое не создавать свой файл, изменим немного этот чтобы в выводе мы могли передавать имя поля как параметр и соответственно вызывать разные меню из одного usel, меняем следующим образом:

8

и соответственно вызов будет следующим:


Tags: 

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA