Info o ciastkach

Eeee...
Żeby strona działała fajnie to trzeba zaakceptować obsługę pewnych plików. Jeśli jesteś nienormalny, nosisz czapkę z amelinium i siedzisz w schronie zbudowanym z poduszek to możesz je sobie wyłączyć. Autor strony nie czerpie żadnych korzyści z cookies (twierdzi nawet, że ten komunikat jest głupi), ale, cóż - Unia wymaga. Korzystając z witryny zgadzasz się z polityką cookies.

Wszystko w budowie...

Umieszczamy breadcrumbs na stronie

Myśle, że każdy wie co to jest breadcrumbs. Jeśli jednak nie wiecie to poniższe foto Wam to wyjaśni.

Ryc. 1. O tototototo

Bardzo ładne gotowe breadcrumbs możemy zaimplementować z biblioteki Materializecss. Jeśli ktoś chce przygotować takie coś samemu to też nic nie stoi na przeszkodzie - wszak to tylko odnośniki w górę witryny.

Możemy to wszystko zrobić dwojako. Dodać do głównego widoku metodę np



function breadcrumbs($data){
	$this->breadcrumbs=$data;
}

W kontrolerze pewnej strony wywoływalibyśmy to następująco



$this->view->breadcrumbs([ROOT => "Start", ROOT."produkty/" => "Produkty", ROOT."produkty/promocje/" => "Promocje"]);

Co przekładało by się na taki kod w widoku (main.php)



if(!empty($this->breadcrumbs)){
	echo "<nav><div class='nav-wrapper'><div class='col s12'>"
	foreach($this->breadcrumbs as $k => $v){
		echo "<a href='$k' class='breadcrumb'>$v</a>";
	}
	echo "</div></div></nav>";
}

Ok, ale to się wiąże z edycją wielu plików po to tylko by wprowadzić zmianę czysto kosmetyczną. Ja to zrobię w konstruktorze widoku. Dzięki temu będę mógł jeszcze uporządkować tytuł strony i słowa kluczowe. Tak teraz wygląda konstruktor widoku (View.php)



function __construct() {
     $url=filter_var($_GET["url"],FILTER_SANITIZE_STRING);
     $url= explode("/", $url);
     
     $b=[ROOT => "Start"];
     $t="";
     $k="";
     
     //poziom pierwszy zagniezdzenia
     if(!empty($url[0])){
         switch($url[0]){
             case "produkty":
                 $t="Produkty";
                 $b=array_merge($b, [ROOT."produkty/" => "Produkty"]);
                 break;
             case "uslugi":
             case "serwis":
             case "o-firmie":
             case "kontakt":
         }
     }
     
     //poziom drugi itd
     if(!empty($url[1])){
         switch($url[1]){
             case "promocje":
                 $t = "Promocje";
                 $k = "promocja";
                 $b= array_merge($b, [ROOT."produkty/promocje/" => "Promocje"]);
                 break;
         }
     }
     
     $this->tytul($t);
     $this->kluczowe($k);
     $this->breadcrumbs($b);
 }

function tytul($data){
     $this->tytul=$data;
 }
 
 function kluczowe($data){
     $this->kluczowe=$data;
 }
 
 function breadcrumbs($data){
     $this->breadcrumbs=$data;
 }

Kod wykonałem dla jednej podgałęzi ze względów poglądowych. Widać, że wszystkie opisowe cuda mamy w jednym miejscu więc będzie łatwiej tym wszystkim zarządzać zamiast zawsze odwoływać się do tego w kontrolerze. Gdy kod niebezpiecznie się rozrasta trzeba podjąć pewne działania by nie skończyć później w ciemnej... uliczce. Tytuł strony implementujemy tak. Słowa kluczowe podobnie a breadcrumbs jak wyżej w pliku main.php.

Analogicznie robimy z całą resztą.

Komentarze (0)

Nikt jeszcze nie dodał komentarza. Możesz być pierwszy.

Napisz komentarz lub zgłoś błąd

Dodane w dniu 23 października 2017 przez Michał Misztal
Kopiowanie powyższych wypocin dozwolone pod warunkiem podania źródła, znaczy tandemu autor + link do strony