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 I.
redakcni system
17. dubna 2001, 00.00 | Publikujte na svých stránkách články či novinky s použitím jednoduchého redakčního systému. V úvodním díle probereme základní funkce a vytvoříme databázi, kterou bude systém využívat.
Mnoho internetových serverů využívá k publikaci článků, novinek, či k publikaci
katalogů internetových aplikací, jimž se říká Redakční Systém. Existuje spousta
systémů. I když každý plní svůj účel a výsledek je obdobný, každý z těchto systémů
jde na věc jinak.
Já bych Vám zde chtěl ukázat základní princip fungování takového
RS a ukázat jednoduchý funkční přiklad aplikace, jež bude vytvořena v PHP
a bude využívat podpory databáze (MySQL). Náš RS bude umět vkládat, editovat,
mazat články a krátké zprávy, bude zvládat tři druhy uživatelů - Autor, redaktor
a šéfredaktor. Bude umět tvořit nové uživatele, nové rubriky, u každého článku
bude diskusní fórum. RS bude možno používat i bez znalosti HTML tagů.
Jelikož
se jedná o relativně rozsáhlý projekt (tím nechci říci, že by byl dokonalý,
k dokonalosti mu bude chybět ještě spousta věcí, nicméně bude funkční a použitelný),
nebudu uvádět kompletní výpisy zdrojových kódů, ale jen jeho konkrétní části.
V závěru seriálu dám k dispozici kompletní zdrojové kódy našeho RS.
Ještě než začneme se samotným psaním PHP kódu si musíme promyslet strukturu databáze. Ta bude relativně rozsáhlá a bude se skládat celkem z pěti tabulek, které si nazveme: clanky, novinky, autori, fora, rubriky. Názvy těchto tabulek již napovídají jaká data budou obsahovat. Uvedu strukturu jednotlivých tabulek:
clanky:CREATE TABLE clanky (id INT UNSIGNED not null AUTO_INCREMENT, id_autor INT UNSIGNED not null , id_rubrika INT UNSIGNED not null , datum INT UNSIGNED not null , counter INT UNSIGNED DEFAULT '0' not null , priorita SMALLINT UNSIGNED DEFAULT '0' not null , nadpis VARCHAR (255) , anotace TEXT , clanek TEXT , poznamka TEXT , stav CHAR (1) DEFAULT 'n' , PRIMARY KEY (id));
- id - identifikátor článku
- id_autor - id autora článku
- id_rubrika - id rubriky do které článek patří
- datum - unixový čas publikace článku
- counter - počítadlo přístupů (přečtení) článku
- priorita - priorita článku - čím vyšší, tím lepší pořadí v seznamu - v rámci jednoho dne
- nadpis - název/nadpis článku
- anotace - stručný obsah článku zobrazující se v seznamu rubrik
- clanek - text celého článku
- poznamka - interní poznámky ke článku - vzkazy pro redaktory/korektory atp.
- stav - a = schválený článek, jinak je článek neschválen
CREATE TABLE novinky (id INT UNSIGNED not null AUTO_INCREMENT, novinka TEXT , datum INT UNSIGNED not null , stav CHAR (1) DEFAULT 'n' not null , PRIMARY KEY (id));
- id - identifikátor novinky
- novinka - text novinky/krátké zprávy
- datum - unixový čas vložení novinky
- stav - a = schválená novinka, jinak je novinka neschválená
CREATE TABLE autori (id INT UNSIGNED not null AUTO_INCREMENT, login VARCHAR (20) not null , pass CHAR (32) not null , jmeno VARCHAR (255) not null , email VARCHAR (255) not null , oautorivi TEXT not null , prava TINYINT UNSIGNED DEFAULT '1' not null , stav CHAR (1) DEFAULT 'n' not null , PRIMARY KEY (id));
- id - identifikátor autora
- login - login pro přihlášení do systému
- pass - heslo pro přihlášení. Kvůli bezpečnosti bude ukládáno kryptované pomocí funkce MD5()
- jmeno - plné jméno autora
- email - email autora
- oautorovi - krátký popis/informace autora
- prava - 1 = autor, 2 = redaktor/korektor, 3 = šéfredaktor
- stav - a = aktivní, je-li v položce jiná hodnota, autor se nemůže přihlásit a nadále pracovat se systémem
CREATE TABLE rubriky (id INT UNSIGNED not null AUTO_INCREMENT, rubrika VARCHAR (50) not null , PRIMARY KEY (id));
- id - identifikátor rubriky
- rubrika - název rubriky
CREATE TABLE fora (id INT UNSIGNED not null AUTO_INCREMENT, id_clanku INT UNSIGNED not null , datum INT UNSIGNED not null , jmeno VARCHAR (255) not null , email VARCHAR (255) not null , predmet VARCHAR (255) not null , text TEXT not null , notify CHAR (1) DEFAULT 'n' not null , PRIMARY KEY (id));
- id - identifikátor diskusního příspěvku
- id_clanku - id článku, ke kterému příspěvek patří
- datum - unixový čas vložení příspěvku
- jmeno - jméno přispěvatele
- email - email přispěvatele
- predmet - předmět příspěvku
- text - text příspěvku
- notify - je-li a budou na email přispěvatele docházet emaily s upozorněním na nové příspěvky
Takže strukturu databáze už máme navrženou a můžeme ji vytvořit. Pro naše účely ji nazveme třeba rs - abychom v tom měli pořádek. Abychom později mohli začít pracovat se systémem bude vhodné do tabulky autori vložit jednoho uživatele s právy šéfredaktora pomocí následujícího sql dotazu:
INSERT INTO autori VALUES('','admin','8fa14cdd754f91cc6554c9e71929cce7','Jiří Kocman','','Šílenec',3,'a');
V dotazu samozřejmě použijte vlastní údaje. Nezapomeňte, že heslo musí být v databázi uloženo kódovaně. Pro zakódování použijte PHP funkci MD5(). Pro zjištění hesla vám může posloužit následující skriptík:
|
Nyní nezbývá nic jiného než se pustit do psaní samotného RS. Nejdříve si napíšeme skript conn.php, který bude obsahovat funkci pro připojení k databázi a několik proměnných. Skript bude includován do dalších skriptů redakčního systému.
conn.php
|
Pro dnešní, úvodní čast, je to vše. Příště probereme část skriptu, který bude sloužit k zakládání nových autorů a k následné editaci jejich přístupových a osobních údajů.
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