Fotoalbum v PHP – příprava aplikace
Máte spoustu naskenovaných fotografií z různých dovolených, oslav či dalších akcí? Nebo přímo používáte digitální fotoaparát a přemýšlíte, jak jednoduše a organizovaně zobrazit fotografie na vašem počítači? Nebo chcete připravit elektronické fotoalbum, které budete moci svým přátelům a známým darovat na CD? Následující seriál článků vás povede krok za krokem při tvorbě jednoduchého elektronického fotoalba.
Specifikace požadavků
Jako první krok je potřeba si rozmyslet, jak by mělo fotoalbum vypadat, jaké by mělo nabízet uspořádání fotografií a jaké funkce bude podporovat. Zřejmě budete souhlasit s tím, že by album mělo nabízet roztřídění fotografií do jednotlivých kolekcí, chronologicky uspořádaných dle data. Každá kolekce fotografií bude mít svůj název (např. „Dovolená ve Španělsku (2001)„).
Uživatel si bude moci v jednotlivých kolekcích listovat, klikne na název a zobrazí se mu kolekce fotek, kterou bude chtít vidět. Nebudou se načítat naráz všechny fotografie v plné velikosti, ale zobrazí se seznam zmenšených obrázků (takzvaných thumbnailů), a teprve kliknutí na některý z nich zobrazí fotografii v původní velikosti. Protože fotografií z nějaké akce může být velmi mnoho, bude lepší rozdělit každou kolekci na jednotlivé listy (například po 9 fotografiích).
Každá fotografie bude mít svůj popisek a datum pořízení. Dle svého uvážení budete moci jednoduše rozšířit databázi o další údaje, například jakým fotoaparátem byla fotografie pořízena, na jaký film a podobně. Podle popisku bude uživateli umožněno vyhledávání fotografií v albu. Výsledek hledání bude zobrazen v podobě sady náhledů.
Nakonec, když budete chtít album nahrát někomu na CD, budete mít dvě možnosti – buď dáte k dispozici přímo webovou aplikaci v PHP, kterou si daný uživatel zprovozní na svém lokálním www serveru, nebo naprogramujete funkci pro automatické vygenerování off-line verze alba s fotografiemi, kterou pak uložíte na CD. Off-line verze bude vypadat úplně stejně jako výše zmíněná webová aplikace s tím rozdílem, že zde nebude možnost fotografie vyhledávat.
Funkce systému
V předchozích odstavcích byly stanoveny podmínky, které by fotoalbum mělo splňovat. Pokud jednotlivé myšlenky shrnu, systém by měl obsahovat následující funkce:
- uspořádání fotografií dle data do jednotlivých kolekcí
- zobrazení vybraných kolekcí fotografií
- jednoduché vyhledávání podle údajů o fotografiích
- založení a nahrání nové kolekce do fotoalba
- přidání nové (zrušení staré) fotografie
- automatické vygenerování off-line verze fotoalba
Celý systém bude vytvořen pomocí PHP, s využitím databáze MySQL. Pro jednoduší práci se fotografie nebudou ukládat do databáze, ale budou uloženy ve vyhrazeném adresáři. Aplikace je vhodná spíše pro lokální použití, nikoli pro vystavení na internetu. Při psaní těchto článků budu zároveň předpokládat, že máte alespoň základní znalost PHP a SQL (MySQL).
Dopředu upozorňuji, že z důvodu čitelnosti a přehlednosti ukázek zdrojových kódů vynechávám různé testování chybových stavů (všechny operace s databází, kontrola vstupu uživatelských dat a podobně) a také neošetřuji některé extrémní stavy, například že v kolekci fotografií nebude nalezena žádná fotografie. V neposlední řadě se vůbec nezabývám otázkou designu stránek. Také upozorňuji na to, že pokud se rozhodnete vystavit takovou aplikaci přímo na internet, je potřeba v kódu provést řadu úprav pro zvýšení bezpečnosti.
Návrh databáze
Návrh databázové základny musí vycházet přesně z výše provedeného rozboru systému. Jednou ze základních tabulek bude tabulka KOLEKCE
, která bude zahrnovat všechny základní informace o dané kolekci fotografií. Další tabulkou bude FOTKA
, která bude obsahovat záznamy o všech jednotlivých fotografiích ve fotoalbu. Každá fotografie bude náležet právě do jedné kolekce. U každé kolekce se bude evidovat i cesta (adresář), kde budou fotografie uloženy.
Databáze se bude jmenovat Album
. Vytvoříte ji prostřednictvím příkazového řádku konzoly serveru MySQL následujícím způsobem:
|
Tento krok je velmi důležitý, pokud jej neprovedete, nebudou vám skripty aplikace fungovat!
Tabulka Kolekce
Každá kolekce fotografií bude mít svůj název, rok, datum konání (může zde být od-do), kolik obsahuje celkem fotografií, po kolika fotografiích se mají zobrazovat jednotlivé části kolekce.
|
Pokud položka CAST
bude mít hodnotu -1
, znamená to, že neurčujete, po kolika fotografiích se má kolekce na jednotlivých stránkách zobrazovat, zobrazí se vždy celá kolekce fotografií na jedné stránce (v opačném případě se kolekce fotografií bude zobrazovat právě po tolika fotografiích, kolik bude určovat hodnota atributu CAST
). Atribut ADRESAR
určuje adresář, ve kterém budou fotografie dané kolekce uloženy.
Tabulka Fotka
Tabulka FOTKA
bude sdružovat záznamy o jednotlivých fotografiích. Jak jsem už nastínil, u každé bude evidován název (popisek), klíčová slova a datum. Dále je potřeba zaznamenat vazbu na příslušnou kolekci a jméno fyzického souboru na disku (jak plné velikosti fotografie, tak i jejího thumbnailu).
|
Adresářová struktura
K základním informacím o systému patří ještě seznámení s adresářovou strukturou. Pro celou aplikaci si založte adresář Album
a do něj uložte všechny skripty a fotografie. S každým novým skriptem vás budu informovat, kam jej máte uložit. Struktura zatím vypadá takto:
|
Skript pro vytvoření databáze
Na závěr dnešního článku uvedu jednoduchý skript create_db.php
, který vytvoří navrženou databázi. Skript create_db.php
uložte do adresáře \Album\system
.
|
Celý skript create_db.php
si můžete stáhnout. Ke skriptu bych ještě uvedl malou poznámku. U funkce mysql_connect()
si můžete všimnout, že jako argumenty používám řetězce „localhost„, „login“ a „heslo„. Až se budete pokoušet skript spustit, je nutné za tyto řetězce dosadit konkrétní hodnoty dle vašeho nastavení MySQL serveru, nebo dle informací, které obdržíte od svého poskytovatele připojení k databázi MySQL. Tento postup platí i pro všechny další skripty, takže se již o něm nebudu zmiňovat.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Nepodceňte UX na vašem webu: Proč na něm záleží?
10. dubna 2024 -
10 nejpopulárnějších programovacích jazyků a jejich využití
9. listopadu 2023 -
Znovuuvedení domény .AD
5. září 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024