zisslaweng.de

 Home    CSS    PHP    HTML    JavaScript    Allgemein    Sitemap   exemption-filter

„bread crumb” Zeile

a lá Hänsel und Gretel

Ist für eine Seite wie zisslaweng natürlich übertrieben. Dient nicht unbedingt der Navigation sondern eher der Übersicht, wenn sich ein Besucher im Dschungel der Webseite verlaufen hat. Aber ich möchte es doch zeigen, zumal die meisten Komponenten bereits vorhanden sind.

Die Spalte parent_ord in der Tabelle seite macht es möglich. parent_ord sollte jeweils auf ord der übergeordneten Seite verweisen. Das müssen Sie einmalig selbst erledigen, aber dann....
Eine neue Klasse breadcrumb in der Datei z_breadcrumb.php5 erweitert die Klasse MenueDbMapper und Sie haben alle Informationen beieinander.
class breadcrumb extends MenueDbMapper {
		
  public function __construct (){
    parent::__construct();
  }

  private $first = TRUE;		

  public function breadcrumb($ord) { 
    echo '<div id="breadcrumb" class="text">Sie sind hier: ';
    $this->get_crumbs($ord,$ord);
    echo '</div>';
  }

  private function get_crumbs($ord, $keep_ord) {
    global $dir;
    $pd = $this->get_Page_Data($ord);
    if ($pd->parent_ord != 0) {
      $this->get_crumbs($pd->parent_ord, $keep_ord);
    }
    if ($this->first) {
      echo "<strong>".$pd->main."</strong> ";
      $this->first = FALSE; 				
    }	
    echo '<a href="'.$dir.'/'.$pd->pfad.'/'.$pd->datei.'">';
    echo $pd->menue_text."</a> ";
    return;
  }
}

Die Funktion get_crumbs arbeitet rekursiv, hangelt sich also vom Standort in der Hierarchie zurück. Wenn die Abbruchbedingung erreicht wird erfolgt die Ausgabe und wie schön, sie liegt dann bereits in der richtigen Sortierung vor.

Auf der Webseite ein Zweizeiler
  $bc = new breadcrumb();
  $bc->breadcrumb($pd->ord)
und mit ein wenig CSS sieht das aus wie auf der Seite oben
#breadcrumb {
  clear:both;
  margin-left:auto;
  margin-right:auto;
  width: 900px;
  background-color:white;
  border:2px solid #d0d0d0;
  -moz-border-radius:7px;
  -khtml-border-radius:7px;
}
Wie versprochen, alle Dateien zum download in einem tar Archiv. Menüsteuerung in der Version vom 25.01.11 13:34

 Die rekursive Funktion get_crumbs(). Achten Sie auf eine zuverlässige, immer zutreffende Abbruchbedingung oder Sie haben eine saubere Endlosschleife!

Logo