Создаем вложенное меню - uniqcle/Bitrix GitHub Wiki

AddEventHandler("main", "OnBuildGlobalMenu", array("GlobalMenuService", "favouriteBuildGlobalMenu"));

class GlobalMenuService
{
	//Делаем пункт меню избранное вложенным
	static function favouriteBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu)	{
		foreach($aModuleMenu as $k => $v) {
			//debug( $k );
			//debug( $v );
			if (!strlen($aModuleMenu[$k]['items_id']))
				$aModuleMenu[$k]['items_id'] = 'fav_menu_icon';

			if (empty($aModuleMenu[$k]['items'])){
				$aModuleMenu[$k]['items'] = array();
				$aModuleMenu[$k]['items'][] = Array(
					'text' => $aModuleMenu[$k]['text'],
					'title' => $aModuleMenu[$k]['title'],
					'url' => $aModuleMenu[$k]['url'],
					'more_url' => $aModuleMenu[$k]['more_url'],
				);
				unset($aModuleMenu[$k]['more_url']);
			}
			$aModuleMenu[$k]['items'][] = Array(
				'text' => "Вложенное меню",
				'title' => "Вложенное меню",
				'url' => 'index.php?lang='.LANGUAGE_ID,
				'more_url' => array('index.php'),
			);
		}
	}
}