Semestrální práce pro X36WWW Webové stránky fotbalového klubu DOKUMENTACE autor: David Komárek 1. Zadání Naprogramujte informační web fotbalového klubu. V klubu jsou registrována dvě mužstva, A mužstvo a B mužstvo. Web bude sloužit pro zobrazení výsledků daného mužstva, tabulky soutěže, článků, novinek a dalších údajů o mužstvu či klubu. Uživatelé budou moci komunikovat a vyjadřovat své názory pomocí diskuze. Uživatel s rolí administrátora bude moci vytvářet a upravovat články, novinky a výsledky celé soutěže. Web bude vytvořen pomocí PHP, JavaScriptu, CSS a MySQL databáze. 2. Požadavky uživatelů na funkčnost - uživatel se bude moci zdarma registrovat na stránkách, kde vyplní své osobní údaje a heslo odesláním vyplněného formuláře se stane registrovaných uživatelem (dále jen RU) viz. uživatelské role - uživatel se může přihlásit jako administrátor nebo RU, ale může prohlížet web s některými omezeními bez přihlášení - web bude koncipován do tří základních bloků o v horní části horizontální rozbalovací menu (směrem dolů) s položkami ZPRÁVY, A TÝM (HRÁČI, VÝSLEDKY, TABULKA, REALIZAČNÍ TÝM), B TÝM (stejné jako u A týmu), KLUB (INFO, DRESY, STADION), DISKUZE o v levé části informační panel se zjednodušenou tabulkou soutěže, novinkami a možností přihlášení do systému o v pravé části plocha pro zobrazení samotných stránek - na hlavní stránce budou zobrazeny nadpisy a úryvky z článků, psaných redaktory, jejichž detail bude možné zobrazit po kliknutí na nadpis - v detailu článku bude moci přihlášený uživatel (administrátor, RU) přidávat své komentáře k danému článku a vyjadřovat tak své názory - na stránce tabulka v menu jednoho z mužstev se zobrazí 3 typy tabulek (celková, tabulka utkání hraných na domácí/venkovní půdě) s informacemi o počtu odehraných
utkání, vítězstvích, remízách, porážkách, počtu vstřelených a obdržených branek, bodech - po otevření VÝSLEDKŮ si bude moci uživatel prohlédnout všechny výsledky utkání v aktuální sezoně, pokud bude navíc existovat článek k danému zápasu (viz. dále), bude možné zobrazit jeho detail kliknutím na skóre utkání - v sekci HRÁČI se zobrazí seznam všech hrajících hráčů v daném týmu s těmito informacemi: o jméno a příjmení o post (brankář, obránce, záložník, útočník) o věk (přepočítá se podle data narození) o počet odehraných utkání o vstřelené branky o obdržené žluté karty o obdržené červené karty Podle těchto informací bude možné seznam řadit(jak vzestupně, tak sestupně), a to kliknutím na vybraný atribut - po otevření položky REALIZAČNÍ TÝM se zobrazí všichni lidé (foto, jméno, funkce), kteří se kolem tohoto klubu točí (správce stadionu, trenér) - v menu KLUB budou potřebné informace o klubu (adresa, telefon na pověřenou osobu atd.), fotografie dresů, ve kterých mužstvo hraje a plán stadionu s vyznačením a popisem jeho částí - v menu DISKUZE bude možné zakládat nová témata, u nichž se zobrazí jeho název, autor a datum posledního příspěvku - po kliknutí na titulek tématu se zobrazí vybraná diskuze, kde bude možné číst a přidávat příspěvky - administrátor bude moci vkládat a mazat novinky, které se zobrazí v levém informačním panelu, a to tak, že zadá datum (vyplní se defaultně na aktuální datum) a obsah novinky - dále může administrátor vkládat a mazat výsledky všech mužstev, které jsou dostupné v DB, z těchto výsledků se následně vytváří tabulka soutěže - mezi možnosti administrátora patří i tvorba, úprava a mazání článků, které může přiřazovat k jednotlivým utkáním (komentáře k zápasu), určovat u nich titulek, datum zpracování, obsah a samozřejmě jméno autora, který článek vytvořil 3. Uživatelské role - host (nepřihlášený uživatel) o může číst články, diskuze, komentáře, prohlížet tabulky a veškeré informace o klubu o nemůže přispívat do diskuzí a komentářů k článkům - registrovaný uživatel (RU) o má stejná práva jako host, ale může přispívat do diskuzí a komentářů k článkům - administrátor o má stejná práva jako RU, ale po jeho přihlášení se mu zobrazí menu ADMIN, ve kterém může provádět akce popsané v části požadavků na funkčnost (výše)
4. Uživatelská příručka Požadavky Informační web fotbalového klubu je optimalizován pro internetový prohlížeč Mozilla Firefox, správná funkce na jiných prohlížečích není zaručena. Je vhodné mít podporu skriptovacího jazyka JavaScript, který zpříjemňuje a zlepšuje některé funkce webu. Ovšem není nutné ho používat, web je funkční i bez něj. Popis funkčnosti webu Na informační web klubu TJ Sokol Zdelov se dostanete pomocí adresy: http://sokoltest.dadena.com. Tím se dostanete na hlavní stránku webu, který je rozdělen do následujících sekcí: - v horní části je horizontální rozbalovací menu, které je nezbytné pro snadnou navigaci po celém webu - v levé části můžete vidět informační panel s aktuální zjednodušenou verzí tabulky soutěže, kterou klub hraje, nejaktuálnějšími stručnými zprávami z klubu a formulářem pro přihlášení do systému - v pravé části je pak plocha pro zobrazení samotných stránek webu
Registrace uživatele Na tomto webu se může registrovat každý, kdo se chce podělit se svými názory, příspěvky a komentáři s ostatními. V levém panelu najdete v přihlašovacím formuláři odkaz pro vstup do registračního formuláře, jehož údaje vyplníte a po úspěšném odeslání se můžete dále přihlašovat jako registrovaný uživatel s patřičnými výhodami tohoto účtu. Průchod webem Pro snadný průchod stránkami slouží jednoduché navigační menu. Nyní si popíšeme stránky, na které se uživatel může proklikat. - kliknutím na menu ZPRÁVY se de facto dostanete na hlavní stránku webu, kde jsou zobrazeny krátké úryvky z článků, které píší redaktoři tohoto webu a po kliknutí na jejich titulek je možné zobrazit detail těchto článků. Pod texty článků je možné přečíst komentáře, které k článku přidali ostatní uživatelé a jako přihlášený uživatel můžete vložit i ten svůj. - v menu A TEAM ( B TEAM) je možné nalézt důležité informace a statistiky mužstev, které hrají v daném klubu. Tyto informace jsou rozděleny do čtyř sekcí: o HRÁČI seznam hráčů hrajících v daném mužstvu, seznam je možné řadit podle zobrazených atributů jak vzestupně tak sestupně kliknutím na daný atribut
o TABULKA tabulka soutěže, kterou mužstvo hraje. Po celkovou tabulkou aktuální sezony jsou další dvě, které jsou vytvořeny pouze na základě domácích(resp. hostujících) utkání mužstev soutěže o VÝSLEDKY pod touto položkou naleznete všechny výsledky mužstva v aktuální sezoně. U těch, ke kterým byl napsán článek je aktivní odkaz na výsledku utkání a je možné tento článek po kliknutí zobrazit o REALIZAČNÍ TÝM zde jsou lidé, kteří se podílí na chodu celého mužstva (trenér, správce, zdravotník, atd.) - dalším menu je KLUB, ve kterém se dozvíte kontakt na pověřenou osobu, uvidíte fotky dresů, ve kterých mužstva nastupují k utkáním a plán stadionu s informacemi o ceně vstupného
- pokud jste přihlášen(a), je možné nejen číst, ale i přidávat témata do diskuze a k těmto tématům pak i příspěvky. Pokud u tvorby příspěvku zadáte svou emailovou adresu, zobrazí se následně u jako odkaz nad vaší přezdívkou. Do textu příspěvků je možné (při zapnutém JavaScriptu) vkládat obrázkové smajlíky. 5. Popis implementace Hlavní rysy programu Hlavním prvkem této webové aplikace je soubor./index.php, který se zobrazuje při každém požadavku. Do tohoto souboru se vkládají další stránky podle přijatého požadavku (./pages/*.php) a také pomocné soubory se skripty a DAO vrstvou (./include/*.php). Dále se do index.php vkládá odkaz na externí soubor pro CSS styly (./css/style.css) a javascript (./js/contol.js). Po načtení jakékoliv stránky se nejprve provede 5 vložení PHP skriptů do hlavní stránky index.php: 1. functions.php obecné funkce pro práci s daty, řetězci (validátory, konvertory) 2. dao.php soubor s funkcemi, které přistupují k databázi (jsou tak odděleny od samotné prezentace) 3. common.php soubor obsahující pole se stránkami, na které lze v rámci webu vstoupit (ochrana proti injekcím) a pole s titulky jednotlivých stránek 4. connect.php připojení k DB 5. actions.php - ověří, zda-li nemá být provedena nějaká akce (proměnná $action, která je poslána pomocí GET). Samotná stránka je pak řešena pomocí tří div bloků: - horní pro menu - levý pro informační panel - pravý pro vkládanou stránku Obsluha formulářů Obsluha formulářů je provedena pomocí JavaScriptové univerzální funkce checkform(form), která kontroluje, zda formulář neobsahuje prázdná pole, která jsou nutná pro vyplnění (podle stylu required). Pokud není formulář v pořádku vyskočí okénko s chybovým hlášením a označí se pole, která mají být vyplněna, červeným okrajem. Pokud není aktivní JavaScript, je provedena kontrola pomocí PHP v akcích (actions.php), a konkrétní chyba se vypíše přímo do formuláře. Přitom se ale údaje, které byly vloženy správně neztratí, neboť se ukládají do pomocných proměnných, kterými jsou vstupní pole defaultně naplněny.
6. E-R diagram databáze