• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Модуль Модуль «Динамическое меню» v.1.0

Статус
В этой теме нельзя размещать новые ответы.

sergeysnl

Постоялец
Заблокирован
Регистрация
10 Фев 2008
Сообщения
331
Реакции
101
  • Автор темы
  • Заблокирован
  • #1
Модуль используется для создания динамического меню сайта для движка 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&notview=12,13&cache_file=dm-cache"}
{include snippet="menu.php" param="uid=23&template=dm-level"}


Примеры шаблонов меню:

В качестве шаблонизатора используется PHP-native в шаблон из скрипта передаются следующие переменные:
folder - id родительской категории (отправная точка для отрисовки меню)
catid - id активной категории, используется для подсветки активного пункта меню
cat - массив содержащий информацию обовсех категориях
menu - массив содержащий информацию о категориях которые необходимо отрисовать для данного уровня

PHP:
<?#шаблон dm-level-1?>
<ul class="level<?=$this->folder?>">
<?foreach ($this->menu as $val):?>
<li><a href="/<?=$val['link']?><?=$val['alt_name']?>"><?=$val['name']?><?if($val['count'] > 0):?>(<?=$val['count']?>)<?endif?></a>
<?=menu_view($this->cat,$val['id'],'dm-level-1')?>
</li>
<?endforeach?>
</ul>

Простейший пример, меню отрисовывает начиная с уровня $folder на неограниченный уровень вложенности. Отрисовка происходит рекурсивно фукция menu_view вызывается с параметром $template=dm-level-1 тоесть в шаблоне dm-level-1 вновь вызывается шаблон dm-level-1 и так до тех пор, уровень за уровнем, пока для заданного $folder не закончатся дочерние категории. Это самый простой случай, однако при таком подходе нельзя ограничить глубину вложенности.

Если нам необходимо создать одно-уровневое меню, то из шаблона dm-level-1 достаточно удалить строку <?=menu_view($this->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=""}

Скачать:


Demo:
 
  • Заблокирован
  • #2
Можете демку показать, а то я что-то ничего не понял что делает этот модуль:nezn:
 
  • Автор темы
  • Заблокирован
  • #3
Вот на сайте откуда брал есть Demo, насколько я понял это как в Joomla вывод меню через админку. Главное под себя настроить стили css, Т.к. выводит древообразным стилем. Вот демо:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху