Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
Redakční systém III.
redakcni system
23. dubna 2001, 00.00 | Další pokračování seriálu o Redakčním systému. Tentokrát si vytvoříme skript se seznamem uživatelů a několik nově definovaných funkcí.
V dnešním pokračování seriálu se pustíme do tvorby skriptů, které se budou starat o přehledné zobrazení stávajících uživatelů, editaci jejich osobních údajů, jejich vytváření a mazání. Celkem se o tyto procedury budou starat tři php skripty: users.php, add_user.php a edit_user.php. Také si doplníme skript function.php dvěmi funkcemi a vytvoříme nový skript generuj.php, který se bude includovat v některých skriptech a bude generovat specifická data do textového souboru na disk, aby pak jejich selectování z databáze zbytečně nezatěžovalo server. Všechny nové skripty budou umístěny do adresáře admin.
Nejdříve si popíšeme funkce, které přidáme do souboru function.php. Funkce jsou nazvány butonek() a zavri(). Tyto funkce vkládají do stránky pouze prostý HTML kód, ale jelikož tento HTML kód bude často využívaný, zaslouží si být součástí definovaných funkcí stejně jako hlavička či patička stránky.
- butonek() - funkce vloží do stránky element <BUTTON> s událostí onClick, která vyvolá zavření popup okna, které se budou v administračních skriptech často používat.
|
- zavri() - funkce obsahuje celou HTML stránku, událost onLoad v tagu <BODY> způsobí refresh stránky, která popup okno otevřela a současně toto okno zavře.
|
Nyní si vytvořte soubor generuj.php a umístěte jej do adresáře admin. Tento skript budeme vkládat do některých dalších administračních skriptů. Bude obsahovat několik procedur, které budou generovat data z databáze na disk. My si teď popíšeme první, která vybere z databáze všechny jména a id autorů a pro každého z nich vloží do souboru jeden řádek <OPTION> - </OPTION>. Takto připravený soubor budeme vkládat do formulářů, které si popíšeme v příštích dílech seriálu.
generuj.php (/admin/generuj.php)
|
Tak a teď se blíže podíváme na skript users.php, který už bude komplexnější. Tento skript po zavolání nejdříve ověří logovací údaje uživatele a pokud bude vše v pořádku, zobrazí se stránka se seznamem všech autorů, ve kterém bude jméno autora, stav, email, pozice a počet článků vložených v systému. Dále je u každého autora tlačítko edit, které vyvolá popup okno s formulářem pro editaci údajů o uživateli. Poslední je sloupec Smazat. Zde bude tlačítko, které smaže uživatele ze systému, ale zobrazí se jen u těch autorů, kteří ještě do systému nezadali žádný článek. Pokud budete chtít smazat uživatele, který už vložil článek, budete muset smazat všechny články takového autora. Dále stránka obsahuje odkaz na vytvoření nového uživatele. Ve skriptu se objeví mírně pokročilý SQL dotaz, který vám nyní popíšu.
SELECT A.*,count(C.id) FROM autori A LEFT JOIN clanky C ON A.id = C.id_autor GROUP BY A.id ORDER BY jmeno;SQL dotaz nám vybírá všechny údaje z tabulky autori a zároveň počítá články jednotlivých autorů v tabulce clanky, tak, že spočítá ID v tabulce clanky všude, kde je id_autora shodné is id v tabulce autori. Dotaz by se dal napsat i takto:
SELECT A.*,count(C.id) FROM autori A, clanky C WHERE A.id = C.id_autor GROUP BY A.id ORDER BY jmeno;Takto napsaný dotaz by však nezobrazoval autory, kteří ještě do systému nevložili žádný článek, protože podmínka WHERE A.id = C.id_autor nebude splněna - v tabulce clanky není žádný záznam patřící konkrétnímu ID. Proto jsem byl nucem použít dotazu s LEFT JOIN, který zajistí výběr všech řádků z tabulky autori a to i když podmínka nebude splněna a nenajde se tak žádná vazba mezi tabulkami. V takovém případě bude v posledním sloupci SQL dotazu místo počtu článků hodnota null.
users.php (/admin/users.php)
|
Tímto delším skriptem bych chtěl dnešní povídání o redakčním systému ukončit. Projděte si skript users.php ještě jednou a snažte se jej pochopit, obdobně totiž budou vypadat další administrátorské skripty, které budou zobrazovat různé seznamy (např.rubriky). Také nebude na škodu do příštího dílu na chvíli "vypnout" a odpočinout si.
Obsah seriálu (více o seriálu):
- Redakční systém I.
- Redakční systém II.
- Redakční systém III.
- Redakční Systém IV.
- Redakční systém V.
- Redakční systém VI.
- Redakční systém VII.
- Redakční systém VIII
- Redakční systém - tisk
- Redakční systém - generování
- Redakční systém - generování II.
- Redakční systém - generování III.
- Redakční systém - generování IV
- Redakční systém - generování V.
- Redakční systém - krátké zprávy a CSS styly
- Upload obrázků
- Upload - II a logout
- Schvalování článků - II
- Dodatečné přidání obrázku
- Regulární výrazy I
- Regulární výrazy II
- Redakční systém: Fulltext - I.
- Fulltext - II
- Co s RS?
- Optimalizace databáze v RS
- Interní vzkazy - I
- Interní vzkazy - II
- Interní vzkazy - III
- Náměty od čtenářů - I
- Náměty od čtenářů - II
- Náměty od čtenářů - III
- Náměty od čtenářů - IV
- Náhrada FTP
- Ankety
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007