Breadcrumbs

Ściągnij

Czym sa Breadcrumbs?

Breadcrumbs (z angielskiego - okruszki) to część nawigacji stron WWW. Najczęściej wyglądają one podobnie jak na poniższym przykładzie:

Strona główna -> Galerie -> Zdjęcia Studyjne -> Inne
Można, oczywiście, budować je ręcznie, jednak w przypadku większych stron nie zdaje to egzaminu. Istnieją skrypty tworzące breadcrumbs na podstawie adresu URL, w moim przypadku jednak nie dało się ich zastosować.

Jak stosować klasę breadcrumb?

Najpierw podstawa, czyli "ręczne" wstawianie linków. Ściągamy plik breadcrumbs.php i zapisujemy np. w katalogu ze stroną. Następnie zabieramy się za kod strony:

  <?php
   /* Dołączamy plik z klasą breadcrumb */
   require_once("breadcrumbs.php");
   
   /* Tworzymy nową instancję klasy */
   $bc = new breadcrumb;
   /* Dodajemy kolejne stopnie zagnieżdżenia */
   /* Pierwszy argument: nazwa, drugi argument: link */
   $bc->add("Galeria", "/galeria.php");
   $bc->add("W studio", "/galeria.php?n=studio");
   
   /* Wyświetlamy gotowe linki na stronie */
   echo $bc->markup();
  ?>
 
Powinno to nam wygenerować następujący kod HTML:
  <a href="/">Main page</a> / <a href="/galeria.php">Galeria</a> / 
  <a href="/galeria.php?n=studio">W studio</a>
 
który wygląda następująco:
Main page / Galeria / W studio

Bardziej zaawansowane możliwości?

Często zdarza się, że wiele podstron jest niżej w hierarchii pod jedną ze stron, czyli - podobnie, jak w przykładzie - "pod" stroną Galeria jest wiele podgalerii tematycznych. Aby nie klepać (wklejać) na każdej z nich w koło $bc->add("Galeria", "/galeria.php"); istnieje rejestr znanych stron. Znajduje się on w pliku knowncrumbs.txt i zawiera linijkę z nazwą strony, i pod nią linijkę z jej adresem. Zatem jeśli w tym pliku mamy następującą zawartość:

 Galeria
 /galeria.php
 
możemy napisać tylko $bc->add("Galeria"); - adres jest już znany.

No dobrze, a co jeśli mamy bardziej rozbudowaną stronę, i dział Galeria chcemy umieścić nieco "głębiej"? Na przykład: Strona główna / Strony użytkowników / Adam / Fotografia / Galeria? Wiemy, że "Adam" zawsze będzie w "Strony użytkowników", "Fotografia" zawsze będzie w "Adam", a "Galeria" zawsze w "Fotografia". Czy zatem mamy pisać:

  $bc->add("Strony użytkowników");
  $bc->add("Adam");
  $bc->add("Fotografia");
  $bc->add("Galeria");
 
Oczywiście nie. Można skorzystać z zależności (w pliku knowncrumbs.txt)
  Strony użytkowników
  /users.php
  Adam@Strony użytkowników
  /users/adam/index.html
 
Zapis taki oznacza, że "Adam" zawsze będzie podstroną "Strony użytkowników". Czyli zapis:
  $bc->add("Adam");
 
wygeneruje ciąg: Strony użytkowników / Adam. Można też tworzyć kaskadowe odwołania, pamiętając jednak, że najpierw umieszczamy w pliku strony najwyżej w hierarchii. W naszym przykładzie, będzie to wyglądało tak:
  Strony użytkowników
  /users.php
  Adam@Strony użytkowników
  /users/adam/index.html
  Fotografia@Adam
  /users/adam/photo.php
  Galeria@Fotografia
  /users/adam/gallery.php
 
Wtedy po wpisaniu $bc->add("Galeria"); wygenerowany zostanie ciąg: Strona główna / Strony użytkowników / Adam / Fotografia / Galeria.

Autor

GDR!