function sous_menu_rubriques($id_rubrique, $root, $niv, &$data, &$enfants, $exclus, $restreint, $type) { static $decalage_secteur; // Si on a demande l'exclusion ne pas descendre dans la rubrique courante if ($exclus > 0 and $root == $exclus) { return ''; } // en fonction du niveau faire un affichage plus ou moins kikoo // selected ? $selected = $root == $id_rubrique ? ' selected="selected"' : ''; // le style en fonction de la profondeur list($class, $style, $espace) = style_menu_rubriques($niv); $class .= " selec_rub"; // creer l'<option> pour la rubrique $root if (isset($data[$root])) { $r = "<option{$selected} value='{$root}' class='{$class}' style='{$style}'>{$espace}" . $data[$root] . '</option>' . "\n"; } else { $r = ''; } // et le sous-menu pour ses enfants $sous = ''; if (isset($enfants[$root])) { foreach ($enfants[$root] as $sousrub) { $sous .= sous_menu_rubriques($id_rubrique, $sousrub, $niv + 1, $data, $enfants, $exclus, $restreint, $type); } } // si l'objet a deplacer est publie, verifier qu'on a acces aux rubriques if ($restreint and $root != $id_rubrique and !autoriser('publierdans', 'rubrique', $root)) { return $sous; } // et voila le travail return $r . $sous; }
function sous_menu_rubriques($id_rubrique, $root, $niv, &$data, &$enfants, $exclus, $restreint, $type) { global $browser_name, $browser_version; static $decalage_secteur; // Si on a demande l'exclusion ne pas descendre dans la rubrique courante if ($exclus > 0 AND $root == $exclus) return ''; // en fonction du niveau faire un affichage plus ou moins kikoo // selected ? $selected = ($root == $id_rubrique) ? ' selected="selected"' : ''; // le style en fonction de la profondeur list($class, $style, $espace) = style_menu_rubriques($niv); // class='selec_rub' sauf pour contourner le bug MSIE / MacOs 9.0 if (!($browser_name == "MSIE" AND floor($browser_version) == "5")) $class .= " selec_rub"; // creer l'<option> pour la rubrique $root if (isset($data[$root])) # pas de racine sauf pour les rubriques { $r = "<option$selected value='$root' class='$class' style='$style'>$espace" .$data[$root] .'</option>'."\n"; } else $r = ''; // et le sous-menu pour ses enfants $sous = ''; if (isset($enfants[$root])) foreach ($enfants[$root] as $sousrub) $sous .= sous_menu_rubriques($id_rubrique, $sousrub, $niv+1, $data, $enfants, $exclus, $restreint, $type); // si l'objet a deplacer est publie, verifier qu'on a acces aux rubriques if ($restreint AND !autoriser('publierdans','rubrique',$root)) return $sous; // sauter un cran pour les secteurs (sauf premier) if ($niv == 1 AND $decalage_secteur++ AND $type != 'breve') $r = "<option value='$root'></option>\n".$r; // et voila le travail return $r.$sous; }