Neues Hauptmenü (front_single)
Verfasst: Do 26. Sep 2002, 21:49
Gehört das nun hierher - oder in Erweiterungen *g*
ok... erstmal vorweg. Wer die andere schon gesehen hatte, der weiss was jetzt kommt.
Beispiel: http://feg-borna.de/cms/frontend/
Das Menü hier ist direkt für das Layout. Es ist eine optimierte Version der "main-navigation", welche im Demo-Layout von front_single enthalten war. Nach einbau dieser Navigation könnte man theoretisch die front_content.php um einige MySQL-Abfragen erleichtern - das sollten aber nur die machen, die wissen was sie tun..
Zu den Features:
- erstmalig sortierung genau so , wie im backend vorgegeben.
- für jeden Baum einsetzbar
- Aufbau in Tabelle - Mouse-Over-Zellen
- Markierung des aktiven Menüpunktes
- optisch angepasste Stufung der Menüpunkte
- alle Farben konfigurierbar.
Konfiguration
In diesem Bereich wird konfiguriert:
$nav_start = '3'; // Start-Baum festlegen
$nav_col_out = "#6699FF"; // Zellfarbe normal
$nav_col_over = "#9999FF"; // Zellfarbe Mouse-Over
$nav_col_back = "#6600FF"; // Hintergrundfarbe (Einzug)
$nav_col_on = "#FF0000"; // Farbmarkierung aktiv
$nav_col_off = "#000000"; // Farbmarkierung passiv
Den Startbaum findet man übers Backend raus: Content->Seiten und dort mit der Maus über das Plus/Minus des Baumes (z.b. "haupt") fahren. In der Statusleiste des Browsers kann man die URL erkennen. In dieser URL steht idcat= - diese Nummer ist der Startpunkt. Bei normaler installation mit Beispielen ist das die "3" für "home" von "front_single".
Installation:
wenn noch das original-menü verwendet wird, befindet sich im Layout ein Bereich der durch
<!-- begin main-navigation-->
...
<!-- end main-navigation-->
eingegrenzt ist. Dazwischen gehört der folgende Code. Für alle anderen: schreibt den Code dorthin, wo später die Navigation sein soll
Code wurde korrigiert ( 27.09.02 15:08 )
ok... erstmal vorweg. Wer die andere schon gesehen hatte, der weiss was jetzt kommt.

Beispiel: http://feg-borna.de/cms/frontend/
Das Menü hier ist direkt für das Layout. Es ist eine optimierte Version der "main-navigation", welche im Demo-Layout von front_single enthalten war. Nach einbau dieser Navigation könnte man theoretisch die front_content.php um einige MySQL-Abfragen erleichtern - das sollten aber nur die machen, die wissen was sie tun..
Zu den Features:
- erstmalig sortierung genau so , wie im backend vorgegeben.
- für jeden Baum einsetzbar
- Aufbau in Tabelle - Mouse-Over-Zellen
- Markierung des aktiven Menüpunktes
- optisch angepasste Stufung der Menüpunkte
- alle Farben konfigurierbar.
Konfiguration
In diesem Bereich wird konfiguriert:
$nav_start = '3'; // Start-Baum festlegen
$nav_col_out = "#6699FF"; // Zellfarbe normal
$nav_col_over = "#9999FF"; // Zellfarbe Mouse-Over
$nav_col_back = "#6600FF"; // Hintergrundfarbe (Einzug)
$nav_col_on = "#FF0000"; // Farbmarkierung aktiv
$nav_col_off = "#000000"; // Farbmarkierung passiv
Den Startbaum findet man übers Backend raus: Content->Seiten und dort mit der Maus über das Plus/Minus des Baumes (z.b. "haupt") fahren. In der Statusleiste des Browsers kann man die URL erkennen. In dieser URL steht idcat= - diese Nummer ist der Startpunkt. Bei normaler installation mit Beispielen ist das die "3" für "home" von "front_single".
Installation:
wenn noch das original-menü verwendet wird, befindet sich im Layout ein Bereich der durch
<!-- begin main-navigation-->
...
<!-- end main-navigation-->
eingegrenzt ist. Dazwischen gehört der folgende Code. Für alle anderen: schreibt den Code dorthin, wo später die Navigation sein soll

Code wurde korrigiert ( 27.09.02 15:08 )
Code: Alles auswählen
<?PHP
// Gruppen einlesen //
$sql = "SELECT A.idcat, A.parentid, A.preid, A.postid, B.name, B.public, B.visible, C.level FROM $cfgTab_cat AS A, $cfgTab_cat_lang AS B, $cfgTab_cat_tree AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND A.idclient='$client' AND B.idlang='$lang'";
$db->query($sql);
while($db->next_record()){
$con_tree[$db->f("idcat")][parent] = $db->f("parentid");
$con_tree[$db->f("idcat")][preid] = $db->f("preid");
$con_tree[$db->f("idcat")][postid] = $db->f("postid");
$con_tree[$db->f("idcat")][titel] = $db->f("name");
$con_tree[$db->f("idcat")][public] = $db->f("public");
$con_tree[$db->f("idcat")][visible] = $db->f("visible");
$con_tree[$db->f("idcat")][level] = $db->f("level");
$con_tree[$db->f("idcat")][link] = $sess->url("front_content.php?client=".$client."&lang=".$lang."&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."");
if($db->f("idcat") > $con_tree_max){$con_tree_max = $db->f("idcat");}
};
//-----------------------------------------------------------------------------//
$nav_start = '3'; // Startbaum festlegen
$nav_col_out = "#6699FF"; // Zellfarbe normal
$nav_col_over = "#9999FF"; // Zellfarbe Mouse-Over
$nav_col_back = "#6600FF"; // Hintergrundfarbe (Einzug)
$nav_col_on = "#FF0000"; // Farbmarkierung aktiv
$nav_col_off = "#000000"; // Farbmarkierung passiv
//-----------------------------------------------------------------------------//
// offenen Pfad finden //
$nav_path = array(); $nav_tree = array();
$tmp_idcat = $idcat;
while($tmp_idcat > 0){
array_push($nav_path, $tmp_idcat);
$tmp_idcat = $con_tree[$tmp_idcat][parent];
};
$nav_path = array_reverse($nav_path);
// gegen Verlassen des Baumes schützen:
if($nav_path[0] != $nav_start){$nav_path = array($nav_start);};
// Baum sortieren //
for($i = 0;$i < sizeof($nav_path);$i++){
$tmp_found=0;
for($nr = 0; $nr <= $con_tree_max; $nr++){
if($con_tree[$nr][parent] == $nav_path[$i] && $con_tree[$nr][preid] == '0'){$tmp_found=1;break;}
}
unset($tmp_level);$tmp_level = array();
do{
array_push($tmp_level , $nr);
$nr = $con_tree[$nr][postid];
} while($nr != '0' && $tmp_found==1);
if($i == 0){$nav_tree = $tmp_level;}
else {
$x = array_search("$nav_path[$i]", $nav_tree);
array_splice($nav_tree, $x+1, 0, $tmp_level);
};
};
// Baum ausgeben //
echo "<table width=100% cellspacing=\"5\" cellpadding=\"0\" border=\"0\">\n";
foreach($nav_tree as $nr){
if(($con_tree[$nr][public] == '1' or $auth->auth["uid"] != "nobody") and $con_tree[$nr][visible] == '1'){
echo "<tr><td onMouseOver=\"this.style['background']='".$nav_col_over."';\" ";
echo "onMouseOut=\"this.style['background']='".$nav_col_out."';\" bgcolor=\"$nav_col_out\" nowrap>";
unset($mod_space);$mod_space = array();
$mod_space = array_pad($mod_space,($con_tree[$nr][level] - 1)," ");
echo "<span style='background-color:".$nav_col_back.";'>".implode("",$mod_space)."</span>";
if($nr == $idcat){ echo "<span style='background-color:".$nav_col_on."'> </span>"; }
else { echo "<span style='background-color:".$nav_col_off."'> </span>"; };
echo "<a href=\"".$con_tree[$nr][link]."\" id=\"left-menu\">".$con_tree[$nr][titel]."</a></td></tr>";
};
};
unset($nav_tree);unset($nav_path);
echo "</table>";
?>