Инструкции
Главная / Разработчикам / Описание функций / Вывод дерева меню интернет-магазина (displayEshopTree)

Вывод дерева меню интернет-магазина (displayEshopTree)

Данная функция выводит меню интернет-магазина

Template::displayEshopTree($module_id, $treeoutputtype, $levellimit, $showroot, $classes=false, $show_images = false, $image_size = '78x48', $description = false, $title = false, $gridLayout = '')

Если не указывать module_id(или указывать 0 или false), то будет подхватываться первый попавшийся раздел нужного типа
Если не указывать module_id(или указывать 0 или false), то будет подхватываться первый попавшийся раздел нужного типа
- $module_id: ID модуля интернет-магазина из БД, смотри ссылку в редакторе
- $treeoutputtype: 1 - всегда полностью раскрыто 2 - раскрывается только активная ветка дерева. В этом случае третий параметр можно опустить
- $levellimit: уровень, до которого раскрывается. По умолчанию раскрывается полностью ($levellimit = -1). Может принимать значения -1, 1, 2, 3 и т.д.
- $showroot: показывать корневой каталог или нет (true, false)
- $classes - если true, то для каждого пункта меню выводит уникальный класс. для специфических задач верстки
- show_images - выводить картинки. true/false. По Умолчанию false.
- image_size - размер картинок в формате "{Ширина}x{Высота}". Либо "true" - и тогда берутся настройки из редактора
- description - вывод краткого описания рубрики. True/false. По Умолчанию false.
- $title: вывод заголовка блока. По умолчанию false. Можно указать либо фиксированное значение, либо true и тогда название возьмется из названия раздела

- $gridLayout - Режим вывода адаптивной плиткой.
Строка с указанием размеров блоков. Если параметр пустой, режим не используется.
- $gridLayout - Режим вывода адаптивной плиткой. Строка с указанием размеров блоков. Если параметр пустой, режим не используется. В этом режиме игнорируем параметр treeoutputtype и не выводим вложенные рубрики.
Значения: 'big', 'horizontal', 'vertical', 'normal'.  На выводе блоки будут указанных размеров по порядку, начиная с первого. По окончанию заданных значений в строке, следующие элементы будут считаться, как normal. Если указать что угодно, не подходящее под перечисление размеров, то размеры всех элементов будут тоже normal
Можно указывать блоки с привязкой к количеству рубрик, чтобы задавать разные сетки вывода для разного количества блоков. Формат: [Рубрики через запятую]: [типы блоков через запятую]; [Рубрики через запятую]: [типы блоков через запятую]
Если номер не указан, то набор в перечислении подходит для любого количества.  Такие наборы стоит писать в конце списка, если хочется задать общее правило для всех количеств рубрик, не указанных точечно. Ну или не писать, если устраивает дефолтное значение normal.

Примеры:  big, horizontal 7,8: vertical, horizontal; horizontal 1,2,3,4: normal; 5,7: vertical; 6:big, horizontal; 8: vertical, horizontal, big; vertical

***Обязательно надо из шаблона убирать классы flex и всякие x3-x4-x5. Они лишние для этого вывода и будут создавать проблемыОбязательно надо из шаблона убирать классы flex и всякие x3-x4-x5. Они лишние для этого вывода и будут создавать проблемы Иногда придется какие-то еще стили из css убирать, тк всякие изменения ширины и отступов для блоков рубрик в сумме с дефолтными стилями для grid могут давать неадекватный вывод. *** На общую обертку меню добавлен класс, по которому видно, сколько внутри рубрик.  Чтобы не считать это через js, если нужно будет на верстке как-то вручную специфично стили задавать в зависимости от количества рубрик.
*** Если включен режим плиткой, то его детальная настройка происходит через css.  Вот такие стили достаточно в шаблоне указать, перебив дефолтные значения из системного файла стилей
.gridOverflow { --itemMinWidth: 250px; --itemAspectRatio: 1; --gridGap: 20px; }
- itemMinWidth: минимальная ширина блока - itemAspectRatio: пропорция блока. 1 - квадрат. От 0 до 1 - горизонтальный прямоугольник, больше единицы - вертикальный прямоугольник. - gridGap: отступ между блоками

*** При использовании этого режиме, нужно указывать параметр размера картинок с достаточным запасом, тк не известно наверняка, сколько вернется элементов и какой максимальной ширины они будут. Подбирать в зависимости от itemMinWidth и предположительного общего количества рубрик.  Например, треть от максимальной ширины контейнера, если в ряд у нас три обычных элемента. Или две трети, если три в ряд, но один из них горизонтального размера.

*** Скриптов в выводе нет, так что всё что хочется с блоком сделать, можно сделать стилями. В тч налету. Например задавать отдельные правила для адаптива, переназначать классы размера скриптами, итд итп по ситуации.


Варианты вывода: 

Данный сайт использует файлы cookie и прочие похожие технологии. В том числе, мы обрабатываем Ваш IP-адрес для определения региона местоположения. Используя данный сайт, вы подтверждаете свое согласие с политикой конфиденциальности сайта.
OK