Jak se dnes dělá drobečková navigace v PHP?

PavliskoH

Jak se dnes dělá drobečková navigace v PHP?
« kdy: 25. 01. 2018, 15:41:37 »
Zdravim, poradte mi jak se dela drobeckova navigace?
Myslel jsem, ze se to delá podle adresy, kdyz bude adresa
Kód: [Vybrat]
example.com/Komponenty/DiskySSD/2,5/SATA IIItak drobeckova navigace bude
Kód: [Vybrat]
Komponenty » Disky » SSD » 2,5" » SATA IIIjenze dneska je adresa ve tvaru
Kód: [Vybrat]
example.com/nejaky-disk.htmla drobeckova navigace je stejne
Kód: [Vybrat]
Komponenty » Disky » SSD » 2,5" » SATA IIIJak se to dela? To jako kazda stranka ma ulozenou celou tu strukturu a nacita se z db spolu s obsahem? To snad ne. Diky za vysvetleni.
« Poslední změna: 25. 01. 2018, 19:31:30 od Petr Krčmář »


Ivan Nový

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #1 kdy: 25. 01. 2018, 15:57:46 »
Zdravim, poradte mi jak se dela drobeckova navigace?
Myslel jsem, ze se to delá podle adresy, kdyz bude adresa
Kód: [Vybrat]
example.com/Komponenty/DiskySSD/2,5/SATA IIItak drobeckova navigace bude
Kód: [Vybrat]
Komponenty » Disky » SSD » 2,5" » SATA IIIjenze dneska je adresa ve tvaru
Kód: [Vybrat]
example.com/nejaky-disk.htmla drobeckova navigace je stejne
Kód: [Vybrat]
Komponenty » Disky » SSD » 2,5" » SATA IIIJak se to dela? To jako kazda stranka ma ulozenou celou tu strukturu a nacita se z db spolu s obsahem? To snad ne. Diky za vysvetleni.

Dělá to server v modu_rewrite, podívejte se sem https://www.jakpsatweb.cz/server/mod-rewrite.html

PavliskoH

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #2 kdy: 25. 01. 2018, 16:34:51 »
Tak jsem to prelouskal ale ani jedna zmínka o drobeckove navigaci tam neni.

Ivan Nový

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #3 kdy: 25. 01. 2018, 16:58:39 »
Kód: [Vybrat]
<ul>
     <li><a href="Komponenty">Komponenty</a></li>
     <li><a href="Komponenty/Disky">Disky</a></li>
     <li><a href="Komponenty/DiskySSD">SSD</a></li>
     <li><a href="/Komponenty/DiskySSD/2,5"">2,5</a></li>
     <li><a href="/Komponenty/DiskySSD/2,5/SATA III"">SATA III</a></li>
</ul>
A pravidla pro mod_rewrite vám zajistí namapování symbolického URL na reálné url skriptu, který vám vygeneruje požadovanou stránku, z url zjistíte, co chcete vypsat.

asdf111

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #4 kdy: 25. 01. 2018, 17:14:14 »
Tak jsem to prelouskal ale ani jedna zmínka o drobeckove navigaci tam neni.
ja si myslim ze to tam celkom presne je :)

https://www.jakpsatweb.cz/server/mod-rewrite.html#promenne


Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #5 kdy: 25. 01. 2018, 18:32:09 »
Tak jsem to prelouskal ale ani jedna zmínka o drobeckove navigaci tam neni.
ja si myslim ze to tam celkom presne je :)

https://www.jakpsatweb.cz/server/mod-rewrite.html#promenne

Tazatel se ale myslím neptá na mapování url, nýbrž na konstrukci drobečkové navigace. Na to bych odpověděl, že tvůrce webu nadefinuje nějakou strukturu kategorií. Řekněme, že se jedná např. o e-shop a produkt může mít jednu hlavní kategorii. Při načtení url adresy produktu v prohlížeči se dohledá odpovídající id produktu a jeho údaje se přečtou z databáze (přitom vazba url - id produktu může být udělaná různě, nejjednodušeji bude v url uvedeno přímo id produktu + název produktu pro lepší seo). V načtených údajích bude uvedena i jeho hlavní kategorie a do drobečkové navigace se vyrenderuje celá cesta k této kategorii s odpovídajícími odkazy. Pokud jsou kategorie vnořené, bude tam několik úrovní. Stejně to bude fungovat i při zobrazení samotné kategorie (pak se z databáze nenačte jeden produkt, ale samotná kategorie a jednotlivé produkty do ní zařazané). Mod rewrite nemusí být vůbec ve hře a bude to fungovat stejně i na jiném serveru či v úplně jiném programovacím jazyce/frameworku.

PavliskoH

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #6 kdy: 25. 01. 2018, 18:34:34 »
Kód: [Vybrat]
<ul>
     <li><a href="Komponenty">Komponenty</a></li>
     <li><a href="Komponenty/Disky">Disky</a></li>
     <li><a href="Komponenty/DiskySSD">SSD</a></li>
     <li><a href="/Komponenty/DiskySSD/2,5"">2,5</a></li>
     <li><a href="/Komponenty/DiskySSD/2,5/SATA III"">SATA III</a></li>
</ul>
A pravidla pro mod_rewrite vám zajistí namapování symbolického URL na reálné url skriptu, který vám vygeneruje požadovanou stránku, z url zjistíte, co chcete vypsat.
Vazne nechapu jak muze vygenerovat z adresy
Kód: [Vybrat]
example.com/nejaky-disk.htmltohle
Kód: [Vybrat]
<ul>
     <li><a href="Komponenty">Komponenty</a></li>
     <li><a href="Komponenty/Disky">Disky</a></li>
     <li><a href="Komponenty/DiskySSD">SSD</a></li>
     <li><a href="/Komponenty/DiskySSD/2,5"">2,5</a></li>
     <li><a href="/Komponenty/DiskySSD/2,5/SATA III"">SATA III</a></li>
</ul>
aniz by to nebylo nekde ulozeny  :(

PavliskoH

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #7 kdy: 25. 01. 2018, 18:44:52 »
Tak jsem to prelouskal ale ani jedna zmínka o drobeckove navigaci tam neni.
ja si myslim ze to tam celkom presne je :)

https://www.jakpsatweb.cz/server/mod-rewrite.html#promenne

Tazatel se ale myslím neptá na mapování url, nýbrž na konstrukci drobečkové navigace. Na to bych odpověděl, že tvůrce webu nadefinuje nějakou strukturu kategorií. Řekněme, že se jedná např. o e-shop a produkt může mít jednu hlavní kategorii. Při načtení url adresy produktu v prohlížeči se dohledá odpovídající id produktu a jeho údaje se přečtou z databáze (přitom vazba url - id produktu může být udělaná různě, nejjednodušeji bude v url uvedeno přímo id produktu + název produktu pro lepší seo). V načtených údajích bude uvedena i jeho hlavní kategorie a do drobečkové navigace se vyrenderuje celá cesta k této kategorii s odpovídajícími odkazy. Pokud jsou kategorie vnořené, bude tam několik úrovní. Stejně to bude fungovat i při zobrazení samotné kategorie (pak se z databáze nenačte jeden produkt, ale samotná kategorie a jednotlivé produkty do ní zařazané). Mod rewrite nemusí být vůbec ve hře a bude to fungovat stejně i na jiném serveru či v úplně jiném programovacím jazyce/frameworku.

Díky, presne tohle me zajíma ;) nejaky example pro pochopeni by nebyl?

Honza

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #8 kdy: 25. 01. 2018, 18:45:10 »
Vazne nechapu jak muze vygenerovat z adresy ...
aniz by to nebylo nekde ulozeny  :(
To je samozřejmě uloženo v databázi... Nevidím v tom žádnou magii.

Kit

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #9 kdy: 25. 01. 2018, 19:34:27 »
V databázi je uložen strom kategorií. Každý element má kromě odkazu na svého rodiče ještě URL na popisek své kategorie. Každá položka ceníku má odkaz na některý z listů tohoto stromu. Při zobrazování drobenkové navigace stačí projít cestu od listu ke kořeni tohoto stromu kategorií.

Pokusy o realizaci v mod_rewrite jsou cestou do pekel. Čtyřřádkový .htacces obvykle stačí.

Honza

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #10 kdy: 25. 01. 2018, 20:07:13 »
V databázi je uložen strom kategorií. Každý element má kromě odkazu na svého rodiče ještě URL na popisek své kategorie. Každá položka ceníku má odkaz na některý z listů tohoto stromu. Při zobrazování drobenkové navigace stačí projít cestu od listu ke kořeni tohoto stromu kategorií.

Pokusy o realizaci v mod_rewrite jsou cestou do pekel. Čtyřřádkový .htacces obvykle stačí.
To je ale hodně naivní implementace, daleko efektivnější je ukládat rovnou celou cestu k dané kategorii, ne jen odkaz na rodiče.
Tedy např. /1/12/13/58.

Kit

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #11 kdy: 25. 01. 2018, 20:15:06 »
V databázi je uložen strom kategorií. Každý element má kromě odkazu na svého rodiče ještě URL na popisek své kategorie. Každá položka ceníku má odkaz na některý z listů tohoto stromu. Při zobrazování drobenkové navigace stačí projít cestu od listu ke kořeni tohoto stromu kategorií.

Pokusy o realizaci v mod_rewrite jsou cestou do pekel. Čtyřřádkový .htacces obvykle stačí.
To je ale hodně naivní implementace, daleko efektivnější je ukládat rovnou celou cestu k dané kategorii, ne jen odkaz na rodiče.
Tedy např. /1/12/13/58.

Pokud k tomu účelu používáš relační databázi, tak máš samozřejmě pravdu.

Re:Jak se dnes dělá drobečková navigace v PHP?
« Odpověď #12 kdy: 25. 01. 2018, 20:52:01 »
nekdy je to komplikovanejsi, treba kdyz je produkt ve vice kategoriich, pak se treba spravna drobeckovka resi ze session(a pri prazdne se vybere defaultni kategorie)... tohle vubec neni o php. resi se to podobne jako se resi treba menu. ty informace jsou nekde v DB. casto ve frameworku byva nejaka obecne API a ty si vyresis konkretni implementaci podle toho jak to zakaznik pozaduje.
Děkuji za možnost editace příspěvku.

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #13 kdy: 25. 01. 2018, 21:33:17 »
Tazatel se ale myslím neptá na mapování url, nýbrž na konstrukci drobečkové navigace. Na to bych odpověděl, že tvůrce webu nadefinuje nějakou strukturu kategorií. Řekněme, že se jedná např. o e-shop a produkt může mít jednu hlavní kategorii. Při načtení url adresy produktu v prohlížeči se dohledá odpovídající id produktu a jeho údaje se přečtou z databáze (přitom vazba url - id produktu může být udělaná různě, nejjednodušeji bude v url uvedeno přímo id produktu + název produktu pro lepší seo). V načtených údajích bude uvedena i jeho hlavní kategorie a do drobečkové navigace se vyrenderuje celá cesta k této kategorii s odpovídajícími odkazy. Pokud jsou kategorie vnořené, bude tam několik úrovní. Stejně to bude fungovat i při zobrazení samotné kategorie (pak se z databáze nenačte jeden produkt, ale samotná kategorie a jednotlivé produkty do ní zařazané). Mod rewrite nemusí být vůbec ve hře a bude to fungovat stejně i na jiném serveru či v úplně jiném programovacím jazyce/frameworku.

Díky, presne tohle me zajíma ;) nejaky example pro pochopeni by nebyl?

Nevím o žádném příkladu, který by byl pro laika dostatečně čitelný a pokrýval celé téma. Skrývá se tam toho hodně (konfigurace serveru, základy php, základy sql, uložení stromové struktury v databázi - zde je na výběr z několika implementací).

PavliskoH

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #14 kdy: 25. 01. 2018, 23:35:45 »
Nevím o žádném příkladu, který by byl pro laika dostatečně čitelný a pokrýval celé téma. Skrývá se tam toho hodně (konfigurace serveru, základy php, základy sql, uložení stromové struktury v databázi - zde je na výběr z několika implementací).
Hotovo, nebylo to ani tak slozity jak se na oprvni pohled zdalo. Tak ze necham dekovat.