06:25 Модуль «Динамическое меню» | |
Модуль используется для создания динамического меню сайта для движка DataLife Engine. Модуль позволяет: 1. Создавать ссылки на публикации с учетом настроек сайта 2. Управлять порядком следования пунктов меню 3. Неограниченный уровень вложения 4. Создавать неограниченное количество меню для сайта с индивидуальными шаблонами Описание модуля: $uid - идентификатор уникальный для каждого вызова данного модуля в рамках сайта (значение по умолчанию 0) $folder - отправная точка для отрисовки меню. Принимает значения АдминПанель->Категории->ID (тип int значение по умолчанию 0). Тоесть $folder задает родительскую категорию а в меню будут выводиться все дочерние категории до заданной глубины вложения. При $folder=0 (значение по умолчанию) будут выводиться все категории до заданной глубины вложения. $startview - указывает на то отображать ли в меню ссылку на главную страницу сайта (1 - отображать, 0 - не отображать значение по умолчанию 1). Актуально только в случае когда $folder=0. $template - задает шаблон используемый для отрисовки меню (значение по умолчанию "dm-level-1") $notview - задает через запятую идентификаторы категорий которые недолжны отображаться в меню (дочерние документы данной категории отображаться токже небудут) принимает значения АдминПанель->Категории->ID[1],АдминПанель->Категории->ID[1],... (значение по умолчанию null) $cache_file - задает имя кэш-файла (значение по умолчанию menu) Порядок следования пунктов меню задается параметром АдминПанель->Категории->Position, может принимать как положительные так и отрицательные значения. menu_view($m=null, $folder=null, $template=null) - вспомогательная функция для отрисовки меню следующего уровня $m - массив содержащий информацию обовсех категориях, $folder - id родительской категории, $template - задает шаблон используемый для отрисовки меню. Примеры вызова модуля: {include snippet="menu.php" param=""} {include snippet="menu.php" param="uid=1&folder=11&template=dm-level¬view=12,13&cache_file=dm-cache"} {include snippet="menu.php" param="uid=23&template=dm-level"} Примеры шаблонов меню: В качестве шаблонизатора используется PHP-native в шаблон из скрипта передаются следующие переменные: folder - id родительской категории (отправная точка для отрисовки меню) catid - id активной категории, используется для подсветки активного пункта меню cat - массив содержащий информацию обовсех категориях menu - массив содержащий информацию о категориях которые необходимо отрисовать для данного уровня #шаблон dm-level-1?>
menu as $val):?> Простейший пример, меню отрисовывает начиная с уровня $folder на неограниченный уровень вложенности. Отрисовка происходит рекурсивно фукция menu_view вызывается с параметром $template=dm-level-1 тоесть в шаблоне dm-level-1 вновь вызывается шаблон dm-level-1 и так до тех пор, уровень за уровнем, пока для заданного $folder не закончатся дочерние категории. Это самый простой случай, однако при таком подходе нельзя ограничить глубину вложенности. Если нам необходимо создать одно-уровневое меню, то из шаблона dm-level-1 достаточно удалить строку cat,$val['id'],'dm-level-1')?>, тоесть вывод подкатегорий производится не будет. Если требуется двух-уровневое меню, то функция menu_view вызывается с параметром $template=dm-level-2 и создается соответствующий шаблон для меню второго уровня, при этом в dm-level-2 функцию menu_view не используем. Если требуется трех-уровневое меню то в шаблоне dm-level-2 функция menu_view вызывается с параметром $template=dm-level-3 и создается соответствующий шаблон для меню третьего уровня. данный подход схематически можно отобразить так: dm-level-1->dm-level-2->dm-level-3->...->dm-level-n. Минусом данного подхода является большое количество шаблонов меню, а точнее, на каждый уровень меню один шаблон, однако это является также и плюсом, можно реализовать практически любую дизайнерскую идею. Скачать: Вы не можете скачивать файлы с нашего сервера Установка 1. Поместите содержимое архива в папку snippets. 2. Файл snippets/menu/dm-level-1.tpl (стандартный шаблон) переместите в папку с DLE шаблонами. Установка завершена. Чтобы вызвать модуль воспользуемся подстановкой {include snippet="menu.php" param=""} | |
|
Всего комментариев: 0 | |