Powered by CodeIgniter

Обновления

(3)
7
7 голосов
Последние обновления движка.
Шестеренка Меню Друзья, снова приветствую вас! Отличные новости, сегодня весь день работал над движком, и работа эта была плодотворной. Результатом стала шестеренка «Меню», которая позволит вам организовать на сайте разного рода навигационные меню.
Главная изюминка шестеренки — возможность выводить меню только на необходимых страницах по соответствию с регулярными выражениями. Кроме того, вы можете указать, когда тот или иной элемент меню будет активным, опять же, при помощи регулярного выражения, а также добавить иконку к элементу, выставить нужный порядок при помощи 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>
Дистрибутив, как всегда, обновлен.
21:46 ← 12 февраля 2010 Отправить в Твиттер adminadmin  RSS comments 22

Комментарии (22) ↓

inetlover inetlover time 22:32 ← 12 февраля 2010 #
Спасибо! Завтра буду изучать все нововведения в движке, как твои Дима, так и уважаемого Sudera.
Автор
admin admin time 22:52 ← 12 февраля 2010 #
Завсегда пожалуйста!
Freem Freem time 12:57 ← 19 февраля 2010 #
Дмитрий, не обнаруживаю иконку gears/menu/img/icon/passive.png где-то потерялась:)
Автор
admin admin time 13:03 ← 19 февраля 2010 #
Потерялись в пути :-) Обновил.
Varhal Varhal time 19:01 ← 08 июня 2010 #
Помните, что header.tpl имеет порядковый номер 1, а footer.tpl — 1000
Выставляю 1000, что бы меню появилось в футере, результат:
footer
Автор
admin admin time 19:04 ← 08 июня 2010 #
Попробуй выставить смежные значения.
Varhal Varhal time 19:07 ← 08 июня 2010 #
окей, когда ставишь 1000, сохраняешь и опять заходишь, значение меняется на 255) Это максимальное значение??
Автор
admin admin time 19:12 ← 08 июня 2010 #
Это в базе нужно сменить тип поля на mediumint.
Varhal Varhal time 19:17 ← 08 июня 2010 #
а тип какого именно поля?
Автор
admin admin time 19:22 ← 08 июня 2010 #
Поля position.
Varhal Varhal time 19:23 ← 08 июня 2010 #
уже догадался спс
Varhal Varhal time 19:26 ← 08 июня 2010 #
сменил тип поля на mediumint и длину значения на 1000:
#1439 — Display width out of range for column 'position' (max = 255)
Автор
admin admin time 19:27 ← 08 июня 2010 #
Аттрибут unsigned проверь, чтобы был. Смени просто на int.
Varhal Varhal time 19:30 ← 08 июня 2010 #
mysql
Автор
admin admin time 19:32 ← 08 июня 2010 #
Конечно, потому что длина значения не может быть в 1000 цифр :-) Ограничься четыремя.
Varhal Varhal time 19:36 ← 08 июня 2010 #
Все равно исправляет на 255)))
Varhal Varhal time 19:12 ← 08 июня 2010 #
А есть возможность прописать меню в футере другим способом? Перепробовал практически все значения от 1 до 255, в footer не хочет становится))
Автор
admin admin time 19:12 ← 08 июня 2010 #
Есть — вывести его в переменную :-)
Varhal Varhal time 19:14 ← 08 июня 2010 #
Так отображается в Chrome, а в Opera:
menu
dqpb dqpb time 02:06 ← 21 июня 2010 #
Этой шестеренки почему то нет в каталоге, а вопрос следующий, возможно ли создать этой шестеренкой журнал? Например у нас есть 100 страниц (статический матириал) эти страницы мы хотим пролистать одну за другой и обратно. Т.е делим 100 страниц на пять пунктов меню и далее по переходе по пункту меню начинаем листать. Возможно такое?
Freem Freem time 02:12 ← 21 июня 2010 #
она входит в дистрибутив
dqpb dqpb time 02:15 ← 21 июня 2010 #
Он требует доработки наверное. В том плане что не хватает полей:

  1. title
  2. meta