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 - tisk
21. srpna 2001, 00.00 | Článek navazující na seriál o Redakčním systému od Jirky Kocmana. Stávající systém tak rozšíříme o možnost tisku článku.
Stejně jako mnoho z vás, tak i mě zaujal seriál s názvem Redakční systém. A jako nenasytnému uživateli internetu, který chce stále něco zlepšovat, jsem se donutil k doplňkům do několika scriptů. V tomto seriálu bych vás chtěl seznámit s tím, jak si snadno vylepšit stávající verzi RS. Nejprve si předvedeme jak článek vytiskout, dále vám ukáži generování článku na disk tak, aby nezabíraly místo v databázi, fulltextové vyhledávání a na konec ještě něco pro zlepšení grafické podoby. Doplníme stránku CSS styly, uvítáním podle denní doby, akuálním časem, datem, názem dne a ještě zobrazíme jméno toho, kdo má ten den svátek. Všechny scripty se budu snažit psát tak, abyste nemuseli čekat na další díl a ihned fungovali. Možná, že budou potřebné ještě místní úpravy. Myslím, že je toho dost, tak s chutí do toho.
První script který tu proberu je ten, který návštěvníkovi umožní vytisknout si článek.
Je to velice jednoduché. Ve skutečnosti stačí pouze vzít script nahled.php (./admin/nahled.php) a přidat tam "pár drobností", aby vypadal takto:
|
Ve zdrojovém kódu byly označeny řádky, ve kterých se něco dělo. Vezmu na vysvětlenou jen jeden, protože všechny tři pracují na stejném principu.
|
Je to vlastně jen podmínka. Pokud není v poli data s indexem 0 nic, načte se z adresáře clanky soubor n_$id.dat, jinak se zobrazí obsah $data[0]. Jistě by vás zajímal ten includ souboru. Příkaz (nikoliv funkce) include slouží k načtení souboru z umístění, které je udáno v uvozovkách (!!!). Je to ekvivalent příkazu expires, jen má trochu jiné vlastnosti. A proč zrovna takhle? Adresář clanky ve verzi pana Kocmana přece vůbec nebyl?! A co ten divný název souboru? Vše vysvětlím. Vezmu to do začátku. Pokud se podívámem na SELECT z datatabáze zjistíme, že $data[0] obsahuje nadpis článku, $data[5] anotaci a $data[6] samotný článek. Později, až budeme generovat články na disk, se článek, anotace a nadpis budou uchovávat jako soubor a nikoliv jako položka databáze, odkud budou vymazány, aby nezabíraly místo. Sami už jste asi pochopili, že n_$id.dat znamená nadpis, c_$id.dat je článek a $a_$id.dat anotace. Proměnná $id v názvech souborů je nahrazena číslem článku. Takže pro článek číslo tři to bude n_3.dat, a_3.dat a c_3.dat. Více si o tom povíme v díle věnovaném generování těchto souborů.
Aby to bylo úplné musíme do scriptu index.php přidat ještě řádku. Ta vypadá takto:
|
Tu přidáme do podmínky která se zobrazuje pokud je vybrán k zobrazení jen jeden určitý článek ( if($clanek>0) ). Kam to umístíte, tam se to zobrazí. Já to mám na místě mezi jménem autora a tím co je v tabulce Autori v položce oautorovi.
Ještě vysvětlím, co řádek zanmená. Odkaz na stránku nám říká, že v novém okně (TARGET="_blank") se zobrazí článek, který má číslo jako právě zobrazený článek (id=<? echo $clanek ?>). V tomto okně pak v proměnné $id máme číslo článku, který se má zobrazit.
Proč ale otevírám nové okno? Pokud jste studovali script index.php, víte, že je vše poskládáno v tabulce. Tím způsobem, jakým to mám uděláno já by se tedy vytiskly i krátké zprávy nebo jméno toho, kdo má ten den svátek. To myslím čtenáře nezajímá, stejně jako něco o autorovi.
Jak jste si také všimli, je na konci scriptu funkce tisk(). Ta se načte ze scriptu function.php a vypadá následovně:
|
Funkce zobrazí formulářové tlačítko, na kterém je napsáno TISK. Pokud na něj kliknete a máte prohlížeč IE ver. 5.0 a vyšší nebo Netscape Navigator ver. 4.0 a vyšší, zobrazí se okno pro potvrzení tisku, jinak se vypíše hláška, že uživatel musí tisknout pomocí nabídky Soubor nebo File.
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