. Za běžných podmínek prohlížeč stahuje současně několik souborů, jako jsou šablony stylů nebo obrázky. To však neplatí, pokud prohlížeč narazí na připojené externí soubory JavaScriptu. V tomto případě dochází k zablokování veškerého stahování jiných komponent stránky, dokud nejsou nahrány a spuštěny všechny skripty jazyka JavaScript. Pokud jsou všechny skripty umístěny do externích souborů, je také využíváno toho, že si je prohlížeč uloží do mezipaměti a nemusí je opětovně stahovat. Pokud je na soubory odkazováno v elementu head dokumentu HTML, prohlížeč pozastaví stahování a zobrazování ostatních částí stránky a místo toho bude načítat a provádět tyto skripty. Jelikož bude webový prohlížeč nejprve analyzovat obsah elementu head a až potom přejde k elementu body, zobrazení stránky se tak zpomalí. Je samozřejmé, že čím budou skripty větší, tím déle se budou stahovat a uživatel tak déle čekat. Tím, že budou odkazy na tyto externí skripty umístěny na konec dokumentu HTML, těsně před značku , bude zamezeno blokování stahování a zobrazení zbytku stránky, a tím tak bude vylepšena efektivita pro koncového uživatele. 5
http://tidy.sourceforge.net/
4.5
Optimalizace výkonu
50
Snížení počtu elementů v dokumentu HTML Počet elementů v dokumentu HTML ovlivňuje velikost výsledného souboru a tím pak délku stahování do webového prohlížeče. Větší problém však představují skripty jazyka JavaScript a šablony stylů, které se na stránku aplikují. Úroveň zanoření elementů rovněž snižuje výkon. Čím je hloubka zanoření elementů větší, tím je vynakládáno větší úsilí vykreslovacího subsystému na analýzu celé struktury. Čím bude tedy zanoření elementů větší, tím menší bude efektivita. Každý element HTML dokumentu je v jazyce JavaScript reprezentován pomocí modelu DOM. Prohlížeč tyto objekty modelu DOM vytváří z elementů na stránce a skládá je do hierarchické struktury, která odpovídá struktuře dokumentu HTML. Čím složitější bude struktura a čím více elementů bude obsahovat, tím déle bude trvat přístup k těmto elementům v jazyce JavaScript. Při psaní struktury HTML dokumentu je vhodné zvažovat použití každého elementu a zda daný element je v dané situaci skutečně potřeba. Pokud bude element zaváděn jen kvůli designu, mělo by tak být učiněno pomocí kaskádových stylů. Pokud však budou vytvářeny prázdné elementy, které budou později naplněny pomocí JavaScriptu, je dobré zvážit, zda nebude lepší jej vytvořit raději přímo JavaScriptem a vložit do stránky pomocí modelu DOM. Odkazy na neexistující soubory Pokud prohlížeč stahuje stránku, která obsahuje odkazy na neexistující soubory, tak server vrací chybu 404 protokolu HTTP, což značí, že soubor na serveru není. Ve většině případů se může jednat o obrázky pozadí z šablon stylů, kde byl samotný soubor odstraněn, avšak odkaz na něj ne. K takovým případům může docházet v průběhu vývoje webu. Na rozdíl od obrázků na popředí si obrázků na pozadí může málokdo všimnout a často nechtěně zůstanou odkazy na ně v šablonách stylů. Webový prohlížeč tak stále tyto odstraněné obrázky požaduje a server na ně reaguje chybou 404. Jestliže stránka odkazuje na neexistující soubor a server namísto požadovaného souboru vrátí chybovou stránku, prohlížeč pozastaví analýzu stránky a bude čekat, než se stáhne chybová stránka. To zhoršuje výsledek odkazů na neexistující soubory. Jelikož webový prohlížeč umí žádat jen o omezené množství souborů současně, je plýtvání tímto omezením s požadavky bez smysluplné odpovědi velmi neefektivní a snižuje to výkon webové aplikace. 4.5.3
Optimalizace šablon stylů pro výkon
V předchozím textu byly popsány způsoby, které vedou k optimalizaci HTML dokumentu pro výkon. V následujícím textu budou uvedeny techniky, které jsou spojeny s obsahem šablon stylů a její optimalizace do efektivnější podoby.
4.5
Optimalizace výkonu
51
Zmenšení souboru jazyka CSS pomocí nástroje CSSTidy Jak již bylo zmíněno, bílé znaky mohou zvětšit velikost souborů a jsou užitečné pro programátory, ale nikoliv pro uživatele. Nástroj CSSTidy6 stejně jako HTML Tidy odstraňuje ve zdrojových souborech bílé znaky, které nejsou pro prezentaci potřeba. Dále optimalizuje pravidla a odstraňuje komentáře, které ocení pouze programátoři a nikoliv běžní uživatelé. Stejně jako u HTML souborů je dobré vytvářet si kopie s bílými znaky pro další případnou editaci a na server nahrávat již optimalizované verze. Nepoužívat příkaz @import V souboru HTML lze odkazovat na externí šablonu stylů dvěma způsoby. Jedním způsobem je použití elementu link nebo direktivou @import uvnitř šablony stylů či elementu style. Některé verze webového prohlížeče Internet Explorer při použití této metody čekají, až se načte celá stránka a až poté začnou zkoumat externí odkazy z direktivy @import. Místo tohoto zápisu je lepší použít pro připojení šablon stylů element link. Používání zkrácených hodnot Jazyk CSS obsahuje mnoho podobných vlastností pro rozvržení elementů a typografickou podobu textů v těchto elementech. Za určitých podmínek lze kombinovat více definic vlastností do jedné a tím tak zmenšit výslednou velikost a dobu stahování css souboru, aniž by byla narušena jeho udržovatelnost a škálovatelnost. Mezi tyto vlastnosti lze zařadit margin, padding, border, background, color, list-style a další. Použitím zkrácených hodnot se myslí zapsání menšího počtu hodnot a vlastností. Například pokud by se definoval vnější okraj pomocí vlastnosti margin, lze jej zapsat čtyřmi dílčími vlastnostmi, jako je například margin-top: 10px; margin-right: 20px; margin-bottom: 30px; margin-left: 40px;. Zkrácena hodnota by pak znamenala zápis margin: 10px 20px 30px 40px;. Pokud by měl mít každý okraj stejnou velikost, pak by stačilo napsat pouze margin: 10px;. V případě že by horní a dolní okraj měli mít 10 pixelů a pravý a levý 20 pixelů, bylo by možné vlastnost zapsat způsobem margin: 10px 20px;. Dalším příkladem může být zápis barev v šestnáctkové soustavě. Pro definování černé barvy v šestnáctkové soustavě by mohla sloužit vlastnost color: #000000;. Zkrácený zápis by bylo možné zapsat stručněji jako color: #000 (Diaz, 2005). Používání techniky CSS spritů Pro snížení počtu a velikosti obrázkových souborů ve webových aplikacích může sloužit technika CSS spritů. Touto technikou dojde ke snížení počtu a velikosti po6
http://csstidy.sourceforge.net/
4.5
Optimalizace výkonu
52
žadavků protokolu HTTP a často i ke snížení počtu pravidel nutných k prezentaci obrázků na stránce. Technika CSS spritů je založena na spojování souvisejících obrázků do jediného souboru. Tato technika se inspirovala grafikou ze starých počítačových her a později se objevila i v operačních systémech u ikon uložených v jednom souboru. Techniku CSS spritů lze uvést na následujícím příkladu, kdy budou ve webové aplikaci používána čtyři tlačítka pro ovládání multimediálních souborů - Přehrát, Přetočit vpřed, Přetočit zpět a Zastavit. V šabloně stylů se lze na tyto tlačítka odkazovat pomocí čtyř tříd .play, .rewind, .forward a .stop, které budou mít definovanou velikost vlastnostmi width a height po 20 pixelech. Každé této třídě pak lze zvlášť přiřadit vlastností background-image jeden z obrázků, který danou akci vystihuje. Tyto čtyři obrázky lze však uspořádat vedle sebe do jednoho souboru v některém z grafických editorů. Pokud budeme předpokládat, že každé tlačítko bude čtvercové a rozměr jeho strany bude 20 pixelů, potom je možné tyto tlačítka uspořádat do čtverce tak, že vznikne čtverec o stranách 40 pixelů a bude obsahovat tyto čtyři tlačítka. Na jednotlivá tlačítka lze pak v šabloně stylů odkazovat tímto souborem s tím rozdílem, že bude docházet k posouvání pozadí. Každému tlačítku bude tedy přiřazena vlastnost background-position, která definuje polohu daného pozadí elementu. Pokud bude ikona Přetočit zpět v prvním řádku na druhé pozici v obrázku, pak vlastností background-position: -100 0; lze odpovídající třídě .rewind nastavit danou ikonu. Protože jeden sloučený obrázek je většinou menší než několik samostatných obrázků a nepotřebuje tolik HTTP požadavků, lze pozorovat znatelný nárůst výkonu. Se snížením počtu požadavků protokolu HTTP odpadá větší závislost na rychlosti připojení k serveru a omezení souběžných spojení v prohlížeči. Způsob spojování obrázků však má také vliv na výkon. Proto by měli být obrázky spojovány co nejlepším možným způsobem. Mělo by se dbát na používání efektivních mezer mezi jednotlivými obrázky a vyvarování se jednoho obrovského souboru se sprity, který bude mít velkou velikost (Lennartz, 2009). 4.5.4
Optimalizace obrázků pro výkon
Obrázkové soubory tvoří převážnou část všech dat požadovaných od serveru. Složitější design a rozvržení často vyžadují složité obrázkové prostředky, které mají za následek větší velikosti souborů s obrázky a pomalejšího stahování. Třemi nejpoužívanějšími typy obrázkových souboru v prostředí webu jsou GIF (Graphics Interchange Format), JPEG (Point Photographic Experts Group) a PNG (Portable Network Graphics). Většina vývojářů má stále více v oblibě formát PNG a jeho podpora se neustále zlepšuje, a to z mnoha důvodů, které plynou z jeho výhod. Výhody a nevýhody jednotlivých formátu jsou popsány v následujícím textu.
4.5
Optimalizace výkonu
53
Formát GIF Formát GIF byl vydán v roce 1987 společností ComputerServe. Na webu se stal velmi oblíbeným zejména proto, že produkuje soubory o malých velikostech a jdou v něm provádět i jednoduché animace. Velikost souboru GIF je malá, protože barevná hloubka je pouze osm bitů, z čehož plyne, že může zachytit jen 256 různých barev. Tato paleta však není pevně dána a lze si vybrat z celého rozsahu několika milionů barev. Pokud obrázek má méně jako 256 barev, ukládají se do souboru jen barvy daného obrázku, což vede ke snížení velkosti uložených dat. Malá velikost výsledného souboru je také způsobena komprimací LZW. Jedná se o bezztrátový typ komprese, který neodstraňuje žádná data, ale reprezentuje je efektivněji. Tento formát je velmi efektivní pro uložení malých ikon, typicky do velikosti stran čtverce 16 pixelů a pro jednoduché malby nebo čárovou grafiku. Jelikož mají omezenou barevnou paletu, nejsou vhodné pro větší a složitější obrázky. Při ukládání souboru ve formátu GIF, lze zvolit jednu z barev v paletě jako průhlednou. Při zobrazení takového souboru prohlížečem není tato barva vidět a místo ní je vidět obsah stránky pod daným obrázkem, čímž je dosaženo průhlednosti. Tato technika nefunguje dobře u přechodů a vržených stínů, protože neumí reprezentovat různě stupně průhlednosti (daná barva je buď průhledná nebo ne) (Arandilla, 2011). Jak již bylo zmíněno, formát GIF umožňuje také tvorbu jednoduchých animací. Dokáže uložit několik obrázkových snímků do jednoho souboru a o každém snímku ukládá informaci, kdy a jak dlouho se má zobrazit. V RIA aplikacích se s takovými animacemi lze nejčastěji setkat u ukazatelů průběhu nahrávání. Je to jediný formát pro animace, podporovaný ve všech webových prohlížečích. Lze jím do jisté míry nahradit animace ve Flashi od společnosti Adobe. Formát JPEG Formát JPEG nebo také JPG je vhodný pro ukládání fotografií a velmi složitých obrázků. Vznikl v roce 1986 jako vhodný formát pro kompresi těchto typů obrázků a postupně se vylepšoval a v roce 1994 se z něj stal mezinárodní standard. Formát je otevřený a nikdy nebyl patentován. Tento formát má výhody zejména u složitých obrázků, kde není příliš velký kontrast mezi sousedními pixely, proto není vhodný například pro čárovou grafiku. Na rozdíl od formátu GIF je JPEG formát ztrátový, z čehož plyne, že data se při kompresi odstraňují a nemohou být obnovena. Komprese je dosahováno odstraňováním detailů, které nejsou běžně postřehnutelné lidským okem. Oproti formátu GIF nabízí 24bitouvou barevnou hloubku, což je více než 16 milionů barev. Nepodporuje však transparentrnost a animace (Arandilla, 2011). Při ukládání souboru ve formátu JPEG většinou grafický editor nabízí volbu úrovně komprese finálního souboru. Čím větší bude úroveň komprese, tím menší bude výsledný soubor. Při velkých úrovních komprese však vznikají v obrázku rušivé artefakty.
4.5
Optimalizace výkonu
54
Formát PNG Formát PNG byl vyvíjen s úmyslem, aby vylepšil formát GIF a současně zůstal otevřený a bez patentu. I přesto, že je nejnovější z předešlých formátů podporován všemi moderními prohlížeči. Formát PNG umí ukládat obrázky s 24bitovou paletou barev, což je více jako 16 milionů barev a také podporuje alfa kanálové vrstvy s průhledností. To znamená, že dokáže na rozdíl od formátu GIF nastavovat různé úrovně průhlednosti různým částem obrázku. Formát PNG je na rozdíl od formátu JPEG bezztrátový, z čehož plyne, že všechna data z původního obrázku zůstanou zachována v novém souboru a po kompresi je lze kdykoliv získat zpět. U formátu PNG je používána komprese deflate, která je podobná kompresi používané u formátu GIF. Téměř ve všech případech jsou soubory typu PNG menší než ekvivalentní GIF soubory, přestože umí uložit libovolný počet barev. Díky malým velikostem výsledných souborů je formát PNG velmi oblíbený. Formát GIF by měl být používán jen pro velmi malé obrázky, kde je výsledná velikost souboru menší než u formátu PNG. Formát JPEG by měl být používán u složitých obrázků, například fotografií, u nichž ztrátová komprese funguje lépe, jelikož odstraní ty části obrázků, kterých si uživatel běžně nevšimne (Arandilla, 2011). Soubory ve formátu PNG obsahují nejen samotná data obrázku. Na začátku souboru je také skupiny dat záhlaví, které popisují obrázek. Některé z těchto skupin jsou povinné, jako jsou barevné palety a data o obrázku. Některé jsou naopak nepovinné, jako jsou údaje o gama korekci nebo vyvážení bílé. Jelikož soubor PNG musí obsahovat pouze povinná data, mohou být volitelné skupiny dat odstraněny a tím se zmenší výsledná velikost souboru. Jelikož je možné, že grafický editor tyto nepovinné skupiny dat bude do souboru ukládat, je třeba najít způsob jak tato data odstranit. U většiny operačních systémů je k dispozici nástroj pro příkazový řádek, který umožňuje tato data odstranit. Tento nástroj je nazýván Pngcrush a lze jej stáhnout7 na internetu. Tuto úlohu lze provádět také na webových stránkách Smush8 . Tyto webové stránky lze nasměrovat na konkrétní adresu URL nebo na ně nahrát obrázky a ony vrátí archiv ZIP se všemi obrázky bez nadbytečných dat. 4.5.5
Optimalizace kódu JavaScriptu pro výkon
Zmenšení souboru jazyka JavaScript pomocí nástroje Dojo ShrinkSafe Zdrojové soubory skriptů jazyka JavaScript obsahují velké množství bílých znaků a také komentářů. Takovéto informace jsou důležité pro vývojáře, aby kód lépe pochopili. Webový prohlížeč však tyto informace k interpretaci skriptu nepotřebuje, proto není žádný důvod, aby server tyto nadbytečné informace posílal. 7 8
http://pmt.sourceforge.net/pngcrush/ http://smushit.com
4.5
Optimalizace výkonu
55
V závislosti na daném souboru je možné zmenšit velikost souboru s JavaScriptem přibližně o 50 % tím, že budou odstraněny zbytečné bílé znaky a komentáře. Tato redukce se nazývá zmenšení. Velikost souboru je možné také zmenšit procesem zvaným zatemnění, který zkracuje názvy proměnných a funkcí. Zatemnění však představuje riziko, protože se nestará o to, jakým způsobem je komprimovaný soubor použit na daných webových stránkách. Komprimační nástroj Dojo ShrinkSafe využívá technik zmenšení i zatemnění. ShrikSafe však pracuje mnohem inteligentněji než jiné podobné nástroje, jelikož mění jen názvy proměnných a funkcí, které jsou veřejně dostupné mimo daný skript. To znamená, že veřejné rozhraní API nebo jiný kód v souboru bude fungovat správně. Tento nástroj je doporučován používat pro zmenšení souboru a tím tak zajištění rychlejšího stažení do prohlížeče (The Dojo Foundation, 2004). Přístup ke knihovnám jazyka JavaScript přes sítě CDN Jak již bylo řečeno, sítě CDN redukují vzdálenost mezi místy, mezi kterými se mají přenášet data pomocí internetu. Mnoho knihoven jazyka JavaScript, jako je například jQuery nebo Prototype je k dispozici na sítích CDN, které nabízejí rychlejší odezvy pro koncové uživatele. Navíc mají výhodu toho, že prohlížeč použije verzi uloženou v mezipaměti, pokud uživatel navštíví webové stránky odkazující na stejnou adresu URL. Společnost Google nabízí přístup k následujícím knihovnám a komponentám jazyka Javascript: • jQuery, • Prototype, • Dojo Toolkit, • Yahoo! UI, • MooTools, • SWFObjects Všechny soubory těchto knihoven jsou k dispozici z pevné URL adresy buď jako celý původní soubor nebo jako jeho zmenšená verze, která je obvykle až o 50 % menší. Úplná dokumentace je k této službě k dispozici na stránkách společnosti Google9 . Nevýhodou přístupu k souboru na jiné doméně, než jsou stránky uloženy, je to, že se musí vyhledat DNS záznam pro nalezení IP adresy nové domény. Tento čas však vyvažuje rychlost, jakou je odkazovaný soubor stažen. Síť CDN umožní uživateli stáhnout kopii souboru z fyzicky nejbližšího serveru a tím se snižuje zpoždění sítě.
9
http://code.google.com/apis/ajaxlibs/
5
5
METODIKA PRÁCE
56
Metodika práce
Cílem této práce je inovovat interní informační systém Audiovizuálního centra Mendelovy univerzity v Brně. Postup inovace může v některých fázích připomínat stejný průběh jako při tvorbě nového systému. Celkový postup práce lze shrnout do následujících bodů: • Specifikace současných požadavků na systém, • analýza současného stavu systému a definování jeho nedostatků, • návrh změn, • tvorba modelů, • realizace a implementace změn, • optimalizace systému. Specifikace požadavků na systém Jako výchozí úloha při tvorbě informačního systému je sběr a specifikace požadavků, které jsou kladeny na systém. Proto bude v první fázi rozebráno poslání Audiovizuálního centra a v návaznosti na to budou shromážděny specifikace a požadavky a definovány základní funkce systému. Tyto funkce budou poté detailněji rozebrány a stanoveny jednotlivé části systému. Analýza současného stavu Dalším krokem, ze kterého budou vycházet návrhy inovace, bude analýza současného stavu systému. Jako první bude analyzován vzhled stávajícího grafického rozhraní a porovnán se současnými trendy pro tvorbu webdesignu s čistou a přehlednou komunikací. S tím bude také úzce souviset stanovení cílové skupiny návštěvníků systému. Dále bude potřeba analyzovat způsob, jakým je současný systém implementován, co se týče způsobu programování a zhodnocení, zda je možné takovýto kód snadno udržovat a spravovat. V poslední fázi této části bude nutné celkově definovat nedostatky systému, ze kterých budou vycházet konkrétní návrhy na změny. Navržení změn Na základě definovaných nedostatků z předchozí analýzy budou navrhnuty a specifikovány změny, které by měly být v rámci systému provedeny. Tyto změny se budou týkat zejména grafického rozhraní implementace systému. Po specifikaci změn bude následovat část tvorby modelů.
5
METODIKA PRÁCE
57
Tvorba modelů Aby bylo možné přejít k implementaci a provádění změn, je nutné navrhované řešení namodelovat. Pro názornost bude namodelován případ užití pro celý systém. Jako další proběhne modelování nového grafického rozhraní aplikace, bude použit framework 960 Grid System. Nejprve bude navržen předběžný drátěný model pro rozmístění jednotlivých funkčních prvků systému. Model bude navržen na základě požadavků kladených na systém a bude sloužit dále jako předloha pro tvorbu grafického modelu a kódování stránky. Tento model bude vytvořen pomocí online nástroje MockFlow10 . Poté bude přistoupeno k tvorbě samotného grafického designu pomocí grafického editoru Adobe Photoshop. Pro implementaci bude nutné namodelovat také diagram tříd, ze kterého bude vycházet objektový kód systému. Současně s diagramem tříd bude třeba vytvořit nový databázový model. Modelování těchto diagramů bude probíhat pomocí online nástroje Creately11 . Realizace změn Po vytvoření modelů bude možné přistoupit k samotným inovacím informačního systému, jinými slovy webové aplikace. Jako první bude vytvořena HTML šablona pomocí jazyka HTML s definicí dokumentu XHTML 1.0 Strict a kaskádových stylů verze CSS2. Pro zvýšení interaktivity bude použito jazyka JavaScript, konkrétně jeho knihovny jQuery. Kódování této šablony bude probíhat pomocí programu PSPad, který je volně ke stažení. Při tvorbě této šablony bude kladen důraz na to, aby ji bylo možné zobrazit stejným způsobem ve většině současných i webových prohlížečů. Největší problémy budou zřejmě při implementaci pro prohlížeče Internet Explorer. Zde bude snaha, aby se prezentace zobrazovala korektně od verze 7. Po vytvoření HTML šablony bude možné přejít k další fázi realizace v podobě implementace databázového modelu. Bude vytvořena databáze v relačním databázovém systému MySQL. Poté bude možno přejít k implementaci pomocí jazyka PHP. Zde bude kladen důraz na tvorbu jednotlivých objektů, které budou reprezentovat jednotlivé funkcionality systému. Pro oddělení prezentační od aplikační části bude použit šablonovací systém Smarty vytvořený v jazyce PHP. V průběhu implementace změn bude také nutné dbát na dodržování některých zásad pro optimalizaci systému. Optimalizace systému V poslední části inovace bude provedena optimalizace celého systému pomocí metod, které byly v předchozím textu zmíněny, zejména optimalizace velikosti HTML, CSS a JavaScritových souborů.
10 11
http://www.mockflow.com/ http://creately.com/
6
VLASTNÍ PRÁCE
6 6.1
58
Vlastní práce Analýza současného stavu systému
Aby bylo možné přistoupit k modelování změn, které budou na systému provedeny, je nutné nejprve přistoupit k analýze současného stavu systému a navržení změn, které by bylo vhodné provést. V první řadě bude vhodné si uvědomit, jaká skupina uživatelů bude web navštěvovat a provést jejich analýzu. Poté bude provedena analýza současného webového designu systému. Dále pak bude přistoupeno k analýze a stylu implementace. 6.1.1
Analýza cílové skupiny uživatelů
Aby bylo možné začít s analýzou a návrhy změn, je potřeba si uvědomit, jaká skupina uživatelů bude web navštěvovat a využívat jeho služby. Je zřejmé, že Audiovizuální centrum Mendelovy univerzity poskytuje služby výhradně pro studenty a zaměstnance univerzity. Studenty by mohla zaujmou například služba poskytování průkazových fotografií, která probíhá přímo v areálu Mendelovy univerzity v Brně. Dále by je mohla zaujmout možnost stahování powerpointových prezentací vytvořené v duchu jednotného vizuálního stylu, stahování univerzitních a fakultních log. V další řadě poté prohlížení videí a fotografií z akcí konaných v rámci univerzity. Zaměstnanci univerzity, jako jsou například vyučující, kteří mimo výše zmíněných služeb ocení například spolupráci při tvorbě výukového videomateriálu pro studenty nebo služby spojené s fotodokumentací z akcí jimi pořádaných. Z předešlého textu je patrné, že uživatelská základna bude poměrně široká co se týče věku i zaměření. Jelikož na univerzitě existuje pět fakult s různým zaměřením, ať už technickým, přírodovědným nebo humanitním, je nutné počítat s různými zdatnostmi, co se týče výpočetní techniky a s tím spojené používání internetu a webových aplikací. Aby systém mohlo využívat co nejvíce uživatelů, bude třeba webovou prezentaci přizpůsobit tak, aby práce s ní by byla co nejjednodušší, intuitivní a celkově uživatelsky přívětivá. Ve stavu, který je určen k inovaci, je řada problémů spojených s jasnou komunikací mezi uživatelem a aplikací. Největší problém představuje grafické rozhraní a s tím do jisté míry spojená funkcionalita systému. 6.1.2
Analýza grafického rozhraní
Jelikož je v současné době grafika nedílnou součástí webové aplikace, nelze její úlohu při návrhu či inovaci systému podcenit. Kvalitně zpracovaný webdesign hraje významnou roli při komunikaci mezi uživatelem a webovou aplikací a je to první, co v novém nebo stávajícím návštěvníkovi zanechává jistý dojem. Zda jsou tyto dojmy pozitivní či negativní, může do jisté míry záviset také na vkusu či estetickém cítění uživatele a není možné vyhovět všem uživatelům zároveň. Z velké části však lze ovlivnit logické uspořádání prvků na stránce tak, aby působily kompaktním a
6.1
Analýza současného stavu systému
59
celistvým dojmem a intuitivně naváděly uživatele při komunikaci s webovou aplikací. V následujícím textu bude tedy nutné zanalyzovat stávající situaci po stránce grafického a uživatelského rozhraní.
Obr. 1: Původní domovská stránka Audiovizuálního centra
Při vstupu na stránky Audiovizuální centra Mendelovy univerzity v Brně si lze všimnout hned mnoha nedostatků. Jedním z hlavních je nezajímavý a nudný webový design působící archaickým dojmem, na kterém není patrné jasné rozdělení stránky do ucelenějších segmentů, které by zpřehledňovaly orientaci ve stránce, a stránka celkově nepůsobí celistvým a kompaktním dojmem. Tento důvod lze do jisté míry přikládat datu vytvoření systému a také jeho průběžnému vývoji. Hlavním důvodem však nejspíš bude odvození designu od stránek Mendelovy univerzity v Brně, kdy se autor snažil co nejvíce přiblížit jejich vzhledu z důvodu příslušnosti k univerzitě a tím tak přizpůsoboval design na úkor obsahu. V jednotném vizuálním stylu (JVS) je definováno pouze orientační schéma stránek a nepostihuje všechny možnosti. Proto není důvod se jich striktně držet jako předlohy, ale je vhodné dodržovat základní pravidla, která jsou JVS uvedena, jako je například stanovený řez písma, barvy a další ochranné prvky.
6.1
Analýza současného stavu systému
60
Prvním zásadním problémem stránek je, že při uživatelově první návštěvě není ze stránek patrné, co nabízejí a jaká je jejich úloha či poslání, což vede k jeho částečné dezorientaci. Jednak je to způsobeno tím, že stránka žádným způsobem nenaznačuje, o co se jedná a co může uživateli nabídnout. Největším problémem komunikace stránek s uživatelem však bude bezesporu navigace. Hlavní navigace je umístěna na stránce vlevo. Při procházení jednotlivých položek není uživateli jednoznačně řečeno, ve které sekci nebo části aplikace se nachází. Ukázkovým příkladem tak může být sekce Videodatabáze a zde podsekce Streamované video která je pojmenována jako Filmotéka. Nedostatků podobného typu je zde mnohem více. Primární menu by také mohlo kvůli přehlednosti obsahovat méně položek. Přebytečné položky jako například Kontakty nebo Kde nás najdete by bylo možné zařadit jako jednu položku s názvem Kontakt. Odkaz Stránky MENDELU by se mohl klidně zařadit do sekce Odkazy. Odkaz na domovskou stránku představovaný položkou Interní informační systém by bylo vhodnější pojmenovat jako Domů nebo na něj odkazovat například pomocí loga stránek, jak je tomu zvykem. V menu je také položka Výroba, která má představovat část Audiovizuální centra, která se zabývá natáčením a zpracováním akcí univerzity. Existence tohoto odkazu je zde nanejvýš zbytečný a lze jej bez problémů zařadit do sekce služby. Kontextově podobné položky by se tedy daly zahrnout do jedné položky v hlavním menu a byly by zobrazovány pomocí roletového menu. Velkou nevýhodou je také špatná modifikovatelnost současného menu. Pokud by bylo požadováno přidání nové položky, bylo by nutné se uchýlit k přidání další položky i kontextově podobné, do již na poměrně malé stránky rozsáhlého menu. Za zbytečný a rušivý element lze označit část, která zobrazuje výčet použitých technologií při implementaci systému, který je zobrazen ve spodní levé části stránky. Tyto údaje běžnému uživateli nic neřeknou a místo, které zabírají, by mohlo být využito nějakým jiným efektivnějším způsobem. Jakoby vytržením z kontextu stránek může působit sekce Fotogalerie. Vzhled této podsekce je zcela jistě ovlivněn tím, že byla použita volně dostupná fotogalerie Coppermine a její vzhled byl částečně přizpůsoben vzhledu stránek. Opět zde proběhlo jisté přizpůsobení vůči cizímu designu, což má za následek nekompaktnost vzhledu stránek. Stránky jsou navrženy pomocí tabulek s relativní velikostí, takže celý obsah se přizpůsobuje velikosti okna prohlížeče, což má na větších monitorech za následek roztažení obsahu přes celou plochu a stránka s relativně malým množstvím obsahu může působit prázdným dojmem. 6.1.3
Analýza funkcí systému
Informační systém Audiovizuální centra Mendelovy univerzity v Brně by měl mít několik funkcí, které je možné rozdělit z pohledu uživatele a z pohledu správce. Z pohledu běžného uživatele neboli návštěvníka webových stránek, to bude poskytování informačních sdělení. Tato sdělení budou vkládána zaměstnanci AVC
6.1
Analýza současného stavu systému
61
na požádání některého ze zaměstnanců či studentů univerzity. Dále by měl systém poskytovat základní informace o poskytovaných službách Audiovizuálního centra a vybrané URL odkazy, které by mohly být pro uživatele užitečné. Dále by měl systém poskytovat seznam videí, která mohou být vypůjčena zaměstnanci či studenty univerzity a také možnost shlédnout videa, která jsou určena ke streamování. Možností videodatabáze by mělo být také vyhledávání podle zvolených parametrů. Stejně tak bude možnost zhlédnutí fotografií z akcí, vázaných k univerzitě. Zde by měla být také volba vyhledávání podle parametrů. Jako další funkcí by mělo být stahování souborů. Bude se jednat o stahování formulářů, žádanek nebo dokumentů. Nejužitečnější z této funkce by mělo být poskytnutí stažení log univerzity, fakult a univerzitních součástí v několika datových formátech. Poslední funkcí pro běžné uživatele bude posílání zpráv pracovníkům Audiovizuálního centra. Z pohledu správce by měla být první funkce samotné přihlašování a odhlašování ze systému. V systému pak bude mít uživatel možnost měnit si své přihlašovací údaje. Dále pak přidávat, mazat či editovat informační zprávy, které obdrží od žadatele. Další funkcí systému bude ukládání, mazání nebo editování záznamů o zhotovených audiovizuálních dílech. Stejné funkce bude poskytovat uživateli i fotogalerie, s možnostmi vkládání, mazání a editací záznamů. Pro uživatele s nejvyšším stupněm oprávnění bude systém poskytovat funkci na správu uživatelů, kde bude možnost zavedení nového uživatele, jeho editaci nebo vymazaní. Poslední funkcí systému bude sledování statistiky přístupů na web. 6.1.4
Analýza implementace systému
Pro určení změn v rámci implementace je třeba analyzovat, jakým způsobem byl celý systém navrhnut a implementován. Jelikož je systém provozován ve webovém prostředí, první věcí, na kterou je vhodné se detailněji zaměřit je kódování stránek pomocí jazyka HTML. HTML stránka je navržena s definicí typu dokumentu HTML 4.01 Transitional, avšak tento standard nedodržuje. Z hlediska validity a tím pádem i budoucí kompatibility je zcela nevyhovující. Pro lepší využitelnost a kompatibilitu by bylo vhodnější přejít na XHTML. Stránka využívá kaskádových stylů, které jsou mnohdy definované přímo v HTML kódu místo toho, aby byly přiloženy pomocí externího souboru. Podobně tomu je i v případě JavaScriptu. V případě vložení kaskádových stylů pomocí externího souboru je však používán příkaz @import, který, jak již bylo uvedeno dříve, není doporučován. Stránka je rozdělena v podstatě na dva hlavní segmenty, a to na hlavu a obsah. Při kódování HTML stránek platí konvence, že stránka by měla být rozdělena na hlavu, obsah a patu. Zde však pata stránky, ve které by mohly být uvedeny například kontaktní údaje, zcela chybí. Obsah stránky je tvořen dvěma segmenty a to navigačním menu a vlastním obsahem. Menu je vytvořeno s fixní velikostí, proto
6.2
Specifikace požadavků
62
je při zvětšování velikosti šířky neměnné. To však neplatí o obsahu, který je tvořen pomocí tabulky s relativní velikostí a s tím spojené rozšiřování nebo zmenšování šířky při změně velikosti okna. To má za následek, že stránky na větších a širších monitorech působí velmi prázdně a nekompaktně. O změnu obsahu stránek se stará skriptovací jazyk PHP. Skripty jazyka PHP jsou však psány přímo v kódu HTML, což má za následek při další editaci značnou nepřehlednost a špatnou orientaci v kódu, kterou navíc umocňuje fakt, že je zde použito strukturovaného programování místo objektového, což není při větším objemu kódu vhodné. V sekci fotogalerie je zakomponována a používána volně dostupná fotogalerie Coppermine. Tato galerie je poměrně robustní a komplexní a nějaké větší přizpůsobení či změna zdrojového kódu ve vlastní prospěch je velmi náročná. Bylo by proto lepší implementovat vlastní galerii, která bude přizpůsobena potřebám daného systému. Další část implementace, kterou je nutno analyzovat, je databáze systému. Systém používá relační databázový systém MySQL, který je vhodným nástrojem pro tuto aplikaci. Databázový model však nesplňuje databázové normální formy, díky čemuž je správa databáze velmi komplikovaná a náročná. Jako příklad lze uvést, že tabulky nesplňují první normální formu, tedy další nedělitelnost prvků.
6.2
Specifikace požadavků
Při tvorbě systému nebo v tomto případě při inovaci je první fází specifikace požadavků. Aby bylo možné se pustit do objektově orientované analýzy nebo návrhu, je nutné mít alespoň rámcový přehled o tom, čeho by mělo být dosaženo. Je nutné jednak zjistit, co vlastně má systém dělat a jednak dosáhnout v tomto bodě shody. Požadavky, které určují, jaké chování bude systém nabízet, se označují jako funkční požadavky. Vlastnosti nebo omezující podmínky daného systému specifikují naopak nefunkční požadavky. 6.2.1
Funkční požadavky
Funkční požadavky je možné rozdělit z hlediska uživatelů, kteří budou systém využívat. Tito uživatelé se dají rozdělit do dvou základních skupin. První skupinu budou představovat uživatelé, kteří budou mít oprávnění přistupovat do interní části systému a nějakým způsobem prohlížet, přidávat, editovat, mazat či zveřejňovat data. Druhou skupinou pak budou externí neboli koncoví uživatelé, kteří budou prohlížet nebo stahovat obsah zveřejněný oprávněným uživatelem. První skupinu uživatelů, oprávněných přistupovat do interní části systému, lze dále rozdělit na další podskupiny. Tyto podskupiny uživatelů se budou od sebe lišit přidělenými právy, která je budou opravňovat nebo omezovat k vykonání operací spojených s prací v interní části systému. Uživatel s nejnižším oprávněním bude mít možnost přihlásit se do systému a v něm bude mít možnost pouze prohlížet interní i zveřejněná data, avšak nebude
6.3
Navrhované změny
63
mít již možnost je jakkoli měnit, přidávat, editovat nebo mazat. Tyto možnosti již bude mít uživatel na druhém stupni oprávnění. Tento uživatel by se dal označit jako správce obsahu. Bude moci do systému vkládat informační zprávy, které budou chtít jiné osoby zveřejnit, vytvářet fotogalerie a s tím spojené vkládání fotografií, vkládat nové videozáznamy a údaje o vytvořených filmech, dále pak vkládat různé soubory ke stažení. Správce obsahu bude mít tedy možnost prohlížet, přidávat, editovat nebo mazat záznamy v systému. Nevyšší práva bude mít osoba, kterou lze označit jako administrátora. Tento uživatel bude mít všechna předešlá oprávnění a k tomu mít na starosti účty jednotlivých uživatelů. Ty bude moci vytvářet, mazat nebo editovat. Se správou účtů bude také souviset přidělování jednotlivých práv ostatním uživatelům. Koncoví uživatelé pak budou přistupovat na stránky Audiovizuální centra a prohlížet zveřejněný obsah. Jako první si mohou přečíst zprávy na informační tabuli, které budou obsahovat informace, které si přáli zveřejnit žadatelé. Bude se jednat převážně o informace týkající se Mendelovy univerzity v Brně. Jako další si budou moci prohlížet fotogalerie z vybraných akcí konaných na Mendelově univerzitě v Brně nebo s ní spjatých. Ve videodatabázi budou moci zhlédnout filmy z produkce Audiovizuálního centra. Ve videodatabázi bude také uveden seznam všech vytvořených a vedených videí včetně těch, která nebudou z nějakých důvodů (např. právních) ke zhlédnutí k dispozici. Některé z těchto filmů je pak možné vypůjčit například pro účely výuky, ale ne pro komerční užití. Jako další část systému, kterou budou moci koncoví uživatelé využívat, bude část pro stahování souborů. Zde se bude jednat zejména o žádanky na provedení díla či akce zaměstnanci Audiovizuálního centra. Dále se pak bude jednat o stahování jednotlivých barevných, jazykových verzí univerzitních log a powepointových prezentací v jednotném vizuálním stylu Mendelovy univerzity v Brně. Jako poslední funkce, kterou budou moci uživatelé používat, bude kontaktní formulář pro odesílání dotazů nebo požadavků. 6.2.2
Nefunkční požadavky
Jako omezení některých částí systému by se daly označit autorská práva. U streamovaného videa nemusí aktér nebo autor souhlasit s jeho zveřejněním i když si záznam své činnosti přál zaznamenat pro osobní účely. Toto video by proto mělo být evidováno pouze v interní části systému, ke kterému budou mít přístup pouze oprávnění uživatelé. Tento problém se může samozřejmě vyskytnout i u pořízených fotografií pracovníky Audiovizuální centra. Další omezující podmínky již na systém kladeny nebyly.
6.3
Navrhované změny
V této části práce budou navrženy změny, které budou v pozdější fázi realizovány. Tyto návrhy vycházejí z předchozí analýzy systému.
6.3
Navrhované změny
6.3.1
64
Návrh na změnu způsobu poskytování informací
Před přistoupením ke konkrétním grafickým a implementačním změnám je zapotřebí definovat obecnější návrhy změn informačního systému. Tyto návrhy se budou především týkat způsobu, jakým budou některé informace poskytovány koncovým uživatelům. První změna by se týkala úvodní stránky, kde by byl umístěn hlavní baner a dynamicky by zobrazoval nabízené služby a další aktuální informace. Dále by informační zprávy byly členěny do záložek podle kategorie, do které spadají, a přechod mezi jednotlivými kategoriemi byl realizován také dynamicky, například využitím horizontálního rolování v rámci obsahu stránky. Vhodným nástrojem by byl některý ze zásuvných modulů knihovny jQuery. V oblasti streamovaného videa by byl využit místo Windows Media Playeru některý z flashových přehrávačů, který je volně ke stažení k nekomerčním účelům. Vhodnou komponentou by byl v tomto případě JW Player12 od společnosti LongTail. Komponentu JW Player naprogramoval Jeroen Wijering a jde o znovupoužitelnou komponentu pro přehrávání video a audio formátů jako jsou FLV, MP4, MP3, AAC a dalších. Výhodou tohoto přehrávače je například progresivní stahování, kdy je možné sledovat video, aniž by bylo ještě celé staženo do počítače. Dále také podporuje řadu doplňků s dodatečnými funkcemi. Další změna by se měla týkat fotogalerie, která by byla integrována do obsahu stránky. Procházení fotogalerie by bylo realizováno dynamickými přechody mezi obrázky, při kterých nebude docházet k novému načítání celé stránky. Jednalo by se o dvě oblasti. První oblast by obsahovala zobrazení samotné fotky v původní velikosti a pod ní by byla umístěna lišta obsahující zmenšené náhledy jednotlivých fotek. V případě že by se náhledy do této oblasti nevešli, bylo by možné se v nich orientovat pomocí horizontálního skrolování s využitím myši. Tuto galerii by bylo vhodné implementovat pomocí některého zásuvného modulu knihovny jQuery, který je volně ke stažení. Výraznou změnou by měla projít také část systému pro poskytování a stahování univerzitních log. V obsahu stránky by bylo zobrazováno aktuální vybrané logo. Pro výběr loga by sloužilo roletové menu obsahující jednotlivé varianty log. Další změnou by měl být způsob stahování jednotlivých formátů, který by měl být realizován pomocí tří tlačítek. Každé tlačítko by představovalo stažení jednoho z požadovaných formátů (JPEG, PNG, EPS). Po stisknutí toho tlačítka by bylo vyvoláno dialogové okno pro uložení nebo otevření zvoleného loga. Tím by se předešlo klasickému stahování pomocí pravého tlačítka myši a volbě textitUložit obrázek jako. . ., čímž by došlo k usnadnění práce. Dále by také bylo vhodné zavést v sekci kontakty kontaktní formulář, který bude sloužit jako nástroj pro odesílání požadavků nebo dotazů na Audiovizuální centrum pomocí emailů. 12
http://www.longtailvideo.com/
6.3
Navrhované změny
6.3.2
65
Návrh na inovaci grafického rozhraní
Jako první by mělo být rozhodnuto o tom, zda zvolit fixní nebo plovoucí rozvržení stránky. Jelikož stránky neobsahují velké množství obsahu a při plovoucím rozvržení by mohla tato stránka na větších monitorech působit prázdným dojmem, bylo rozhodnuto o použití fixní šířky. Dalším důvodem pro fixní rozvržení byla absolutní kontrola nad umístěním jednotlivých prvků na stránce. Jako další obecnější změna by bylo vytvoření základní struktury stránek, ve kterých by se jednotlivé prvky integrovaly do větších celků. Těmito celky jsou myšleny hlavička, baner, obsah a patička stránky. Pro lepší využití celé šířky stránky by bylo lepší namísto vertikálního menu zvolit menu horizontální. Menu by bylo roletové, aby se stalo přehlednějším a daly se do něj v případě potřeby umístit ještě další položky, což by přispělo k jeho flexibilitě. Jeho umístění by bylo v hlavičce stránky. Baner stránky by byl umístěn pod hlavičkou stránky a měl by úlohu upoutání návštěvníkovi pozornosti. Tu by měly upoutat nejzajímavější služby které web, potažmo Audiovizuální centrum nabízí. Jako další část bude obsah, který má za úkol poskytovat informace ze zvolených sekcí. Zde je vhodné umístit ”drobénkové menu”, které bude jednoznačně označovat uživatelovu pozici na stránkách. V rámci obsahu je také doporučeno jednotně definovat vzhled a použití hlavních typografických prvků jako jsou nadpisy, text, seznamy, tabulky, text, odkazy, atd. Inovací grafického rozhraní by mělo mít za následek přehlednější členění stránky a tím dosažení její celkové kompaktnosti. Dále pak by měla graficky a esteticky sjednotit jednotlivé sekce v rámci celých webových stránek. 6.3.3
Návrh na změny v implementaci
Jak již bylo naznačeno v analýze, první návrhy na změny se budou týkat HTML kódu. Zde by bylo vhodné pro lepší kompatibilitu stránek přejít z HTML 4.01 Transitional na XHTML 1.0 Strict. S tím bude také souviset dodržování všech pravidel, která se na tento dokument vztahují. V rámci HTML kódu by bylo lepší se vyvarovat rozložení elementů stránky pomocí tabulky a raději se zaměřit na rozložení pomocí kaskádových stylů. V kaskádových stylech by pak bylo výhodné použít některých hotových řešení z frameworku 960 Grid Systém, jako jsou například velikosti jednotlivých sloupců atd. Při psaní kaskádových stylů by pak nebylo na škodu zohlednit některé z optimalizačních technik jako je zápis se zkrácenými hodnotami nebo použití css spritů. V rámci psaní skriptů v jazyce PHP by bylo dobré použít objektový návrh pro lepší orientaci v kódu a jeho snadnější údržbu. Dále by měl být oddělen aplikační kód od prezentačního, což opět přispěje ke zpřehlednění celkového kódu. Toto oddělení je možné provést pomocí šablonovacího systému Smarty.
6.4
Tvorba modelů
66
Jako poslední návrh na změnu implementace by mělo být zavedení nového databázového modelu, který bude splňovat normální formy. Normalizací databáze se tak v budoucnu usnadní jeho správa a údržba.
6.4
Tvorba modelů
Než bude přistoupeno k provádění navrhnutých změn, je na místě vytvořit několik modelů systému. Aby bylo možné začít s tvorbou nové grafiky, bude nutné zachytit rozvržení jednotlivých elementů na stránce pomocí drátěného modelu. Tento model může být také v jisté míře využit při implementaci systému. Pro znázornění základních funkcí systému poslouží diagram případů užití (tzv. Use Case diagram). Jako šablona pro implementaci poslouží diagram tříd, který zachycuje atributy, metody a vzájemné vazby mezi objekty systému. Nová databázová struktura bude zachycena pomocí entitně relačního diagramu. Po vytvoření těchto modelů se bude možné pustit do realizace samotných změn systému. 6.4.1
Modelování případů užití
Při modelování případů užití se bude vycházet z již uvedených specifikací požadavků na systém. Diagramy případů užití budou pro lepší přehlédnout rozděleny podle jednotlivých aktérů. Jako první bude uveden celkový obecný diagram užití. Poté budou detailně zobrazeny jednotlivé případy užití pro samotné aktéry. Základní diagram užití zobrazuje celkový pohled na systém. Jsou zde aktéři Host a Správce. Aktér Host bude mít dostupné uživatelské služby. U aktéra správce bude abstrahováno od jednotlivých práv. Ten pak bude mít k dispozici svého účtu, správu obsahu systému a správu uživatelů. Při detailním pohledu na aktéra Host je patrné, že jeho uživatelské služby budou zahrnovat prohlížení videí, prohlížení fotografií, prohlížení inzerátů, stahování souborů a odesílání zpráv pracovníkům Audiovizuálního centra. V rámci prohlížení videí a fotografií zde bude mít možnost ještě vyhledávat položky podle zadaných parametrů. Aktér správce bude mít v případě užití Správa účtu možnost po zadání přihlašovacího jména a hesla přihlášení do systému. Zde pak bude mít možnost měnit si přihlašovací údaje k účtu, prohlížet a vyhledávat interní obsah systému. Jako poslední možnost bude možnost se z účtu odhlásit. V případě Správy účtu bude mít Správce na starosti obecně editaci obsahu systému. Jako první bude moci zanášet a zveřejňovat informační zprávy, které se budou zobrazovat návštěvníkům stránky. Další případ bude Správa fotografií, kde má možnost vytvářet a editovat fotogalerie a s tím spojené vkládání fotografií. Dalším případem užití bude Správa videí, ve které bude mít na starost vkládání a editaci videí. Jako poslední bude Správa souborů, kde bude vkládat a mazat soubory ke stažení.
6.4
Tvorba modelů
67
Obr. 2: Základní diagram případů užití
Posledním případem užití bude případ Správa uživatelských účtů. Správce zde bude mít na starosti editace účtů ostatních uživatelů, mazaní jejich účtů a vytváření nových účtů. 6.4.2
Modelování diagramu tříd
Jak již bylo řečeno, výsledkem modelování objektů, které reprezentují části systému je diagram tříd. Jedná se o statickou strukturu systému, využívanou především v situaci, kdy je potřeba diagramem zachytit konkrétní skutečnost. V tomto případě představuje strukturu tříd, která je použita v inovovaném informačním systému. Celkem bylo navrženo osm tříd, které mezi sebou, až na jednu výjimku, komunikují. Je možné, že během implementace se mohou metody nebo atributy tříd rozrůstat nebo může přibýt i samotná třída. Výchozí návrh tříd je znázorněn na obr. 5. Třída Login bude obsahovat metody spojené s přihlašováním uživatele do administrační části, jako jsou kontrola hesla, přihlášení, chybové hlášky a odhlašování. Třída User bude zajišťovat například zobrazování údajů o přihlášeném uživateli, přidávání, mazání uživatele nebo změnu uživatelského profilu. O správu informačních zpráv se bude starat třída Messages, která bude obsahovat metody pro přidávání, mazání, editaci zpráv, jejich načítání či vyhledávání. Podobné metody budou obsahovat také třídy FotoGallery a Video zajišťující správu fotogalerií a videodatabáze. Tyto dvě třídy budou komunikovat se třídou FileManager, která bude mít na starost práci se soubory, jako je jejich nahrávání či mazání ze serveru. Dále je třeba
6.4
Tvorba modelů
68
Obr. 3: Diagram užití pro aktéra Host a případ užití Uživatelské služby
také zmínit třídu DataBaseQuery, se kterou bude komunikovat většina ostatních tříd. Ta bude sloužit pro dotazování se na databázi a zanášení změn do databáze. Bude se jednat o obsluhu příkazů SELECT, INSERT, DELETE a UPDATE. Tato třída byla zavedena kvůli zjednodušení a zpřehlednění zápisu zdlouhavých databázových příkazů. Poslední třídou je třída Email, starající se o odesílání dat z kontaktního formuláře na společný email Audiovizuálního centra. 6.4.3
Databázový model
Aby bylo možné začít implementovat novou databázi, je třeba zhotovit její model, ve kterém jsou zachyceny tabulky a způsob jejich propojení. Toto propojení bude umožňovat svázat vzájemně související data. Při návrhu databází je tedy obvyklé, že jedna databáze je rozdělena do několika tabulek, které jsou spolu svázané pomocí vybraných údajů ve vybraných sloupcích. Důležitou roli zde přitom hrají právě zmíněná propojení tabulek neboli relace. Návrh nové databáze je zachycen v tzv. entitně relačním diagramu (ERD), který je znázorněn na obr. 6. Při modelování tohoto diagramu byl kladen důraz na jednoduchost a dodržování pravidel pro normalizaci databází. Základní model databáze je tvořen tři-
6.4
Tvorba modelů
69
Obr. 4: Diagram užití pro aktéra Správce a případ užití Správa účtu
nácti tabulkami. Za základní stavební kameny databáze lze považovat tabulky User, Fotogalerie, Video titul, Informacni zprava a Soubory. Tabulka User bude sloužit pro ukládání informací a přihlašovacích údajů uživatelů a bude hrát hlavní roli při přihlašování do systému a také bude poskytovat informace o právech uživatele a s tím spojená oprávnění provádět určité operace v administrační části. Tabulky Fotogalerie, Video titul a Informacni zprava budou sloužit pro ukládání a správu fotogalerie, videodatabáze a informační tabule. Tabulka Soubory bude určena pro ukládání informací o nahraných souborech na server pomocí administrační části, jako jsou dokumenty, prezentace nebo formuláře. Je možné, že počet tabulek nebo počet jejich atributů se může v průběhu implementace rozrůstat. Důvodem může být například změna požadavků na systém nebo odhalení případných nedostatků v navrženém modelu. Při zahájení implementace se však bude vycházet z tohoto základního modelu. 6.4.4
Drátěný model
Pro vytvoření a kódování grafiky, ale i pro implementaci webových stránek je vhodné navrhnout a vytvořit tzv. drátěný model, navrhovaný na základě požadavků a zadání klienta. Tento model by měl být navržen hlavně proto, aby minimalizoval rozdíl mezi požadavkem klienta a finálním výstupem. Drátěný model neboli wireframe je jednoduchý model, který bude definovat obsah, rozložení a funkce vytvářeného
6.4
Tvorba modelů
70
Obr. 5: Diagram tříd
webu. V tomto modelu nebude nutné používat pestrou paletu barev, obrázky a jiné rozmanité grafické prvky, ale soustředit se hlavně na rozložení jednotlivých funkčních i nefunkčních elementů na stránce. Aby bylo možné přistoupit k tvorbě grafiky, byl vytvořen následující drátěný model (obr. 7), který naznačuje základní rozdělení stránky na čtyři hlavní stavební bloky: Hlavička a menu - Tato část stránky by měla v levé části představovat název stránky v podobě loga. Vedle loga by pak mělo být umístěno hlavní menu, které bude sloužit k primární navigaci mezi sekcemi stránek. Banner, popis stránky - Druhá část bude tvořena v domovské stránce pohyblivým banerem, který bude prezentovat hlavní služby Audiovizuálního centra. V takzvané podstránce (každá mimo stránky domovské - HOME) bude místo tohoto baneru zobrazován název stránky v podobě zvolené sekce. Obsah stránky - V této části stránky bude v horním pravém rohu zobrazováno drobénkové menu pro snadnější orientaci. Dále zde bude zobrazen obsah odpovídající jednotlivým sekcím. Pata - Tato část bude představovat grafické ukončení stránky a několik odkazů.
6.4
Tvorba modelů
Obr. 6: Model navrhované databáze
71
6.5
Realizace a implementace změn
72
Obr. 7: Ukázka drátěného modelu hlavní stránky
6.5 6.5.1
Realizace a implementace změn Inovace grafického rozhraní a uspořádání funkčních prvků
V dnešní době, kdy je tak masivně rozšířen internet a stále dochází k jeho expanzi, je kvalitní webová prezentace samozřejmostí jak pro velké společnosti, tak i pro drobné podnikatele. Profesionální a efektivní design webových stránek může výrazně napomáhat úspěšnosti firmy na trhu. To samé může platit i o informačním systému, kdy špatné uspořádání prvků na stránce v kombinaci s nevýrazným, nezajímavým designem může odradit uživatele od jeho používání. Cílem inovace grafického rozhraní informačního systému Audiovizuální centra Mendelovy univerzity bylo inovovat rozložení funkčních prvků a webdesignu s ohledem na jednotný vizuální styl Mendelovy univerzity v Brně tak, aby se stal přehlednějším, zajímavějším a uživatelsky přívětivějším, než tomu bylo doposud a zajistil tak snadnou orientaci na stránkách. Graficky byla inovována jak samotná webová prezentace, tak i administrační část. Při inovaci bylo použito grafického editoru Adobe Photoshop CS5, což je profesionální program pro tvorbu a úpravu bitmapové grafiky. Dále pak byl použit
6.5
Realizace a implementace změn
73
framework 960 Grid System pro náčrt, návrh a programování rozložení stránek s rozložením na 12 sloupců. Jelikož v jednotném vizuálním stylu Mendelovy univerzity v Brně nejsou přímo definována pravidla pro webovou prezentaci, byly zohledněny základní pravidla pro práci s barvami, písmem a logy. Jako písmo bylo použito bezpatkový typ písma Arial. Použité barvy pak byly základní zelená barva univerzity s hodnotami RGB: 120/190/20, dále pak odstíny šedé RGB: 80/80/80, RGB: 180/180/180. Jako doplňková barva pro drobné grafické prvky byl použit odstín šedé s hodnotou RGB: 240/240/240. Webová prezentace Inovace webdesignu systému byla provedena jak v uživatelské, tak i v administrační části. Jelikož grafika webového designu stránek má úzkou návaznost na dříve vytvořený drátěný model, jsou jednotlivé části stránek v podstatě identické. Jednotlivé části jsou zde však již detailně zpracovány tak, aby odpovídaly realitě: Hlavička a menu - Hlavička obsahuje název stránek a roletové menu, které je uspořádáno horizontálně. Po najetí kurzoru myši na některou z položek je menu rozevřeno a je zobrazeno submenu. Tímto způsobem uspořádání bylo docíleno zpřehlednění jednotlivých položek menu, tím i rozdělení do sekcí a snadnější orientace pro uživatele. Menu tak může být rozšiřováno o další položky submenu, aniž by došlo k narušení vzhledu hlavního menu, které by mělo být neměnné. Banner, popis stránky - Dalším blokem stránky je baner nebo popis stránky. Baner je zobrazován pouze na úvodní stránce a informuje uživatele o poskytovaných službách a měl by působit jako poutač. V dalších stránkách se už baner nezobrazuje, ale zobrazuje se pruh s nadpisem sekce, ve které se uživatel nachází, což opět zpřehledňuje orientaci ve stránkách. Obsah stránky - V bloku obsah je pak zobrazováno drobénkové menu, které zobrazuje jednoznačnou pozici uživatele na stránkách. Dále je zde pak zobrazován obsah jednotlivých stránek, jakým mohou být například videa, fotky atd. Pata - Patička slouží jako grafický prvek, který opticky ukončuje stránku. Obsahuje také několik odkazů.
Administrační systém Grafický návrh administračního systému je vytvořen v podobném barevném provedení jako celá webová prezentace. Rozdělení hlavních elementů stránky je také podobné a skládá se z následujících tří částí: Hlavička - Tato část stránky obsahuje v levé části logo administračního systému a v pravé části stručné údaje o přihlášeném uživateli včetně možnosti prohlédnutí
6.5
Realizace a implementace změn
74
Obr. 8: Ukázka grafického návrhu úvodní stránky vycházející z drátěného modelu
nebo nastavení vlastního profilu. Také je zde umístěno tlačítko pro odhlášení ze systému. Ovládací panel - Tato část slouží v administračním systému jako navigační menu. Menu bude obsahovat položky odkazující na správu jednotlivých sekcí webové prezentace jako je například videodatabáze nebo fotogalerie. Obsah stránky - Je to poslední část administračního systému, ve které se zobrazují požadované údaje. Tato část bude obsahovat sekundární menu, jehož jednotlivé položky budou sloužit k pokročilejšímu ovládání jednotlivých sekcí, jako je například přidávání nebo zobrazování položek v systému. 6.5.2
Tvorba šablony webové prezentace
Po vytvoření grafického návrhu je možné přejít k samotné tvorbě HTML šablony za pomocí kaskádových stylů a JavaScriptu. Tvorba HTML dokumentu byla reali-
6.5
Realizace a implementace změn
75
Obr. 9: Ukázka grafického návrhu administračního rozhraní
zována pomocí volně dostupného textového editoru PSPad. HTML dokumenty byly vytvořeny s definicí typu dokumentu XHTML 1.0 Strict a dbalo se na dodržování pravidel, která se vztahují na elementy a jejich atributy, aby byla webová prezentace validní podle validátoru W3C. Validitou HTML dokumentů tak bude zajištěna současná i budoucí kompatibilita s webovými standardy. Pro znakovou sadu byl použit standard ISO-8859-2. Současně s kódováním HTML dokumentů bylo nutné vytvářet jejich rozložení v rámci stránek, které bylo zprostředkováno pomocí kaskádových stylů. Jako první bylo vhodné vložit do css souboru pravidla, která mění výchozí hodnoty vlastností některých HTML elementů na nulové. To bylo provedeno z toho důvodu, že různé prohlížeče mají nastaveny různé výchozí hodnoty pro tyto elementy a CSS vlastnosti a jejich přenastavení podle vlastní potřeby by bylo neefektivní. Na internetu je k dispozici mnoho variant těchto stylů. Pro tuto práci byl vybrán styl vytvořený Erikem Meyerem a je volně k dispozici13 . Po přenastavení vlastností těchto elementů bylo v kaskádových stylech definováno několik pravidel pro formátování a rozložení základních elementů na stránce. Byly zde nastaveny styly nadpisů, odkazů, obrázků, zarovnání, šířky jednotlivých sloupců atd. Po provedení tohoto úkonu již bylo přistoupeno k samotné definici konkrétních elementů stránky. V rámci tvorby šablony webové prezentace byl začleněn do jednotlivých stránek kód jazyka JavaScript. Konkrétně byla využívána JavaScriptová knihovna jQuery pro snadnější implementaci. Z velké části zde byly pro ulehčení práce použity již 13
http://meyerweb.com/eric/tools/css/reset/
6.6
Optimalizace systému
76
hotové zásuvné moduly, které jsou volně k dispozici. Jedná se například o samopřevíjecí baner, prohlížení fotek ve fotogalerii nebo validaci formulářů. Velkou výhodou těchto zásuvných modulů jsou rozsáhlé možnosti přizpůsobení a nastavení. Jako příklad lze uvést zásuvný modul pro fotogalerii s názvem AD Gallery14 , jejíž kód je pod značkou Open Source a je volně ke stažení. Tento jQuery modul nabízí mnoho užitečných funkcí a nastavení. Lze zde nastavovat například přechody mezi jednotlivými obrázky, rychlost přechodu atd. Dalšími užitečnými vlastnostmi je přecházení mezi jednotlivými obrázky pomocí navigačních šipek na klávesnici, přednačítání dalších obrázků, zobrazování obsahu atributu alt nebo automatické přizpůsobování velikosti obrázků v zobrazovací části. 6.5.3
Tvorba programového kódu v jazyce PHP
Programový kód celé aplikace je tvořen ve skriptovacím jazyce PHP. Vývojový proces tvorby tohoto systému by se dal z hlediska tvorby softwaru přirovnat k iterativnímu přístupu, kdy dochází k rozložení implementace celého sytému na jednotlivé části a systém je tak realizován krokovým přístupem. V podstatě tvorba programového kódu v jazyce PHP můžeme po tvorbě HTML kódu označit jako další iterace. Při tvorbě aplikační části v jazyce PHP je dodržován objektový přístup. Jednotlivé objekty napsané v jazyce PHP vycházejí z výše uvedeného diagramu tříd. O oddělení aplikační logiky od prezentační se stará již dříve popsaný šablonovací systém Smarty vytvořený také v jazyce PHP. Za zmínění by v této části textu stálo řešení oprávnění v administračním systému. Jak již bylo řečeno, práva budou rozděleny na tři úrovně. Vzhledem k menší velikosti systému a prakticky malého počtu oprávněných uživatelů jsou práva řešeny přímo v jednotlivých funkcích, které se provedou na základě přidělených práv. Pro znázornění, že uživatel nemá oprávnění provádět dané operace, slouží zašednutí tlačítka a nemožnost na něj kliknout, což je realizováno pomocí šablonovacího systému.
6.6
Optimalizace systému
V průběhu implementace a po jejím dokončení je ještě třeba provést optimalizaci informačního systému pomocí výše zmíněných technik. První optimalizace se týkala grafického rozhraní, kde byla snaha o optimalizaci obrázků a ikon pomocí programu Adobe Photoshop. Dále bylo dbáno na průběžné dodržování optimalizačních technik při psaní šablon stylů. Zde našel uplatnění zejména zkrácený zápis hodnot pravidel a použití CSS spritů. Po dokončení implementace celého systému bude možné použít i další optimalizační techniky, jako je například zmenšení velikosti HTML, CSS a JavaScriptových souborů dostupnými optimalizačními nástroji, které byly uvedeny v předešlém textu. 14
http://coffeescripter.com/code/ad-gallery/
7
7
DISKUZE
77
Diskuze
Po návrhu změn, jejich modelování a zahájení implementace lze nyní přistoupit k diskuzi, která shrnuje výsledky práce, její budoucí vývoj a zamýšlí se nad alternativními možnostmi realizace inovace. Analýza systému a specifikace požadavků nejspíš mnoho alternativ nenabízí. Jisté odchylky by se však mohli vyskytnout v návrhu nových změn systému, které však záleží na individuálním cítění a přístupu autora k dané problematice. Co se týče tvorby modelů, také do velké míry záleží na individuálním přístupu a zkušenostech dané osoby. O čem lze však spekulovat, je použití jednotlivých nástrojů pro tvorbu těchto modelů. V této práci byly použity pro tvorbu diagramů a modelů převážně online nástroje, u kterých není nutná žádná instalace na klientský počítač. Výhodou těchto nástrojů lze spatřit v přístupu ke zdrojovým souborům pomocí internetu a možnost modelovat takřka z každého počítače připojeného k internetu, který obsahuje zásuvný modul Adobe Flash Player. Tyto nástroje se v současné době velmi blíží klasickým desktopovým aplikacím a nabízejí řadu možností generování vytvořeného obsahu. Nevýhodu lze najít opět v internetovém připojení. Pokud dojde k nějakému výpadku serveru nebo není počítač připojen k síti, nelze s modely pracovat. Další nevýhodou je to, že tyto online aplikace nejsou vhodné pro rozsáhlé projekty. Tyto problémy řeší desktopové aplikace určené pro tvorbu těchto modelů. Mnoho těchto kvalitních desktopových aplikací však není volně dostupná pro delší používání a je potřeba licence pro jejich instalaci a provozování. Jako zástupce takových aplikací lze uvést například Enterprise Architect od společnosti Sparx System. V oblasti návrhu grafického rozhraní aplikace a tvorbu jeho modelu bude opět záležet na autorově cítění pro design a jeho nápadech spočívajících v rozmístění jednotlivých elementů na stránce. Grafický návrh byl vytvořen pomocí grafického editoru Adobe Photoshop CS5, které je pro práci s grafikou zcela jistě vhodnou volbou. Za alternativu k tomuto nástroji lze do jisté míry považovat volně dostupný grafický editor GIMP. Při převodu grafické podoby do HTML šablony byl použit volně dostupný editor PSPad. Zde je opět na zvážení, zda by nebylo vhodnější použít opět nástrojů od společnosti Adobe a to Adobe Fireworks a Adobe Dreamweaver. Aplikace Adobe Fireworks poskytuje také nástroje potřebné k tvorbě působivé a vysoce optimalizované grafiky pro web a prakticky pro každé zařízení. Do jisté míry lze říci, že jde o vylepšený Photoshop, určený převážně ke tvorbě webové grafiky. Tento program také nabízí generování funkčních modelů webových stránek, které jsou určeny pro ukázky zákazníkům. Samotnou implementaci webové prezentace lze pak provádět pomocí již zmíněného Adobe Dreamweaveru. Jedná se o velice kvalitní software pro vytváření a úpravu webů s bohatými funkcemi vizuální tvorby i přímého psaní kódu pro vytváření standardních webů a návrhů pro počítače, smartphony, tablety a další zařízení. Tato aplikace již podporuje formáty CSS3 a HTML5 a integruje v sobě také knihovnu jQuery. Nepochybně se jedná o velice kvalitní aplikace, avšak tato kvalita je kompenzována cenou. Pokud si však lze tyto aplikace dovolit, jsou jistě dobrou volbou.
7
DISKUZE
78
Co se týče použitého frameworku pro webdesign, byl v diplomové práci použit framework 960 Grid System od Nathana Smitha. Zde lze také nalézt mnoho alternativ, avšak pro tuto práci se jevil nejvhodnější právě 960 Grid System z důvodu jeho jednoduchosti a velkých možností jeho použití. Pro implementaci byl využit šablonovací systém Smarty napsaný v jazyce PHP, který slouží k oddělení prezenční a aplikační logiky. Jako alternativní volbu šablonovacího systému Smarty lze zvolit například systém Dwoo nebo Savant3. Při implementaci by bylo možné také využít některý z PHP frameworků jako je například PHP Cake nebo Zend. Bylo by možné využít i některého z CMS systémů jako je například Wordpress, Joomla nebo Drupal. Implementovaný systém však neoplývá zvlášť velkou složitostí a proto bylo přistoupeno k implementaci vlastními silami. Dalším důvodem byla zbytečná složitost PHP frameworků a CMS systému a také snaha získaní vlastních zkušeností s implementací systému. V budoucnu by bylo vhodné systém rozšířit o statistické vyhodnocování přístupů na stránky. Toho by mohlo být dosaženo vlastní implementací, což by však vyžadovalo jisté úsilí. Alternativou by mohlo být použití například Google Analytics. Jako další rozšíření by bylo vhodné zavést generování pdf dokumentů se seznamy vyrobených a poskytovaných video dokumentů.
8
8
ZÁVĚR
79
Závěr
Jak bylo uvedeno v úvodu tohoto dokumentu, cílem této práce byla inovace interního informačního systému Audiovizuálního centra Mendelovy univerzity v Brně. Podařilo se analyzovat současný stav systému, navrhnout změny a následně je namodelovat. Po těchto změnách bylo přistoupeno ke tvorbě grafického modelu a jeho převedení do webové šablony, do které se povedlo také začlenit prvky knihovny jQuery. Největší změna viditelná zvenčí se tedy týká grafického rozhraní a způsobu ovládání systému. Dále se podařilo zahájit implementaci aplikačního kódu v jazyce PHP a také se podařilo tento kód propojit se šablonovacím systémem Smarty vytvořeném rovněž v jazyce PHP, což vede k oddělení aplikační logiky od prezentační. Tyto kroky vedly k naplnění cíle této diplomové práce. Nyní už jen zbývá dokončit celou implementaci, dooptimalizovat systém pro výkon pomocí výše uvedených technik a jeho nové nasazení. Po analýze, modelování, tvorbě webové šablony bylo tedy přistoupeno k implementaci, na které se průběžně pracuje. Programová část aplikace je implementována pomocí skriptovacího jazyka PHP a databázového systému MySQL na serveru Apache. Server, na kterém systém poběží, je v plné správě Audiovizuálního centra a je umístěn v areálu Mendelovy univerzity v Brně. Rozpracovaná testovací verze systému je k dispozici na http://avc.mendelu.cz/beta_test/ a jeho administrační část na http://avc.mendelu.cz/beta_test/admin/. Příhlašovací jméno je admin a heslo admin. Současné stránky audiovizuálního centra jsou pak dostupné na http://avc.mendelu.cz/.
9
9
LITERATURA
80
Literatura
Ambler, S. W., UML 2 Class Diagrams [online]. 2010 [cit. 21. 4. 2011]. Dostupné z WWW: http://www.agilemodeling.com/artifacts/classDiagram.htm. Arandilla, R., Different Image Formats 8211; And When to Use Them [online]. 15. 3. 2011 [cit. 20. 4. 2011]. Dostupné z WWW: http://www.1stwebdesigner. com/design/different-image-formats/. Arlow, J., Neustadt, I., UML2 a unifikovaný proces vývoje aplikací: Průvodce analýzou a návrhem objektově orientovaného softwaru. Brno: Computer Press, 2007. 567 s. ISBN 978-80-251-1503-9. Castagnetto, J., Harish, R., Sascha, S., Chris, S., Deepak, V. PHP Programujeme profesionálně. Brno: Computer Press, 2002. 656 s. ISBN 80-7226310-2. Dash, R., Which CSS Grid Framework Should You Use for Web Design? [online]. 21. 5. 2008 [cit. 11. 4. 2011]. Dostupné z WWW: http://net.tutsplus.com/tutorials/html-css-techniques/ which-css-grid-framework-should-you-use-for-web-design/. Diaz, D., CSS Shorthand Guide [online]. 22. 10. 2005 [cit. 9. 5. 2011]. Dostupné z WWW: http://www.dustindiaz.com/css-shorthand/. Druska, P., CSS a XHTML: tvorba dokonalých webových stránek krok za krokem. Praha: Grada, 2006. 200 s. ISBN 80-247-1382-9. Hillyer, M., An Introduction to Database Normalization [online]. 2010 [cit. 18. 4. 2011]. Dostupné z WWW: http://dev.mysql.com/ tech-resources/articles/intro-to-normalization.html. Hozík, M. Úvod do platformy Adobe Flash [online]. 2011 [cit. 28. 3. 2011]. Dostupné z WWW: http://flash.jakpsatweb.cz/adobe-flash/. Kofler, M., Öggl, B. PHP 5 a MySQL 5: Průvodce webového programátora. Brno: Computer Press, 2007. 608 s. ISBN 978-80-251-1813-9. Lennartz, S., The Mystery Of CSS Sprites: Techniques, Tools And Tutorials [online]. 27. 4. 2010 [cit. 25. 4. 2011]. Dostupné z WWW: http://www.smashingmagazine.com/2009/04/27/ the-mystery-of-css-sprites-techniques-tools-and-tutorials/. Meyer, E., CSS Tools: Reset CSS [online]. 2011 [cit. 8. 5. 2011]. Dostupné z WWW: http://meyerweb.com/eric/tools/css/reset/. Miller, R., The Google CDN [online]. 2008 [cit. 23. 4. 2011]. Dostupné z WWW: http://www.datacenterknowledge.com/archives/2008/12/15/ the-google-cdn/.
9
LITERATURA
81
Mozilla Developer Network About JavaScript [online]. 24. 12. 1999 [cit. 28. 3. 2011]. Dostupné z WWW: https://developer.mozilla.org/en/ JavaScript/About_JavaScript. Mozilla Developer Network: Webové standardy [online]. 22. 2. 2010 [cit. 24. 3. 2011]. Dostupné z WWW: https://developer.mozilla.org/ index.php?title=cs/Webove_standardy. New Digital Group, Inc.: About Smarty [online]. 2010 [cit. 10. 4. 2011]. Dostupné z WWW: http://www.smarty.net/about_smarty. Odell, D. JavaScript: Průvodce programováním ajaxových aplikací. Brno: Computer Press, 2010. 368 s. ISBN 978-80-251-2733-9. Raggett, D., Clean up your Web pages with HTML TIDY [online]. 2011 [cit. 20. 4. 2011]. Dostupné z WWW: http://www.w3.org/People/Raggett/ tidy/. Schaeffer, K., CSS Font-Size: em vs. px vs. pt vs. percent [online]. 30. 8. 2008 [cit. 18. 4. 2011]. Dostupné z WWW: http://kyleschaeffer.com/ best-practices/css-font-size-em-vs-px-vs-pt-vs/. Sharp J., Burns R., Murphey R., Flesler A., Lindsey C., Sharp R., Hostetler M., Whitbeck R., Smith N., Cherne B., Zaefferer J., Padollsey J., González S., Gray M., Wachs M., Jehl S., Parker T., Toland P., Worth R. D. jQuery Kuchařka programátora. Brno: Computer Press, 2010. 440 s. ISBN 978-80-251-3152-7. Smith N., 960 Grid System [online]. 2011 [cit. 11. 4. 2011]. Dostupné z WWW: http://www.960.gs. Snell, S., Clear And Effective Communication In Web Design [online]. 3. 2. 2009 [cit. 11. 4. 2011]. Dostupné z WWW: http://www.smashingmagazine.com/ 2009/02/03/clear-and-effective-communication-in-web-design/. Sodomka, P., Informační systémy v podnikové praxi. Brno: Computer Press, 2006. 352 s. ISBN 80-251-1200-4. Sparx Systems, UML Tutorial [online]. 2011 [cit. 8. 5. 2011]. Dostupné z WWW: http://www.sparxsystems.com/uml-tutorial.html. The Dojo Foundation Dojo ShrinkSafe - the safe way to make your JS sprightly [online]. 2011 [cit. 23. 4. 2011]. Dostupné z WWW: http://shrinksafe. dojotoolkit.org/. The jQuery Project: jQuery [online]. 2010 [cit. 24. 3. 2011]. Dostupné z WWW: http://jquery.com/.
9
LITERATURA
82
Thomas, J., Web Design Trends in 2011 [online]. 4. 1. 2011 [cit. 20. 4. 2011]. Dostupné z WWW: http://www.webdesignledger.com/tips/ web-design-trends-in-2011. Vymětal, D., Informační systémy v podnicích: Teorie a praxe projektování. Praha: GRADA, 2009. 144 s. ISBN 978-80-247-3046-2. W3C Document Type Definition [online]. 24. 12. 1999 [cit. 28. 3. 2011]. Dostupné z WWW: http://www.w3.org/TR/html401/sgml/dtd.html. W3C Frameset Document Type Definition [online]. 24. 12. 1999 [cit. 28. 3. 2011]. Dostupné z WWW: http://www.w3.org/TR/html401/sgml/framesetdtd.html. W3C Transitional Document Type Definition [online]. 24. 12. 1999 [cit. 28. 3. 2011]. Dostupné z WWW: http://www.w3.org/TR/html401/sgml/loosedtd.html. W3C Web Content Accessibility Guidelines (WCAG) 2.0 [online]. 11. 12. 2008 [cit. 2. 5. 2011]. Dostupné z WWW: http://www.w3.org/TR/WCAG20/. w3schools Differences Between XHTML And HTML [online]. 2011 [cit. 26. 3. 2011]. Dostupné z WWW: http://www.w3schools.com/XHTML/ xhtml_html.asp. Wempen, F. HTML a CSS krok za krokem. Brno: Computer Press, 2007. 328 s. ISBN 978-80-251-1505-3.
Přílohy
A
A
CSS RESET
CSS reset
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after {
84
A
CSS RESET
content: ’’; content: none; } table { border-collapse: collapse; border-spacing: 0; }
85
B
DEFINOVÁNÍ ZÁKLADNÍCH TŘÍD V CSS
B
86
Definování základních tříd v CSS
.none .hidden .fl .fr .left .right .center .bold .italic .nomargin img
{ { { { { { { { { { {
display: none;} visibility: hidden;} float: left !important;} float: right !important;} text-align: left;} text-align: right;} text-align: center;} font-weight: bold;} font-style: italic;} margin: 0 !important;} border: none;}
/* -- Headlines -- */ h1, h2, h3 { font-weight: normal; } h1 { font-size: 2em; color: #fff; margin: 0 0 25px; } h1.subpage-title { font-size: 2.750em; font-weight: bold; padding-top: 27px; } h2 { font-size: 1.833em; color: #505050; margin: 0 0 20px; text-align: left; } h2.big { font-size: 2.5em; color: #0063a8; font-weight: bold; } h3 { font-size: 1.5em; color: #78be14; margin: 5px 0 10px; } /* -.cols .cols .cols
Cols layout -- */ { overflow: hidden; height: 100%; clear: both; } .col1 { float: left; } .col2 { float: left; }
.cols50 .col1 { float: left; width: 47% !important; } .cols50 .col2 { float: right; width: 47% !important; } .cols3 .cols3 .cols3 .cols3
.col1, .col2, .col3 { width: 33%; } .col3 { float: right; }
.cols4 .cols4 .cols4 .cols4
.col1, .col2, .col3, .col4 { float: left; width: 25%; }
.cols2v1 .col1 { width: 64%; margin-right: 4%; } .cols2v1 .col2 { width: 31%; }
B
DEFINOVÁNÍ ZÁKLADNÍCH TŘÍD V CSS
87
.cols1v2 .col1 { width: 31%; margin-right: 4%; margin-bottom: 20px;} .cols1v2 .col2 { width: 64%; margin-bottom: 20px;} hr { height: 1px; border: none; background-color: #f0f0f0; } a { color: #505050;}
C
C
VYBRANÉ UKÁZKY APLIKACE
Vybrané ukázky aplikace
Obr. 10: Ukázka ze sekce Fotogalerie
88
C
VYBRANÉ UKÁZKY APLIKACE
Obr. 11: Ukázka ze sekce Ke stažení - stažení loga
89
C
VYBRANÉ UKÁZKY APLIKACE
Obr. 12: Ukázka ze sekce Kontakt
90