Seite 1 von 1

Navigationspfad

Verfasst: Do 24. Mai 2007, 16:03
von speedmaster
Hallo,

ich setzte folgendes Modul als Navigationspfad ein, weiss aber nicht mehr aus welchem Thread ich es habe. Eventuell kann mir aber auch jemand so schnell helfen. Ich hätte gerne das bei diesem Modul der Kategoriehauptbaum nicht ausgegeben wird. Was muß hier geändert werden, das der Pfad nicht mehr als:

Hauptnavigation > Downloads > Bilder

ausgegeben wird, sondern so:


Downloads > Bilder

Hier der Code:

Code: Alles auswählen

<?php 
$nav_tp = $idcat; 
while($nav_tp > 0) { 
  $sql = "SELECT 
              parentid, A.idcat, A.level, name 
          FROM 
              ".$cfg["tab"]["cat_tree"]." AS A, 
              ".$cfg["tab"]["cat"]." AS B, 
              ".$cfg["tab"]["cat_lang"]." AS C 
          WHERE 
              A.idcat=B.idcat AND 
              B.idcat=C.idcat AND 
              C.idlang='$lang' AND 
              B.idclient='$client' AND 
              B.idcat ='$nav_tp'"; 

  $db->query($sql); 
  $db->next_record(); 
  $nav_tree[$db->f("level")][idcat] = $nav_tp; 
  $nav_tree[$db->f("level")][parent] = $db->f("parentid"); 
  $nav_tree[$db->f("level")][name] = $db->f("name"); 
  $nav_tree[$db->f("level")][link] = $sess->url("front_content.php?idcat=".$db->f("idcat")."&client=".$client."&lang=".$lang.""); 
  $nav_tp = $db->f("parentid"); 
} 
echo "<span class=\"pfad\"></span>"; 
for($i=0;$i<count($nav_tree)-1;$i++) { 
 echo "<a class=\"pfad\" href=\"".$nav_tree[$i][link]."\">".$nav_tree[$i][name]."</a>";  
  if($nav_tree[$i][idcat] != $idcat) { 
    echo "<span class=\"pfad\"> > </span>"; // seperator 
  } 
} 
$letzereintrag=count($nav_tree)-1; 
echo "<span class=\"pfad\">".$nav_tree[$letzereintrag][name]."</span>"; 

?> 
Über einen hilfreichen Tipp wäre ich dankbar. :wink:

Verfasst: Do 24. Mai 2007, 17:48
von wosch
Nimm das Standard-Pfadmodul des Beispielmandanten, da ist es so.

Du findest es hier (2x weiterklicken)

http://www.contenido.de/forum/viewtopic.php?t=17159

Verfasst: Fr 25. Mai 2007, 09:45
von speedmaster
Danke für die Antwort, aber gerade das will ich nicht aus folgendem Grund. Das Standard Modul für den Navigationspfad verlinkt alle Kategorien. Ich brauche aber einen Navigationspfad der den letzte Kategorie im Pfad nicht verlinkt. Und genau das macht dieses Modul das ich angegeben habe. Nur wird hier leider die Hauptkategorie mit ausgegeben und die würde ich gerne weg haben.

Kann mir da bitte jemand helfen? :(

Verfasst: Fr 25. Mai 2007, 10:54
von tinof

Code: Alles auswählen

<?php 
$nav_tp = $idcat; 
while($nav_tp > 0) { 
  $sql = "SELECT 
              parentid, A.idcat, A.level, name 
          FROM 
              ".$cfg["tab"]["cat_tree"]." AS A, 
              ".$cfg["tab"]["cat"]." AS B, 
              ".$cfg["tab"]["cat_lang"]." AS C 
          WHERE 
              A.idcat=B.idcat AND 
              B.idcat=C.idcat AND 
              C.idlang='$lang' AND 
              B.idclient='$client' AND 
              B.idcat ='$nav_tp'"; 

  $db->query($sql); 
  $db->next_record(); 

if ($db->f("parentid") != 0) { 

  $nav_tree[$db->f("level")][idcat] = $nav_tp; 
  $nav_tree[$db->f("level")][parent] = $db->f("parentid"); 
  $nav_tree[$db->f("level")][name] = $db->f("name"); 
  $nav_tree[$db->f("level")][link] = $sess->url("front_content.php?idcat=".$db->f("idcat")."&client=".$client."&lang=".$lang.""); 

}

  $nav_tp = $db->f("parentid"); 
} 
echo "<span class=\"pfad\"></span>"; 
for($i=0;$i<count($nav_tree)-1;$i++) { 
 echo "<a class=\"pfad\" href=\"".$nav_tree[$i][link]."\">".$nav_tree[$i][name]."</a>";  
  if($nav_tree[$i][idcat] != $idcat) { 
    echo "<span class=\"pfad\"> > </span>"; // seperator 
  } 
} 
$letzereintrag=count($nav_tree)-1; 
echo "<span class=\"pfad\">".$nav_tree[$letzereintrag][name]."</span>"; 

?> 
Tut's das ?

Verfasst: Fr 25. Mai 2007, 14:22
von speedmaster
Hallo,

nein, jetzt habe ich gar keinen Navigationspfad mehr :(
Trotzdem Danke! :)
Wie könnte es denn noch gehen?

Verfasst: Sa 26. Mai 2007, 18:22
von speedmaster
Hat denn wirklich keiner mehr nen Tipp? :cry:

Verfasst: So 27. Mai 2007, 12:19
von wosch
So schlimm finde ich das nicht (eher sogar angenehm) das die letzte Kategorie im Pfad verlink ist, aber Geschmackssache.

Dein Modul läßt sich genauso mit der Startkategorie ändern wie das Standardmodul.

Der Schlüssel dazu liegt hier:

Code: Alles auswählen

echo "<span class=\"pfad\"></span>"; 
for($i=0;$i<count($nav_tree)-1;$i++) { 
 echo "<a class=\"pfad\" href=\"".$nav_tree[$i][link]."\">".$nav_tree[$i][name]."</a>";  
  if($nav_tree[$i][idcat] != $idcat) { 
    echo "<span class=\"pfad\"> > </span>"; // seperator 
Die Variable $i=wert gibt an von wo ab die Kategorien ausgegeben werden
0 = Ebene 0
1 = Ebene 1
...
Für deinen Wunsch müßtest du also den Code-Block so ändern:

Code: Alles auswählen

echo "<span class=\"pfad\"></span>"; 
for($i=1;$i<count($nav_tree)-1;$i++) { 
 echo "<a class=\"pfad\" href=\"".$nav_tree[$i][link]."\">".$nav_tree[$i][name]."</a>";  
  if($nav_tree[$i][idcat] != $idcat) { 
    echo "<span class=\"pfad\"> > </span>"; // seperator 

Verfasst: So 27. Mai 2007, 16:17
von speedmaster
Supi!!! Genau das habe ich gemeint. Viiiiieeeeelen Dank für deine Hilfe :D :lol: :P :wink: :!: :!: