Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно, 
то ждем ваше обращение в нашей службе тех поддержки.
		
	
								
			
Я написал простой result_modifier.php, который подкладываю в директорию шаблона:
В итоге мы имеем ключ CHILDREN у пункта меню, если у него имеются дочерние пункты меню, и соответственно дочерние у дочерних (we need to go deeper). Обычное и логичное разветвлённое иерархичное меню.
Вот код в файле:
UPD 11.08.2011: Исправил имя ключа children на CHILDREN, совсем забыл про единство стиля.
			
			
Назад в раздел
		  
	
	
	
	
		 Наверх
 Наверх
	
	
то ждем ваше обращение в нашей службе тех поддержки.
Иерархичное меню и result_modifier
Приветствую! Наверное уже есть множество способов решения данной задачи, но я решил сделать новый велосипед. Зачем? Не знаю. Захотел сделать простое и кроткое решение. Пожалуй не только мне досаждает то, что у Битрикса стандартный шаблон модуля меню почему-то выдаёт массив элементов одним уровнем и вложенность определяется только по ключу DEPTH_LEVEL. Приходится выкручиваться всякими финтами с подстановкой </li></ul> в начале новой итерации цикла, но это эстетически никак не доставляет, полагаю, что никому.Я написал простой result_modifier.php, который подкладываю в директорию шаблона:
| <?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$menuList = array();
$lev = 0;
$lastInd = 0;
$parents = array();
foreach ($arResult as $arItem) {
   $lev = $arItem['DEPTH_LEVEL'];
   
   if ($arItem['IS_PARENT']) {
      $arItem['CHILDREN'] = array();
   }
   
   if ($lev == 1) {
      $menuList[] = $arItem;
      $lastInd = count($menuList)-1;
      $parents[$lev] = &$menuList[$lastInd];
   } else {
      $parents[$lev-1]['CHILDREN'][] = $arItem;
      $lastInd = count($parents[$lev-1]['CHILDREN'])-1;
      $parents[$lev] = &$parents[$lev-1]['CHILDREN'][$lastInd];
   }
}
$arResult = $menuList; | 
В итоге мы имеем ключ CHILDREN у пункта меню, если у него имеются дочерние пункты меню, и соответственно дочерние у дочерних (we need to go deeper). Обычное и логичное разветвлённое иерархичное меню.
Вот код в файле:
UPD 11.08.2011: Исправил имя ключа children на CHILDREN, совсем забыл про единство стиля.
Назад в раздел
Подписаться на новые материалы раздела:
	Загрузка...
	
			
				
	
		
	
	
	
	
	 Наверх
 Наверх