Skip to content
butschster edited this page Jan 17, 2013 · 1 revision

Меню

Меню сайта состоит из двух частей:

  1. section - раздел (Code)
  2. page - страница раздела (Code)

Получения объекта раздела:

Model_Navigation::get_section('Content')

Если раздела с таким именем не существует, он будет создан

В нем интерес представляют всего пара методов:

->id() - название раздела без i18n

->name() - название раздела с i18n

->counter() - сумма всех счетчиков страниц

->add_page(Model_Navigation_Page, $priority) - Добавление страницы в раздел и указание позиции относительно других пунктов меню.

->find_page_by_uri($uri) - Поиск страницы по адресу. Возвращает объект Model_Navigation_Page, либо NULL

->update() - Обновление данных раздела. Если были внесены какие то изменения в страницу раздела, метод запустится автоматически


Получение объекта страницы

Объект страницы можно получить двумя способами:

  1. Model_Navigation::get_section('Content')->find_page_by_uri($uri)
  2. Model_Navigation::find_page_by_uri($uri)

В первом случае мы ищем страницу в конкретном разделе, во втором будет произведен поиск по всем раздела и отдана страница с первым совпадением.

Методы:

->get_section() - Получить объект раздела страницы

->set_section(Model_Navigation_Section) - Поместить страницу в раздел

->set_active($status) - Сделать страницу активной


Добавление пунктов меню

Для добавления нового пункта меню необходимо

Пример добавления нового пункта:

Model_Navigation::get_section('Content')
	->add_page(new Model_Navigation_Page(array(
		'name' => __('Messages'), 
		'url' => URL::site('messages')
	)), 999);

Возможные параметры:

name - Название страницы

url - URL страницы

counter - Установить счетчик для страницы

divider - Установить разделитель для страницы

permissions - Права на доступ (По умолчанию: array('administrator') )

icon - Иконка пункта меню (В разработке)