Ho creato un menų a tabs con sottomenų generato lato server (PHP ovviamente) da un file XML al volo con pagina attuale e e tabs aperto...
potete vederlo in azione su http://www.nexus6design.com/provaxmlmenu/sez1.php
questo č il file XML:
http://www.nexus6design.com/provaxmlmenu/menu.xml
e questo č il codice:
mi aiutate a migliorarlo/ottimizzarlo?codice:<? error_reporting (E_ERROR | E_WARNING | E_PARSE); $file = "menu.xml"; $paginacorrente = "http://"; $paginacorrente.= $_SERVER['HTTP_HOST']; //outputs sitename.com etc $paginacorrente.= $_SERVER['REQUEST_URI']; //outputs /index.php etc //PER TESTARE LA PAGINA CORRENTE //$paginacorrente = "http://www.andreapaiola.it/chisonoemieiinteressi.php"; function xml2php($file) { global $arr_vals; $xml_parser = xml_parser_create(); if (!($fp = fopen($file, "r"))) { die("impossibile aprire il file XML"); } $contents = fread($fp, filesize($file)); fclose($fp); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($xml_parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($xml_parser, $contents, $arr_vals, $index); xml_parser_free($xml_parser); } $arr_xml = xml2php($file); $menuprincipale = '<div id="menu"><ul id="menuprincipale">'; $menusecondario = '<ul id="menusecondario">'; $n = -1; foreach ($arr_vals as $value) { $n++; if ($value[level] == 2){ //URL DEL LINK if ($value['attributes']['url'] != ""){ if ($value['attributes']['url'] == $paginacorrente){ $menuprincipale .= '<li id="paginacorrente" title="Questa č la pagina corrente: ' . "$paginacorrente" . '">' . $value['attributes']['testo'] . ''; //SE LA PAGINA CORRENTE č NEL MENU PRICIPALE MOSTRIAMO I SOTTOMENU RELATIVI $sottomenuaperto = "si"; }else{ $sottomenuaperto = 'no'; $menuprincipale .= '[*]<a href="' . $value['attributes']['url'] . '"'; //DESCRIZIONE DEL LINK if ($value['attributes']['descrizione'] != ''){ $menuprincipale .= ' title="' . $value['attributes']['testo'] . ': ' . $value['attributes']['descrizione']; } $menuprincipale .='">'; //TESTO DEL LINK $menuprincipale .= $value['attributes']['testo'] . '</a>' . ''; } } } if ($value[level] == 3){ if ($value['attributes']['url'] == $paginacorrente){ //echo('La pagina corrente č in un sottomenu'); $pagcorrsott = 'si'; //echo($value[level]); //echo($value['attributes']['url']); //echo($paginacorrente); //TROVO LA POSIZIONE DEL TAG SUCCESSIVO DI 2° LIVELLO //E LO FICCO NELLA VARIABILE $i = $n; for (;;) { if ($arr_vals[$i][level] == "2") { break; } //echo($arr_vals[$i][level]); $i++; } $tagsucc = $i; //echo($tagsucc); //TROVO LA POSIZIONE DEL TAG PRECEDENTE DI 2° LIVELLO //E LO FICCO NELLA VARIABILE $i = $n; for (;;) { if ($arr_vals[$i][level] == "2") { break; } //echo($arr_vals[$i][level]); $i--; } $tagprec = $i; //echo($tagprec); break; } else { $pagcorrsott = 'no'; //echo('no sottomenų'); } if ($sottomenuaperto == "si"){ //URL DEL LINK if ($value['attributes']['url'] != ""){ if ($value['attributes']['url'] == $paginacorrente){ $menusecondario .= '<li id="paginacorrente" title="Questa č la pagina corrente: ' . "$paginacorrente" . '">' . $value['attributes']['testo'] . ''; }else{ $menusecondario .= '[*]<a href="' . $value['attributes']['url'] . '"'; //DESCRIZIONE DEL LINK if ($value['attributes']['descrizione'] != ''){ $menusecondario .= ' title="' . $value['attributes']['testo'] . ': ' . $value['attributes']['descrizione']; } $menusecondario .='">'; //TESTO DEL LINK $menusecondario .= $value['attributes']['testo'] . '</a>' . ''; } } } } } if ($pagcorrsott == "si"){ //SE LA PAGINA CORRENTE č IN UN SOTTOMENU //echo('devo rifare il menų'); //echo($n); //echo($arr_vals[$n]['attributes']['url']); $menuprincipale = '<div id="menu"><ul id="menuprincipale">'; $menusecondario = '<ul id="menusecondario">'; $n = -1; foreach ($arr_vals as $value) { $n++; if ($value[level] == 2){ //URL DEL LINK if ($value['attributes']['url'] != ""){ //echo($n); //echo($value['attributes']['url']); //echo($arr_vals[$n]['attributes']['url']); //echo(' '); if ($value['attributes']['url'] == $arr_vals[$tagprec]['attributes']['url']){ //echo('sezione'); $menuprincipale .= '<li id="tabcorrente">' . $arr_vals[$tagprec]['attributes']['testo'] . '' . ''; }else{ $menuprincipale .= '[*]<a href="' . $value['attributes']['url'] . '"'; //DESCRIZIONE DEL LINK if ($value['attributes']['descrizione'] != ''){ $menuprincipale .= ' title="' . $value['attributes']['testo'] . ': ' . $value['attributes']['descrizione']; } $menuprincipale .='">'; //TESTO DEL LINK $menuprincipale .= $value['attributes']['testo'] . '</a>' . ''; } } } if ($value[level] == 3){ //SE I TAGS FANNO PARTE DEL SOTTOMENU E SON FRATELLI DELLA PAGINA ATTUALE if ($tagprec <= $n && $n <= $tagsucc){ //echo($value['attributes']['url']); if ($value['attributes']['url'] == $paginacorrente){ $menusecondario .= '<li id="paginacorrente" title="Questa č la pagina corrente: ' . "$paginacorrente" . '">' . $value['attributes']['testo'] . ''; } else { $menusecondario .= '[*]<a href="' . $value['attributes']['url'] . '"'; //DESCRIZIONE DEL LINK if ($value['attributes']['descrizione'] != ''){ $menusecondario .= ' title="' . $value['attributes']['testo'] . ': ' . $value['attributes']['descrizione']; } $menusecondario .='">'; //TESTO DEL LINK $menusecondario .= $value['attributes']['testo'] . '</a>' . ''; } } } } } $menuprincipale .= '[/list]'; $menusecondario .= '[/list]</div>'; echo ("$menuprincipale"); echo ("$menusecondario"); ?>
e grazie

e grazie
Rispondi quotando
