pornjk, pornsam, xpornplease, joyporn, pornpk, foxporn, porncuze, porn110, porn120, oiporn, pornthx, blueporn, roxporn, silverporn, porn700, porn10, porn40, porn800, porn900

Redakční systém 1.

Článek je 1. část seriálu Redakční systém.

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

novinky:

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á

autori:

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

rubriky:

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

fora:

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','email@example.com','Ší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:

<?
$heslo = "vase_heslo";
echo "Heslo: " . md5($heslo);
?>

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

<?
// spojení s databází
@$conn = mysql_connect("localhost","","")
   or die ("Nelze navázat spojení s databazí");
@$sdb = mysql_select_db("rs")
   or die ("Nenalezena databáze");

// email administrátora
$ADMIN_MAIL = "admin@vas_server.cz";

// počet anotací článku na stránce
$CL_PER_PAGE = 10;

// pozice/funkce uživatelů
$pozice = array(1=>"Autor","Redaktor","Šéfredaktor");
?>

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ů.

Navigace v seriáluRedakční systém 2. →