Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Прежде всего, я не советую брать стандартные шаблоны меню и "править их под себя", если только вы не верстальщик-интегратор в одном лице. Ибо css различны, блоки различны, очень много гемора вылезет. Посему, я советую для шаблона меню брать вот такой шаблон-костяк:
А теперь представим, что перед нами трехуровневое меню. Загляните в системный шаблон меню horizontal_multilevel и проникнетесь. Работает, использует какие-то хитрые приемы, но чудовищно для кастомизации.
Посему, к шаблону выше прилагается примерно такой result_modifier.php, который превращает линейное меню в дерево:
Оригинал файла вы можете скачать в приложении к посту.
Что получили и что выиграли?
1. Красивый и понятный код шаблона
2. 30-40 минут на кастомизацию такого меню:
Ну пусть час, чтобы накидать еще тестовые категории
Назад в раздел
то ждем ваше обращение в нашей службе тех поддержки.
Упрощаем кастомизацию многоуровнего меню
Меню - это, пожалуй, самый неприятный блок для кастомизации на сайте. Не знаю, кого не встречал (себя в том числе) - не нравится его кастомить и все тут. Подход под катом развеет боязнь и даже самое страшное меню превратится в приятное глазу разработчика.Прежде всего, я не советую брать стандартные шаблоны меню и "править их под себя", если только вы не верстальщик-интегратор в одном лице. Ибо css различны, блоки различны, очень много гемора вылезет. Посему, я советую для шаблона меню брать вот такой шаблон-костяк:
<?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;?> |
Посему, к шаблону выше прилагается примерно такой result_modifier.php, который превращает линейное меню в дерево:
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); } |
Что получили и что выиграли?
1. Красивый и понятный код шаблона
2. 30-40 минут на кастомизацию такого меню:
Ну пусть час, чтобы накидать еще тестовые категории
Назад в раздел
Подписаться на новые материалы раздела: