тест 3
Функция Template::displayEshopTree
Функция Template::displayEshopTree используется для вывода меню интернет-магазина с гибкими настройками отображения.
Синтаксис
Template::displayEshopTree($module_id, $treeoutputtype, $levellimit, $showroot, $classes=false, $show_images=false, $image_size='78x48', $description=false, $title=false, $gridLayout='')
Параметры
| Параметр | Описание | Значения | По умолчанию |
|---|---|---|---|
$module_id |
ID модуля интернет-магазина из базы данных. Если не указан (или 0/false), подхватывается первый подходящий раздел. | Числовой ID, 0, false | - |
$treeoutputtype |
Тип отображения дерева. 1 - полностью раскрыто. 2 - раскрыта только активная ветка (игнорирует $levellimit). |
1, 2 | - |
$levellimit |
Уровень раскрытия дерева. -1 для полного раскрытия. | -1, 1, 2, 3 и т.д. | -1 |
$showroot |
Показывать корневой каталог. | true, false | - |
$classes |
Выводить уникальные классы для каждого пункта меню для специфической верстки. | true, false | false |
$show_images |
Выводить изображения для рубрик. | true, false | false |
$image_size |
Размер изображений в формате "{Ширина}x{Высота}" или true для использования настроек из редактора. |
Строка (напр., "78x48"), true | "78x48" |
$description |
Выводить краткое описание рубрики. | true, false | false |
$title |
Выводить заголовок блока. Если true, заголовок берется из названия раздела; иначе фиксированное значение. |
true, false, строка | false |
$gridLayout |
Режим вывода адаптивной плиткой. Определяет размеры блоков. Игнорирует $treeoutputtype и вложенные рубрики.Формат: строка с типами блоков или правилами для количества рубрик. |
"big", "horizontal", "vertical", "normal" или строка с правилами | "" (режим отключен) |
Режим $gridLayout
Режим адаптивной плитки позволяет задавать размеры блоков рубрик. Если параметр пустой, режим не используется. Поддерживаемые размеры:
big- большой блокhorizontal- горизонтальный прямоугольникvertical- вертикальный прямоугольникnormal- стандартный размер (используется, если другие не указаны)
Можно задавать размеры через строку, например: "big, horizontal". Если указаны невалидные значения, все блоки будут normal.
Для привязки к количеству рубрик используется формат: [Рубрики]:[Типы блоков];[Рубрики]:[Типы блоков].
big, horizontal- первый блок большой, второй горизонтальный, остальныеnormal.7,8: vertical, horizontal; horizontal- для 7 или 8 рубрик: первый вертикальный, второй горизонтальный; для других количеств — все горизонтальные.1,2,3,4: normal; 5,7: vertical; 6: big, horizontal; 8: vertical, horizontal, big; vertical- разные правила для разного количества рубрик.
Стилизация в режиме плитки
Для настройки внешнего вида в режиме плитки используйте CSS-класс .gridOverflow:
.gridOverflow {
--itemMinWidth: 250px; /* Минимальная ширина блока */
--itemAspectRatio: 1; /* Пропорция: 1 - квадрат, <1 - горизонтальный, >1 - вертикальный */
--gridGap: 20px; /* Отступ между блоками */
}
Рекомендуется подбирать $image_size в зависимости от --itemMinWidth и предполагаемого количества рубрик (например, треть от ширины контейнера для трех блоков в ряд).
Важные замечания
Удаление классов: Из шаблона необходимо убирать классы flex, x3, x4, x5 и другие, связанные с шириной и отступами, чтобы избежать конфликтов с grid.
Обертка меню: На обертку меню добавляется класс, указывающий количество рубрик, чтобы упростить стилизацию без JavaScript.
Адаптивность: В режиме плитки стилизация настраивается через CSS. Можно задавать адаптивные правила или изменять классы размеров динамически.
Отсутствие скриптов: Вывод не содержит JavaScript, поэтому все эффекты и адаптивность реализуются через CSS.
Варианты вывода:
