Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
Всякий, кому доводилось настраивать оформление (кастомизировать) меню, знает, насколько это неудобный и трудоемкий процесс. Несколько файлов стилей, несколько скриптов JavaScript, фоновые изображения. Всю эту структуру надо описать, держать в архиве, при каждой модификации меню актуализировать. Нельзя ли упростить процедуру? Можно. И вот каким образом:
1. Сделаем шаблон меню
Для этого используем следующий код PHP:
2. Вид меню будет определять скрипт-модификатор
Создадим файл result_modifier.php. Его задачей будет трансформировать линейное меню в древовидное.
3. Настроим динамическое формирование на любом уровне вложенности
Используем для этого следующий код:
Готово!
Кастомизация трехуровневого меню теперь проста, однозначна и занимает не более 35 минут времени.
Назад в раздел
1. Сделаем шаблон меню
Для этого используем следующий код PHP:
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die();?> <?if (!empty($arResult)):?> <?foreach($arResult as $i => $arItem):?> <a href="<?=$arItem['LINK']?>"><?=$arItem['TEXT']?></a> <?endforeach?> <?endif;?>
2. Вид меню будет определять скрипт-модификатор
Создадим файл result_modifier.php. Его задачей будет трансформировать линейное меню в древовидное.
<?if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die(); if (!empty($arResult)) { $parentID = false; $subParentID = false; foreach($arResult as $i => $arItem) { if ($arItem['DEPTH_LEVEL'] == 1) { $parentID = $i; $arResult[$i]['ITEMS'] = array(); } elseif ($arItem['DEPTH_LEVEL']==2 && $parentID!==false) { $arResult[$parentID]['ITEMS'][$i] = $arItem; $subParentID = $i; unset($arResult[$i]); } elseif ($arItem['DEPTH_LEVEL']==3 && isset($arResult[$parentID]['ITEMS'][$subParentID])) { if (!isset($arResult[$parentID]['ITEMS'][$subParentID]['ITEMS'])) { $arResult[$parentID]['ITEMS'][$subParentID]['ITEMS'] = array(); } $arResult[$parentID]['ITEMS'][$subParentID]['ITEMS'][] = $arItem; unset($arResult[$i]); } } $arResult = array_values($arResult); }
3. Настроим динамическое формирование на любом уровне вложенности
Используем для этого следующий код:
$GLOBALS['arResult'] = $arResult; $countItems = count($arResult); function returnSubMenu() { global $countItems; static $k = 0; $arSubMenu = array(); while(1) {
Готово!
Кастомизация трехуровневого меню теперь проста, однозначна и занимает не более 35 минут времени.
Назад в раздел
Подписаться на новые материалы раздела: