navigation

Gesperrt
bleed
Beiträge: 6
Registriert: Sa 8. Feb 2003, 14:15
Kontaktdaten:

navigation

Beitrag von bleed » So 9. Feb 2003, 20:25

hi!
ich weiß...das wurde wohl schon oft gefragt, aber ich komm echt nicht weiter!
ich suche eine navigation, bei der die erste ebene horizontal und die zweite und weitere unterebenen vertikal dargestellt werden. möglichst sollte der aktive punkt auch noch markiert werden.

wär klasse, wenn mir jemand helfen könnte!
danke!

ciao bleed

JSIT
Beiträge: 15
Registriert: Di 4. Feb 2003, 16:14
Wohnort: Pfinztal
Kontaktdaten:

Beitrag von JSIT » So 9. Feb 2003, 22:56

Hallo!

Ich habe folgendes gemacht, einen neuen Strukturbaum angelegt und habe so 3 Navigationen erzeugt.

Ich habe 2 Hauptnavigationen (verti) und eine Subnavigation (hochz).


Version 4.2 !

Hier meine Hauptnavigationen !
ich habe den Code extern und include Ihn im Layout (geht auch mit Modul)

Code: Alles auswählen

<?php 
//-----------<!-- BEGIN MAIN_NAVIGATION -->---------------------------// 
//$nav_start = '3'; 
$nav_col_out  = "#FFFFFF"; 
$nav_col_over = "#FFFFFF"; 
$nav_col_back = "#FFFFFF"; 
$nav_col_on   = "#FFFFFF"; 
$nav_col_off  = "#FFFFFF"; 
$img_off  = $cfgPathFrontendImg."moarrow_off.gif";
$img_on  = $cfgPathFrontendImg."moarrow_on.gif";
$space = $cfgPathFrontendImg."space.gif";
// 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); 
//var_dump($nav_path);
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=\"3\" cellpadding=\"2\" 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),"<img src=\"".$space." WIDTH=\"20\" HEIGHT=\"2\" BORDER=\"0\" align=\"left\">"); 
	echo "<span style='background-color:".$nav_col_back.";'>".implode("",$mod_space)."</span>"; 
      if($nr == $idcat){ echo "<span style='background-color:".$nav_col_on."'><img src=\"".$img_on."\"></span>"; } 
      else { echo "<span style='background-color:".$nav_col_off."'><img src=\"".$img_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>"; 
//-------------------<!-- END MAIN_NAVIGATION -->---------------------//
?> 
ich rufe die Navigation wie folgt auf

Code: Alles auswählen


// Startebene (parent) schau bei DIR
$nav_start='3'
include ("inc/main_nav.inc.php");
//
$nav_start='19'
include ("inc/main_nav.inc.php");
//

So habe ich zwei Navigationen getrennt

die hochinzantale wie folgt.

Code: Alles auswählen

<!-- BEGIN SECOND_NAVIGATION --> 
<?php 
//-----------------------------------------------------------------------------// 
$nav_start = '4'; 
//$nav_col_out  = "#6699FF"; 
//$nav_col_over = "#9999FF"; 
//$nav_col_back = "#6600FF"; 
//$nav_col_on   = "#FF0000"; 
//$nav_col_off  = "#F6F6F&"; 
//$font_normal  = "top-menu"; 
//$font_aktiv   = "top-menu";
$img_on  = $cfgPathFrontendImg."moarrow_on_top.gif"; 

// Baum sortieren // 
for($nr = 0; $nr <= $con_tree_max; $nr++){ 
   if($con_tree[$nr][parent] == $nav_start && $con_tree[$nr][preid] == '0'){$tmp_found=1;break;} 
} 
unset($nav_tree);$nav_tree = array(); $i = -1; 
do{ 
   array_push($nav_tree , $nr); 
   $nr = $con_tree[$nr][postid]; 
   $i++; 
} while($nr != '0' && $tmp_found==1 && $i <= $con_tree_max); 
// Baum ausgeben // 
foreach($nav_tree as $nr){ 
   if(($con_tree[$nr][public] == '1' or $auth->auth["uid"] != "nobody") and $con_tree[$nr][visible] == '1')
	{ 
      echo "<a href=\"".$con_tree[$nr][link]."\" id=\"top-menu\">"; 
      if($nr == $idcat){ echo "<img src=\"".$img_on."\" border=\"0\" align=\"middle\" width=\"4\" height=\"10\">"; }
      echo $con_tree[$nr][titel]."</a> ";
      if($con_tree[$nr][postid] != 0){ echo "| "; }; 
   }; 
}; 
unset($nav_tree); 
?> 
<!-- END SECOND_NAVIGATION -->
wundere dich nicht wegen der IMG´s sind Grafische Untermalungen:-)

Also ich hoffen geholfen zu haben !


Jörg
###############
www.jsit.de
www.phpnet.de
www.MailReader.de
################

bleed
Beiträge: 6
Registriert: Sa 8. Feb 2003, 14:15
Kontaktdaten:

Beitrag von bleed » Mo 10. Feb 2003, 12:06

vielen dank! ich probiers mal...
eine frage noch zur sicherheit: "$nav_start='3'" das meint schon immer die jeweilige "idcat" oder?

danke! bleed

bleed
Beiträge: 6
Registriert: Sa 8. Feb 2003, 14:15
Kontaktdaten:

Beitrag von bleed » Mo 10. Feb 2003, 13:09

habs grad ausprobiert! klappt! vielen dank!
eine frage hätt ich trotzdem noch :) :
und zwar hätt ich es gerne, dass die erste ebene in der vertikalen navigaiton nicht angezeigt wird. also, dass vertikal immer nur die jeweiligen unterpunkte auftauchen.
klappt das auch noch irgendwie ?!
vielen dank! bleed

Gesperrt