Autor | Zpráva | ||
---|---|---|---|
sparky Profil * |
#1 · Zasláno: 15. 11. 2018, 14:54:36
Zdravím, chtěl bych se zeptat či odkázat na nějaký tutoriál (zatím jsem žádný užitečný nenašel), jak je v php řešeno routování stromové struktury. Příklad, mám stromové menu, které rekurzí vypíšu. Každá položka bude odkazovat na sebe (svou úroveň), příklad:
Polozka1 => url: www.domena.cz/polozka1 Polozka1 => url: www.domena.cz/polozka1/polozka1 Polozka2 => url: www.domena.cz/polozka1/polozka2 Polozka3 => url: www.domena.cz/polozka1/polozka3 Polozka1 => url: www.domena.cz/polozka1/polozka3/polozka1 Polozka2 => url: www.domena.cz/polozka2 Polozka1 => url: www.domena.cz/polozka2/polozka1 Polozka2 => url: www.domena.cz/polozka2/polozka2 Polozka3 => url: www.domena.cz/polozka3 Polozka1 url: www.domena.cz/polozka3/polozka1 V databázi bych měl tabulku s položkami menu a tabulku stránek. Tabulka stránek by uchovávala id položky menu, url stránky a odkaz na kontroler? Je to tak správně nebo se to řeší úplně jinak? Díky za odpověď. |
||
Časová prodleva: 6 dní
|
|||
nethor Profil |
#2 · Zasláno: 21. 11. 2018, 18:35:58
O tutoriálu nevím, ale myšlenka je v podstatš správná, rekurzi používám také.
Jen je šikovnější propojit je obráceně; v tabulce menu uchovávat Id stránky. Tak jdou vytvořit v menu dvě cesty směřující na jednu stránku. Zkráceně: Menu: CREATE TABLE `menu` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `IdPage` int(11) NOT NULL DEFAULT '0', // číslo stránky `Text` text COLLATE utf8_czech_ci, // text v menu `Parnt` int(11) NOT NULL DEFAULT '0', // nadřazená položka menu `Order` int(11) NOT NULL DEFAULT '1', // pořadí položky ve větvi `Display` int(1) NOT NULL DEFAULT '1', // zobrazovat nebo ne PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; Page: CREATE TABLE `page` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Title` text COLLATE utf8_czech_ci, // nastavení Meta `Description` text COLLATE utf8_czech_ci, // nastavení Meta `Address` text COLLATE utf8_czech_ci, // adresa stránky `HtmlText` text COLLATE utf8_czech_ci, // text stránky PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; Kromě rekurze lze menu řešit i 'traverzováním kolem stromu', tenhle přístup jsem ale nikde nepoužil. |
||
Časová prodleva: 5 let
|
0