Citation de code source en PHPn° 128
23 Juillet, 2014 à 07:23
function _menu_parents_recurse($menu_name, $type = 'menu', $lang = 'en', $path = false){
$q = db_query("SELECT * FROM menu_links WHERE menu_name = '{$menu_name}' ORDER BY depth, weight ASC");
$languages_list = locale_language_list();
$menu_name_read = db_fetch_object(db_query("SELECT title FROM menu_custom WHERE menu_name = '{$menu_name}' LIMIT 1"));
$menu_structure = array();
while($data = db_fetch_object($q))
{
$lang_un = unserialize($data->options);
if(isset($lang_un['langcode']) && $lang_un['langcode'] == $lang){
switch($data->depth)
{
case 1:
$menu[$data->p1] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
case 2:
$menu[$data->p1]['childrens'][$data->p2] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
case 3:
$menu[$data->p1]['childrens'][$data->p2]['childrens'][$data->p3] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
case 4:
$menu[$data->p1]['childrens'][$data->p2]['childrens'][$data->p3]['childrens'][$data->p4] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
case 5:
$menu[$data->p1]['childrens'][$data->p2]['childrens'][$data->p3]['childrens'][$data->p4]['childrens'][$data->p5] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
case 6:
$menu[$data->p1]['childrens'][$data->p2]['childrens'][$data->p3]['childrens'][$data->p4]['childrens'][$data->p5]['childrens'][$data->p6] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
case 7:
$menu[$data->p1]['childrens'][$data->p2]['childrens'][$data->p3]['childrens'][$data->p4]['childrens'][$data->p5]['childrens'][$data->p6]['childrens'][$data->p7] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
case 8:
$menu[$data->p1]['childrens'][$data->p2]['childrens'][$data->p3]['childrens'][$data->p4]['childrens'][$data->p5]['childrens'][$data->p6]['childrens'][$data->p7]['childrens'][$data->p8] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
case 9:
$menu[$data->p1]['childrens'][$data->p2]['childrens'][$data->p3]['childrens'][$data->p4]['childrens'][$data->p5]['childrens'][$data->p6]['childrens'][$data->p7]['childrens'][$data->p8]['childrens'][$data->p9] = array('name' => $data->link_title, 'path' => $data->link_path);
break;
}
}
}
if(!$path)
$menu_structure[$menu_name.':0'] = '<'.t($menu_name_read->title).'>';
else
$menu_structure[''] = '<'.t($menu_name_read->title).'>';
if($menu){
foreach($menu as $mlid => $menu_item)
{
if($menu_item['name']) $menu_structure[(!$path) ? $menu_name.':'.$mlid : $menu_item['path']] = '-- '.$menu_item['name'];
if(isset($menu_item['childrens']))
{
foreach($menu_item['childrens'] as $children_mlid => $children)
{
if($children['name']) $menu_structure[$menu_name.':'.$children_mlid] = '---- '.$children['name'];
if(isset($children['childrens'])){
foreach($children['childrens'] as $children2_mlid => $children2)
{
if($children2['name']) $menu_structure[$menu_name.':'.$children2_mlid] = '------ '.$children2['name'];
if(isset($children2['childrens'])){
foreach($children2['childrens'] as $children3_mlid => $children3)
{
if($children3['name']) $menu_structure[$menu_name.':'.$children3_mlid] = '-------- '.$children3['name'];
if(isset($children3['childrens'])){
foreach($children3['childrens'] as $children4_mlid => $children4)
{
if($children4['name']) $menu_structure[$menu_name.':'.$children4_mlid] = '---------- '.$children4['name'];
if(isset($children4['childrens'])){
foreach($children4['childrens'] as $children5_mlid => $children5)
{
if($children5['name']) $menu_structure[$menu_name.':'.$children5_mlid] = '------------ '.$children5['name'];
if(isset($children5['childrens'])){
foreach($children5['childrens'] as $children6_mlid => $children6)
{
if($children6['name']) $menu_structure[$menu_name.':'.$children6_mlid] = '-------------- '.$children6['name'];
if(isset($children6['childrens'])){
foreach($children6['childrens'] as $children7_mlid => $children7)
{
if($children7['name']) $menu_structure[$menu_name.':'.$children7_mlid] = '-------------- '.$children7['name'];
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return $menu_structure;
}