Redakční systém - krátké zprávy a CSS styly - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

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:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se koná výstava fotografií Luďka Vojtěchovského?

V dnešní soutěži hrajeme o:



PHP

Redakční systém - krátké zprávy a CSS styly

redakcni system

3. prosince 2001, 00.00 | Dnes si ukážeme jak vylepšit stránku CSS styly a také upravíme generování krátkých zpráv. Chcete si napsat jednoduchý redakční systém v PHP? Sledujte náš seriál..

Dnes vám ukáži malé vylepšení krátkých zpráv. Pokud se podíváme na strukturu tabulky, zjistíme, že obsahuje položky id, novinka, datum a stav. Pan Kocman má ve scriptu generuj.php takovouto větev:
if ($generuj == "kz")
{
// vybereme posledních 5 krátkých zpráv.
@$sql = mysql_query("SELECT novinka FROM novinky WHERE stav = 'a' 
				ORDER BY datum DESC LIMIT 0,5");

// pro každý záznam v databázi vložíme do pomocné proměnné jeden řádek
while ($row = mysql_fetch_row($sql))
{
$data .= "<LI>".$row[0]."</LI>\n";
}
// vygenerujeme soubor
@$f = fopen("../inc/kz","w");
fputs($f,$data);
fclose($f);
}

Zde se z tabulky novinky využíval pouze text obsažený v položce novinka. Proč ale nevyužít i časovou položku, která tu sloužila pouze k určení pořadí zpráv. Změníme script na tuto podobu:

if ($generuj == "kz")
{
$sql=MySQL_Query("SELECT novinka,datum FROM novinky WHERE stav='a' 
				ORDER BY datum DESC");
if($row=MySQL_Fetch_Row($sql))
{
  $data="<LI>".$row[0]."<BR>[<FONT COLOR=\"#966293\">"
        .Date("j.m.Y H:i:s",$row[1]).
		"</FONT>]</LI>\n";
}
if(File_Exists("../inc/kz.dat")):
  $b=File("../inc/kz.dat");
  for($i=0; $i<4; $i++):
    $data.=Trim($b[$i])."\n";
  endfor;
endif;
$a=FOpen("../inc/kz.dat", "w");
FPutS($a, $data);
FClose($a);
MySQL_Query("UPDATE novinky SET novinka='', stav='z' WHERE stav='a'");
}

Jak to probíhá? Vybereme zprávu a čas vložení zprávy z tabulky novinky. Vybereme takové, které jsou schválené k publikování a seřadíme je od nejmladší k nejstarší. Proč nedáváme limit? Protože generování se spouští po každé schválené zprávě. To jest, že je vždy jedna. Není tudíž potřeba určovat nějaké limity.

Přidám ještě CSS styly. Je to jen malý příklad. V souboru function.php se však musí změnit jedna funkce. Jde o funkci head(), do které musíme přidat tento řádek:

<LINK href="./style.css" rel=stylesheet type=text/css>

Samotný soubor style.css umístíme do hlavního adresáře. Hlavička se bude načítat i do souboru v admin centru, ale kvůli své relativní adrese ./style.css, se nenačte. To ale myslím nevadí, neboť je to hlavě úprava pro čtenáře. Můj soubor style.css vypadá následovně:

 
A {
	FONT-WEIGHT: bold; FONT-FAMILY: Comic Sans MS 
}
A:visited {
	COLOR: #AA5417; FONT-WEIGHT: bold; TEXT-DECORATION: non; 
	FONT-FAMILY: Comic Sans MS 
}
A:active {
	COLOR: #ACC508; FONT-WEIGHT: bold; TEXT-DECORATION: underline; 
	FONT-FAMILY: Comic Sans MS 
}
A:hover {
	COLOR: #b1a6f8; FONT-WEIGHT: bold; TEXT-DECORATION: underline; 
	FONT-FAMILY: Comic Sans MS
}

Je to jen návrh. Pro ty co si s tímto způsobem vylepšení chtějí vyhrát, se mohou podívat na CSS styly od pana Koska. Tam je toho docela dost a můžete se v klidu vyřádit.

Další co jsem si přidal a je na každém zpravodajském serveru je datum, čas a ještě uvítání podle denní doby. Vše je uděláno pomocí scriptovacích jazyků. Nevím jak vy, ale já mám špatné zkušenosti s jistým prohlížečem při zobrazování těchto vymožeností. Asi všichni trochu zběhlí weboví programátoři vědí o jakém prohlížeči je řeč. Proto pokud si návštěvník prohlíží naší stránku z Netscapu, tyto informace se mu nezobrazí. Je to myslím lepší, než kdyby se mu objevili nějaké kliky háky a nevěděl by, co to znamená. Ve scriptech index.php a forum.php proto přidáme hned za hlavičku tento úryvek:

$a=$HTTP_USER_AGENT;
$b=StrStr($a, "MSIE");
If($b!="false"):
{
?><FONT SIZE=12 FACE="Arial Black" COLOR="#2B96E6"><CENTER>
	ZPRAVODAJSKÝ SERVER</CENTER></FONT>
<TABLE BORDER=0 BGCOLOR="#F09A00" WIDTH="100%">
<TR><TD><CENTER>
<? 
include "./osloveni.dat"; 
include "./cas.dat"; 
?></CENTER>
<TABLE BORDER="0" ALIGN="CENTER" WIDTH="100%">
<TR>
  <TD VALIGN="TOP" WIDTH="200" BGCOLOR="#C0FFC0">

Soubory osloveni.dat a cas.dat si můžete stáhnout zde. Myslím, že i ti méně znalí v JavaScriptu a VBScriptu pochopí proč a co se právě děje. Ve výpisu ze zdrojového kodu nad tímto odstavcem jsem přidal i kousek HTML kódu jenž zajistí, že se levý sloupec pěkně vybarví.

Příště se podíváme na upload obrázků.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » PHP  

 » Rubriky  » Web  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: