Друзья, снова приветствую вас! Отличные новости, сегодня весь день работал над движком, и работа эта была плодотворной. Результатом стала шестеренка «Меню», которая позволит вам организовать на сайте разного рода навигационные меню.Главная изюминка шестеренки — возможность выводить меню только на необходимых страницах по соответствию с регулярными выражениями. Кроме того, вы можете указать, когда тот или иной элемент меню будет активным, опять же, при помощи регулярного выражения, а также добавить иконку к элементу, выставить нужный порядок при помощи drag-n-drop и много всего другого.
Посмотрим на форму создания/редактирования меню и разберем ее элементы.
- Название — используется только в админке, хотя можно выводить и в шаблон.
- Машинное имя — аналог ЧПУ, но использовать можно для задания уникального id при верстке.
- Маски отображения — самое интересное. Если вам понятен синтаксис роутов, а еще лучше регулярных выражений, вы можете определять, на каких страницах будет отображаться данное меню. Можно задать сразу несколько правил. Чтобы инвертировать правило, следует первым знаком строки поставить восклицательный знак. Например, правило !admin/:any — везде, кроме админки.
- Размер иконок — загружаемые картинки пунктов меню будут автоматически масштабироваться до указанных размеров.
- Шаблон меню — выпадающее меню, состоящее из шаблонов папки /gears/menu/templates/. Вы можете на каждое меню иметь по своему шаблону.
- Отображать — права доступа. Можно отображать или всем, или только гостям, или только пользователям. Удобно для реализации ссылок «Вход»/«Выход».
- Порядок отображения в шаблоне — вы можете как собственноручно вывести меню в шаблон (если порядок установлен на 0), так и попросить движок сделать это автоматески, выставив необходимый порядковый номер. Помните, что header.tpl имеет порядковый номер 1, а footer.tpl — 1000.
У каждого меню, разумеется, есть свои элементы или пункты меню.
- Название — текст ссылки.
- Машинное имя — для задания уникального id при верстке.
- Ссылка — относительный путь до страницы. Можно поставить полную ссылку с http:// и www, тоже будет работать.
- Паттерн активного пункта меню — когда элемент меню будет считаться активным, синтаксис аналогичен маске отображения меню.
- Иконка — изображение, которое можно выводить в шаблоне.
- Отображать — настройки доступа, аналогичные настройкам меню.
Напоследок можно рассмотреть шаблон /gears/menu/templates/tabs.tpl, который выводит меню в виде привычных табов.
<table class="tabs" width="100%" height="32" cellpadding="0" cellspacing="0">
<tr>
<td class="first"> </td>
{foreach $menu.items as $item}
<td {if $item.url_name}id="{$item.url_name}"{/if} width="{? 100/count($menu.items)}%" {if $item.active}class="active"{/if}><a href="{$item.link}">{$item.name}</a></td>
{/foreach}
<td class="last"> </td>
</tr>
</table>
Дистрибутив, как всегда, обновлен.




#1439 — Display width out of range for column 'position' (max = 255)