Jak na vlastní katalog stránek v PHP – sekce a odkazy
Ve druhém článku o tvorbě vlastního katalogu jsme si řekli, jak zobrazit úvodní stránku. Nyní se podíváme na implementaci zobrazení obsahu sekce, když uživatel na hlavní stránce klikne na nějakou sekci (a zavolá tak náš skript index.php s parametrem „sekce“).
Obsah sekce
Zobrazení obsahu sekce můžeme rozdělit celkem do tří částí. Nejvýše na stránce bude umístěna „cesta“ k dané vnořené sekci. Cestou mám na mysli řetězec složený z názvů sekcí, postupně, jak jsme se jimi proklikali. Příklad uvádí následující obrázek:
Každý název nadřazené sekce v cestě bude samozřejmě klikací, aby uživatel měl možnost kdykoliv se dostat o libovolnou úroveň výš. Dále skriptem zobrazíme seznam přímých podsekcí. U každé z nich uvedeme v závorce počet v ní zařazených přímých odkazů. Seznam podsekcí pro MySQL by mohl vypadat takto:
Poslední, co pro danou sekci zobrazíme (např. pod dělící čárou), bude seznam odkazů v ní zařazených. Ty mohou být zobrazeny například tak, jak uvádí následující příklad:
Jak je z obrázků patrné, čekají nás celkem tři podproblémy, které musíme postupně vyřešit. Nejprve vyřešme druhý a třetí, teprve potom se vrhněme na první. Ten je totiž o něco náročnější, než zbývající dva.
Zobrazení seznamu podsekcí
Důležitou skutečností je fakt, že máme na vstupu zadán parametr SEKCE, jehož hodnotou je číslo sekce, na jejiž název uživatel klikl a kterou chceme zobrazit. K hodnotě tohoto parametru se dostaneme automaticky přes proměnnou $sekce. Nad databází položíme dotaz na všechny přímé podsekce zadané sekce a tento seznam pak zobrazíme. Ještě zopakuji základní strukturu skriptu:
|
Narozdíl od předchozího dílu se nyní budeme nacházet v poslední části, kde máme uvedený komentář /* „rozbalime“ vybranou sekci */.
|
Seznam odkazů
Nyní se podívejme na základní zobrazení seznamu odkazů (tj. zatím bez možnosti hlasování o kvalitě). Ukázka kódu bude velmi podobná, resp. snad i o něco jednodušší, takže ji zde uvedu jen v krátkosti, bez komentářů:
|
Zobrazení klikatelné „cesty“
Vraťme k našemu prvnímu podproblému. Na vstupu máme číslo aktuální sekce a pomocí něho se musíme dopracovat až k číslu hlavní sekce, která již nemá žadnou nadřazenou. Při řešení tohoto úkolu budeme operovat zejména s tabulkou VAZBY_SEKCE (a i s tabulkou SEKCE, kvůli zjištění názvů).
Nejprve se podíváme do sloupce PODSEKCE a najdeme v něm číslo aktuální sekce. K němu tedy hned zjistíme k jaké nadřazené sekci patří. Podíváme se, zdali tato nadřazená sekce má také svou nadřazenou. Pokud ne, skončili jsme, vygenerovali jsme tedy cestu až k hlavní sekci. Pokud má další nadřazenou, musíme opět testovat, zdali ta nadřazená nemá ještě další nadřazenou a tak dál.
Vezmu-li náš příklad z úvodního obrázku, máme vybranou sekci MySQL (té odpovídá nějaké číslo). Z tabulky VAZBY_SEKCE zjistíme, že její nadřazenou sekcí je sekce Systémy. Při opětovné aplikaci tohoto postupu zjistíme, že sekce Systémy má nadřazenou sekci Databáze. Sekce Databáze má v tabulce SEKCE nastaven příznak, že je hlavní (nemá už žádnou nadřazenou) a tak jsme mohli postup ukončit. Postupně jsme vygenerovali řetězec MySQL – Systémy – Databáze. Ve skriptu pak zajistíme, aby se názvy sekcí vypsaly v opačném pořadí. To už ale není příliš velký problém. Následujicí fragment kódu okomentuji:
|
Znovu podotýkám, že jsem uvedené ukázky kvůli přehlednosti nezatěžoval testováním chybových výstupů. Tímto jsme probrali základní zobrazení sekce a příště se budeme věnovat samostatné kapitole, a to jednoduchému vyhledávání nad odkazy.
Mohlo by vás také zajímat
-
Netcat a Ncat
8. prosince 2022 -
Užitečné nástroje pro sledování výkonu Linuxu
31. října 2022
Nejnovější
-
Jak zvýšit CTR vašeho e-mail marketingu
9. září 2024 -
Znovuuvedení domény .AD
5. září 2024