Breadcrumbs
ŚciągnijCzym sa Breadcrumbs?
Breadcrumbs (z angielskiego - okruszki) to część nawigacji stron WWW. Najczęściej wyglądają one podobnie jak na poniższym przykładzie:
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:
Powinno to nam wygenerować następujący kod HTML:
<?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();
?>
który wygląda następująco:
<a href="/">Main page</a> / <a href="/galeria.php">Galeria</a> /
<a href="/galeria.php?n=studio">W studio</a>
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ść:
możemy napisać tylko
Galeria
/galeria.php
$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ć:
Oczywiście nie. Można skorzystać z zależności (w pliku knowncrumbs.txt)
$bc->add("Strony użytkowników");
$bc->add("Adam");
$bc->add("Fotografia");
$bc->add("Galeria");
Zapis taki oznacza, że "Adam" zawsze będzie podstroną "Strony użytkowników". Czyli zapis:
Strony użytkowników
/users.php
Adam@Strony użytkowników
/users/adam/index.html
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:
$bc->add("Adam");
Wtedy po wpisaniu
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
$bc->add("Galeria");
wygenerowany zostanie ciąg: Strona główna / Strony użytkowników / Adam / Fotografia / Galeria.