<?php
/* Construteur de menu backoffice $option = string_key =>string_value | etc ...
option possible, menu_id precise le n° du menu a afficghe
ssmenu precse si les sous menu doident être actif
menu_view produit sl'fficage du sous menu sans so pere
menu_img à false  ne sort pas icone */
function menu_ajax_complet($option=''){
	global $opt,$global;
	$final='';$global=array();
	$opt=(is_array($option)) ? $option : extract_option($option);
	$key_cache=(is_array($option)) ? @$option['array_data'].@$option['menu_view'].@$option['menu_id'] : $option;
	/* $id : N° menu + id + gestion js   $titre Menu  $img : Nom img au format png dans template/../img */
	if(!function_exists('_app_top_tep_ss_menu')){
	function _app_top_tep_ss_menu($id,$titre='',$img='',$class='',$js=''){
		$action = ($class !='disable')? " class=\"menu-general\"  " :" class=\"disable menu-general \"";
		$d="<div id='menu-general%1\$s'  ".$action." ><a href='#%3\$s' tabindex='%1\$s' alt='%3\$s' ".$js."><img src='template/%4\$s/img/%2\$s.png' /><span><nobr>%3\$s</nobr></span></a>\n";
		$u="<ul id='sous-menu%1\$s' class='habillage' >\n";
		$s= sprintf($d,$id,$img,$titre,TEMPLATE_ADMIN);
		$s.= sprintf($u,$id);
		return $s;
	} }
	if(!function_exists('modules_menu_actif')){
	function modules_menu_actif(){
	 if(MODULES) {
		require (ADD_PATH_ADMIN.TBL_SYS_CONFIG_MODULES_INC);
		 if (!empty($_PX_config_module)){
		 $s=array();
		 while ( $row =each($_PX_config_module)){
			if ($row['value']['etat'] =='true') {
			## si le rep du module contient un rep nomme inc
			if (file_exists(ADD_PATH_ADMIN."include/modules/".$row['key']."/inc/")) $s[$row['key']]= "module.php?module=".$row['key'];
			}
		  }
		}
		return $s;
		} else return "<p class='error>".ERROR_MODULES_OFF."</p>\n";
	} }
	if(!function_exists('supp_vide')){
	function supp_vide($s){
		$e=array();
		while($r=each($s))
			if (tep_not_null($r['value'])) array_push($e,$r['value']);
		return $e;
	} }
	if(!function_exists('cstr_sortie')){
	function cstr_sortie($final,$num,$txt,$ico,$s){
			$s= supp_vide($s);
			$disable=(count($s)<=0) ? 'disable' : '' ;

			$final .= _app_top_tep_ss_menu($num,$txt,$ico,$disable,$option='');
			while($r=each($s))
				$final .= $r['value'];
			$final .= "</ul>";
			$final .= '</div>'."\n";

			return $final;
	} }
	if(!function_exists('mod_actif')){
	function mod_actif($final,$ID_menu){
		global $opt,$global;
		$srrt=array();$t=0;
		$e=modules_menu_actif();
		if (is_array($e)){
			while($r=each($e)){
				$name=(defined('PKG_NAME_'.strtoupper($r['key']))) ? constant('PKG_NAME_'.strtoupper($r['key'])) : $r['key'];
				$img=(isset($opt['menu_img'])&&$opt['menu_img']=='false') ? '' : ( (file_exists('template/'.TEMPLATE_ADMIN.'/img/'.$r['key'].'.png')) ? $r['key'] : LOSS_ICON_800 );
				if(isset($opt['ssmenu']) && $opt['ssmenu']=='true'){
					$global[$ID_menu][]=array($name,$img,$r['value'], 2 ,'','');
					array_push($srrt,_app_top_tep_ss_menu_li($name,$img,$r['value'], 2 ,'',''));
				}
				$t++;
			}
		}
		return $srrt;
	} }


	## appel table
	if (isset($opt['array_data']) && is_array($opt['array_data'])) $_MENU=$opt['array_data'];
	else require (_BO_REP_CONFIG.'sys_menu.php');
	## Numearo du menu detremine valeur de left, cf css
	$ID_menu=(isset($opt['menu_id'])) ? $opt['menu_id'] : 1;
	$max_menu=(isset($opt['menu_id'])) ? $ID_menu : count($_MENU)+1;

	for ($itr=$ID_menu;$itr<=$max_menu; $itr++){
		$r['key']= $itr;
		$r['value']=@$_MENU[$itr];
		if ($ID_menu<=$max_menu && ( is_array($r['value']) || $ID_menu ==2 ) ) {
			$s=array();
			if ($ID_menu ==2) {
				$s=mod_actif($final,$ID_menu);
				$_MENU[2]['menu']= 'MENU_MODULES,'.LOSS_ICON_200;
			}
			for ($i=1,$max=count($r['value']);$i<=$max; $i++){
				$r0= @$r['value'][$i];
				$img=(isset($opt['menu_img'])&&$opt['menu_img']=='false') ? '' : ( (file_exists('template/'.TEMPLATE_ADMIN.'/img/'.$r0[1].'.png')) ? $r0[1]: LOSS_ICON_800 );
				if(isset($opt['ssmenu']) && $opt['ssmenu']=="true"){
					array_push($s,_app_top_tep_ss_menu_li($r0[0],$img,@$r0[2],@$r0[3],@$r0[4],@$r0[5]));
					$global[$itr][$i]=array($r0[0],$img,@$r0[2],@$r0[3],@$r0[4],@$r0[5]);
				}
			}

			$g=explode (',',$_MENU[$r['key']]['menu']);
			$lid_des_ul=(isset($opt['menu_id'])) ? $opt['menu_id'].'_ul_'.$ID_menu:$ID_menu ;

			$img=(isset($opt['menu_img']) && $opt['menu_img']=='false') ? '' : ( (file_exists('template/'.TEMPLATE_ADMIN.'/img/'.trim($g[1]).'.png')) ? trim($g[1]): LOSS_ICON_800 ) ;
			if( (isset($opt['ssmenu_view']) && $opt['ssmenu_view']=="false")||!isset($opt['ssmenu_view']) )  $final =cstr_sortie($final,$lid_des_ul,constant($g[0]), $img,$s);
			$ID_menu++;
		}
	}


	if (isset($opt['print']) && $opt['print']=='false') return $global;
	else {

		$cache = new HDAcache( 3600 ,str_replace(array('&','='),array('_'),'menu'._USER_PERSO__LOGIN.$key_cache) , 86400 );
		if (! $cache->start_cache() ) {
			print $final;
			$cache->end_cache();
		}
		return true;
	}
}
?>