Na internetu je v této době možno najít spousty fotografií. Někdo má na svých stránkách fotky z dovolené, jiný své grafické výtvory. Menší množství fotografií není problém na internet umístit. Co ale dělat, když má někdo stovky obrázků, jež by rád publikoval. Jedna možnost je dát si práci a do stránek ručně napsat všechny odkazy, včetně přesných rozměrů a odkazů a mít pak noční můry z toho, že mezi galeriemi 1 a 5 měl být obrázek, který tam není. Tím pádem je všechna dosavadní práce k ničemu, protože všechny odkazy musí být posunuty o jeden dolů a všechny galerie tedy updatovány. Druhá možnost je vytvořit si Image gallery, aplikaci, přes kterou bude vkládání a spravování obrázků hračkou, protože obrázky se budou z galerie vypisovat dynamicky.
První možnost zde rozhodně rozebírat nebudu, protože jak jistě uznáte, Image gallery je rozhodně použitelnější. Následující série článků vás tedy provede cestou k vytvoření jednoduché obrázkové galerie sloužící k různým účelům (ovšem pochopitelně souvisejícím s publikováním obrázků na internetu :) ).
Jakkoli je to pro někoho neuvěřitelné, naši Image gallery bude tvořit pouze jeden podstatný soubor. K funkcionalitě bude též důležitá databáze MySQL. Samotné obrázky se budou ukládat do dvou adresářů - "images_big" pro velké obrázky a "images_small" pro náhledy. V databázi budou uvedeny přitom jen odkazy na tyto obrázkové soubory spolu s width a height malých a velkých obrázků a názvu galerie. Přidáme ještě dva sloupce pro anketu, která bude součástí každého obrázku - hlasy a hlasovalo. Poslední sloupec IP bude obsahovat ip adresu posledního hlasujícího (taková primitivní pojistka proti několikanásobnému hlasování toho samého člověka).
Databáze ig - Tabulka gallery
Struktura tabulky 'gallery'
CREATE TABLE gallery (
id int(11) NOT NULL auto_increment,
src varchar(255) default NULL,
wb int(11) default '0',
hb int(11) default '0',
ws int(11) default '0',
hs int(11) default '0',
size int(11) default '0',
nazev varchar(255) default NULL,
hlasy int(4) default '1',
hlasovalo int(3) default '1',
ip varchar(200) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
|
Graficky pak struktura tabulky v databázi bude následující:

K celé tabulce budeme přistupovat pomocí několika php příkazů. Protože tyto příkazy budeme v aplikaci používat několikrát, uložíme si je do funkce connect(), která bude v souboru fce.php. Protože nedílnou součástí rozsáhlejších galerií je stránkování výpisu, vytvoříme si v tomto souboru ještě jednu funkci - predchozi_dalsi(), která stránkování bude obstarávat. Pokud jste sledovali díly o vytváření bazaru, použil jsem tam tu samou funkci. Zajímá-li vás tedy princip, na jakém funkce pracuje, mohu vás odkázat konkrétně na díl 5., kde je vše přehledně vysvětleno.
V tomto souboru bude potřeba editovat pouze název databáze, v níž máte uloženy tabulky.
Struktura souboru fce.php
<?
function connect()
{
@$con = MySQL_Connect("localhost");
if (!$con):
echo "Nepodařilo se spojit s databází.";
exit;
endif;
MySQL_Select_DB("ig");
}
function predchozi_dalsi($zobrazena_strana, $pocet_stran, $zazn)
{
if (($zobrazena_strana==1) && ($zobrazena_strana==$pocet_stran)):
return "";
elseif (($zobrazena_strana!=1) && ($zobrazena_strana==$pocet_stran)):
return "<a href=\"index.php?click=1&zazn=".$zazn."&zobrazena_strana=".($zobrazena_strana-1)."\"><b><<< PŘEDCHOZÍ</b></a>";
elseif (($zobrazena_strana!=$pocet_stran) && ($zobrazena_strana>1)):
for($t=1; $t<= $pocet_stran; $t++):
$vse = $vse." <a href=\"index.php?click=1&zazn=".$zazn."&zobrazena_strana=".$t."\">".$t."</a> ";
endfor;
return "<a href=\"index.php?click=1&zazn=".$zazn."&zobrazena_strana=".($zobrazena_strana-1)."\"><b><<< PŘEDCHOZÍ</b></a>
<span class=\"color\">|</span> ".$vse." <span class=\"color\">|</span>
<a href=\"index.php?click=1&zazn=".$zazn."&zobrazena_strana=".($zobrazena_strana+1)."\"><b>DALŠÍ >>></b></a>";
elseif (($zobrazena_strana==1) && ($pocet_stran!=1)):
return "<a href=\"index.php?click=1&zazn=".$zazn."&zobrazena_strana=".($zobrazena_strana+1)."\"><b>DALŠÍ >>></b></a>";
else:
return "";
endif;
}
?>
|
V dnešním díle je to všechno. Příště se podíváme už na zajímavější věci a sice samotnou strukturu hlavního souboru galerie.
Čevelíček Marek
|