navigation-horiz.(oben),vert.(links)

Gesperrt
websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

navigation-horiz.(oben),vert.(links)

Beitrag von websugar »

habe mich grad mit einem navigations-code von ekke hier aus dem forum beschäftigt und versucht es so zu verändern, daß oben die hauptpunkte horizontal in td und links die unterpunkte in tr erscheinen.

da ich ein php-newbie bin, hab ich einfach nur herumprobiert. es schaut schon mal nicht so schlecht aus.

aber kann sich das mal jemand ansehen, bitte, hab das gefühl, das da irgendwas noch nicht ganz stimmt, da ab unterpunkt 2 keine unterpunkte mehr angezeigt werden...

Code: Alles auswählen

<!-- begin main-navigation-->
<?php 
$i=1; 
if (count($tree[1])) 
   while ($i<=count($tree[1])) 
     {echo "\n  <td align=\"center\" width=\"50\"";
   
	  if ($tree[1][$i][idcat] == $subid) {echo "bgcolor=\"#990000\"";}    
 
      else {echo " onMouseOver=\"this.style['background']='#990000;\" onMouseOut=\"this.style['background']='#990000;\" bgcolor=\"#990000\"";} 
	  echo " nowrap><a href=\"".$tree[1][$i][link]."\" onMouseOver=\"on('".$tree[1][$i][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"lmenu\">".$tree[1][$i][name]."</a></td>\n"; 

      $i++;} 
?> 
<!-- begin main-navigation--> 

Code: Alles auswählen

<!-- begin second-navigation-->
<?php 
$i=1; 
if (count($tree[1])) 
   while ($i<=count($tree[1])) 
     {echo "\n  <tr width=\"130\"";
  
	  echo " </tr>\n"; 
  
	  if ($tree[1][$i][idcat] == $subid) 
                    {$j=1; 
                         while ($j<=count($tree[1][$i])) 
						 
                         {echo "\n  <tr align=\"center\""; 
						 
 
      if ($tree[1][$i][$j][idcat] == $idcat) {echo "bgcolor=\"#000099'\"";} 
 
      else {echo " onMouseOver=\"this.style['background']='#000099';\" onMouseOut=\"this.style['background']='#000099';\" bgcolor=\"#000099'\"";} 
      echo " nowrap><a href=\"".$tree[1][$i][$j][link]."\" onMouseOver=\"on('".$tree[1][$i][$j][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"lmenu\">".$tree[1][$i][$j][name]."</a></tr>\n"; 
      
	  
	  $j++;}} 
      $i++;} 
?> 
<!-- end second-navigation-->
thanx!
Sven777b
Beiträge: 503
Registriert: Mi 18. Sep 2002, 00:00
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Sven777b »

das liegt ganz einfach daran, dass diese Navigation bei ebene 3 aufhört.

home ($tree[1])
- Hauptpunkt ($tree[1][1])
- - Unterpunkt ($tree[1][1][1])
- - - Subkategorie <- die iss schon nicht mehr dabei

diese Struktur wird in der Datei "front_content.php" in deinem frontend-verzeichnis aufgebaut. Du kannst sie natürlich um eine weitere SQL-Abfrage erweitern. Wirst aber dann auf das Problem stossen, dass dir der Parent verlorengeht und somit beim Anklicken eines Unterpunktes di ganze Navigation zu geht. Er weiss nicht mehr wo du bist. Dafür wird für Ebene 2 die Variable subid= mit übergeben (bei meiner nicht mehr - weil die nicht mehr benötigt wird).

Die Navigation die ich geschrieben hatte, hat dieses Problem nicht mehr, weil sie die Struktur direkt aus der Datenbank rekursiv aufbaut. Also von der aktuellen Seite bis zum root zurückwandern. Dabei ist es aber nicht mehr so einfach, die Hauptstrukturpunkte loszuwerden. Obwohl... ich glaube, du musst nur die Sperre entfernen...
das ist diese Zeile:

Code: Alles auswählen

if($mod_sitelist[0] != $mod_baum){$mod_sitelist = array($mod_baum);};
welche überprüft, ob du in der Hauptnavigation oder woanders bist. Soll eigentlich verhindern, dass die Navigation plötzlich die Strukturpunkte des Service-Baumes anzeigt, wenn man auf einen Link von dort klickt.
websugar
Beiträge: 54
Registriert: Di 17. Sep 2002, 20:18
Wohnort: Wien
Kontaktdaten:

Beitrag von websugar »

habe es jetzt mal so geschafft:

Code: Alles auswählen

      <!-- begin main-navigation-->
	  <table border="0" width="620" cellspacing="0" cellpadding="0" id="tmenu">
	    <tr>
		  <td id="tmenu">
	  <?php
	  $i=1;
	  while ($i<=count($tree[1]))
	  {if ($tree[1][$i][idcat] == $idcat) 
	    {echo "".$tree[1][$i][name]." ";} 
	  else 
	    {echo "<a href=\"".$tree[1][$i][link]."\" onMouseOver=\"on('".$tree[1][$i][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"tmenu\">".$tree[1][$i][name]."</a> ";}
	  if ($i != count($tree[1])) echo "&nbsp;&nbsp;&nbsp;";
	  $i++;}
	  ?> 
          </td>
        </tr>
	  </table>
      <!-- begin main-navigation--> 

Code: Alles auswählen

				  <!-- begin second-navigation-->
				  <?php
				  $i=1; 
				  if (count($tree[1])) 
				     {echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">\n"; 
					    while ($i<=count($tree[1])) 
						//hier ist die 1. Abfrage: 
						{if ($tree[1][$i][idcat] == $subid) 
						{$j=1; 
                        while ($j<=count($tree[1][$i])) 
						          {echo "<tr>\n"; 
								   echo "\n  <td id=\"lmenu\""; 
						//hier ist die 2. Abfrage: 
						if ($tree[1][$i][$j][idcat] == $idcat) {echo "bgcolor=\"#d2d2d2\"";} 
						      else {echo " onMouseOver=\"this.style['background']='#d2d2d2';\" onMouseOut=\"this.style['background']='#d2d2d2';\" bgcolor=\"#d2d2d2\"";} 
							        echo " nowrap><a href=\"".$tree[1][$i][$j][link]."\" onMouseOver=\"on('".$tree[1][$i][$j][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"left-menu\">".$tree[1][$i][$j][name]."</a></td></tr>"; 
									      $j++;}} 
										        $i++;} 
                      echo "</table>\n";}
				   ?>
				<!-- end second-navigation-->


es passt vorerst - vielleicht kann es ja jemand auch gebrauchen.
eine tiefere struktur wird nicht mehr angezeigt - werde mir das letzte posting nochmal genauer durchlesen :-)
Gesperrt