Jak na vlastní katalog stránek v PHP – zařazení odkazu
V jednom z předchozích článků jsme si naimplementovali uživatelské přidání odkazu. Nyní se zaměříme na to, co s takovým nově přidaným odkazem provede správce katalogu. Ten bude mít k dispozici skript, pomocí kterého si bude moci zobrazit seznam nových odkazů. Každý odkaz buď rovnou zařadí do katalogu, nebo jej před zařazením mírně zedituje, nebo daný odkaz, pokud ho zhledá nevhodným, vymaže.
Opět se budu snažit uvést nejjednoduší řešení, i za cenu toho, že možná nebude nejelegantnější. Různá vylepšení už pak nechám na vás.
Pomocné funkce
Tak jako v předchozím díle, budeme také zde potřebovat pomocné funkce. Jednou z nich bude určitě funkce get_new_id, která tentokrát bude vracet nové ID pro záznam v tabulce ODKAZ (v minulém díle to byla tabulka ZADOSTI). Tato funkce vypadá velmi obdobně:
|
Další pro nás velmi užitečnou funkcí bude get_count() vracející počet záznamů v tabulce ZADOSTI. Tuto funkci využijeme na mnoha místech našeho skriptu:
|
Při vkládání záznamu do tabulky ODKAZ potřebujeme ještě vygenerovat pomocný řetězec z položek NAZEV a POPIS, odstranit diakritiku a tento řetězec se stane hodnotou atributu ASCII_TEXT (jistě si vzpomenete, že nad tímto atributem se provádí vyhledávání). Protože tento kód budeme potřebovat v našem skriptu několikrát, uděláme se na něj funkci get_ascii(ret1, ret2):
|
Protože dáváme administrátorovi možnost libovolný nový odkaz upravit, neměli bychom tedy ani tady zapomenout na testy, zda název, popis, url, e-mail, atd., jsou zapsány korektně. Pro výrazné zjednodušení ukázek v dnešním článku budu předpokládat, že se administrátor při editaci nedopustí žádné chyby. (V praxi se to ale stát může, a tedy ošetření korektnosti všech hodnot udělat musíte. V předchozím díle jste se dověděli jak. Ten postup bude úplně stejný).
Úvodní stránka skriptu
Pustí-li se skript zarad_odkazy.php poprvé (tj. bez žádných parametrů), zobrazí se úvodní stránka, na které budou dva odkazy a informace, kolik nových odkazů bylo přidáno. Příklad ukazuje obrazek:
Jak bude skript pracovat?
Ve skriptu budeme mít dvě akce. První (hromadné zařazení odkazů) bude určena pro takové odkazy, u kterých administrátor nazná, že jsou vyplněny v pořádku. Všechny odkazy se zobrazí jako seznam, u každého odkazu bude checkbox, který administrátor zaškrtne, bude-li chtít daný odkaz (beze změn!) uložit do katalogu. Pod seznamem bude tlačíko „Zařadit“, po jehož stisku se znovu zavolá skript, který vezme všechny zaškrtnuté záznamy a hromadně je přesune z tabulky ZADOSTI do tabulky ODKAZ. (Ty odkazy, které zůstaly nezaškrtnuté, zůstanou nadále v tabulce ZADOSTI a administrátor bude mít možnost s nimi operovat pomocí druhé akce.)
Samozřejmě se může stát, že se některé nově přidané odkazy nebudou administrátorovi líbit a buď se je rozhodne zařadit až po malé editaci, a nebo úplně zrušit. K tomuto úkolu bude sloužit druhá akce (procházení jednotlivých záznamů). Skript vybere právě první záznam z tabulky ZADOSTI, přehledně jej zobrazí (tentokrát v editovatelném formuláři). Pod zobrazeným záznamem se budou vyskytovat dvě tlačítka: „Zařaď“ a „Smaž“. Po stisku prvního se aktuální obsah daného záznamu (který mohl být administrátorem předtím zeditován) uloží a zobrazí se další záznam z tabulky ZADOSTI, a postup se opakuje. Stiskem druhého tlačítka se záznam nenávratně smaže a zobrazí se další záznam z tabulky ZADOSTI. Celý postup bude probíhat tak dlouho, dokud bude co kontrolovat.
Obě akce budou proveditelné pouze v případě, že v tabulce ZADOSTI je uložen alespoň jeden odkaz.
Struktura skriptu
Základním parametrem, který nám bude rozlišovat, co se má provádět za akci, bude opět parametr AKCE. Je-li hodnota parametru AKCE nedefinována (skript volán poprvé), zobrazí se úvodní stránka. Bude-li hodnota parametru akce=hromadn, pak se bude provádět první akce, akce=jednotl zajistí provádění druhé akce.
|
(1) úvodní stránka
Následuje kód první části. Kód je relativně jednoduchý, takže jej nebudu už blíže komentovat:
|
(2) hromadné zařazení odkazů
Jak bude pracovat tato část skriptu jsem již popsal výše. Ještě doplním, že zobrazený odkaz je vhodné udělat klikací (tag <A> s atributem TARGET=_top pro otevření stránky v novém okně prohlížeče), aby si administrátor mohl příslušnou stránku před zařazením prohlédnout. U každého odkazu bude checkbox se jménem ODKAZ, jehož předávanou hodnotou bude ID nového odkazu (tak jak je uveden v tabulce ZADOSTI). IDy odkazů, které budeme chtít zařadit, budeme mít na vstupu skriptu v poli. V rámci této akce máme tedy formulář s tlačítkem „Zařadit“. Pokud pro toto tlačítko použijeme název AKCE, ztratíme informaci o původní hodnotě AKCE, která nám říká, že jsem v části skriptu „hromadného zařazení odkazů“. Proto zvolíme název tlačítka jako UKOL. (chápejte jej jako podakci v rámci dané akce). Následující kód je už delší, takže se budu snažit vložit komentáře přímo do něj.
|
(3) individuální zpracování záznamů
Tato část nám zobrazí na stránce vždy jen jeden odkaz (a to ten první v tabulce ZADOSTI). Struktura této části skriptu bude velmi podobná s tím, že vždy zpracováváme jeden záznam (a ne více) a obsah daného záznamu je editovatelný ve formuláři. Popis této části jsem již uvedl výše.
Protože tato část kódu je opravdu velmi podobná té předchozí, uvedu již pouze „pseudokód“, ve kterém slovně popíši, co se má provést. Konkrétní napsání kódu už tak nechám na vás.
|
Závěrem
Ke třetí části bych uvedl ještě jednu malou poznámku. V editovatelném formuláři, ve kterém je zobrazen obsah zpracovávaného záznamu, je také editovatelné číslo sekce. Protože by jistě bylo výhodnější místo čísla pracovat s názvy, můžete v tomto místě vygenerovat prvek formuláře <SELECT>, v němž bude zobrazen seznam všech názvů sekcí. Postup, jak udělat tento prvek SELECT se seznamem sekcí, je uveden v předchozím díle.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Responzivní design: Proč by ho neměl ignorovat žádný vývojář?
27. listopadu 2023 -
Proč je důležité tvořit obsah na váš web?
29. srpna 2024 -
Zabezpečení e-mailů: Jak můžete chránit vaši firemní komunikaci
13. prosince 2023 -
AI v programování: Jak používat GitHub Copilot (část 2)
19. února 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024