1 MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Návrh a implementace redakčního systému pro weby obcí Bakalářská práce Stanislav Jahoda 20102 Prohlášení P...
Návrh a implementace redakčního systému pro weby obcí Bakalářská práce Stanislav Jahoda
2010
Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Vedoucí práce: prof. RNDr. Jiří Hřebíček, CSc.
iii
Shrnutí Bakalářská práce se zabývá tvorbou webových stránek obcí. V první části práce jsou probrány legislativní požadavky na webové stránky obcí a požadavky na přístupnost webu. Hlavním tématem práce je analýza a implementace redakčního systému, který je od samotných webových stránek oddělen vlastním webovým rozhraním. Poslední část práce se týká implementace webové šablony a testu redakčního systému při vytvoření webu obce Pašovice.
iv
Klíčová slova veřejná správa obce, legislativní požadavky, přístupnost, redakční systém, webové stránky, bezpečnost, webdesign
v
Obsah 1 Úvod.........................................................................................................................................1 2 Legislativní požadavky............................................................................................................3 2.1 Číslo předpisu 23/1991 Sb. Listina základních práv a svobod........................................3 2.2 Číslo předpisu 106/1999 Sb. o svobodném přístupu k informacím ...............................3 2.3 Číslo předpisu 365/2000 Sb. o informačních systémech veřejné správy........................5 2.4 Číslo předpisu 442/2006 Sb. struktura informací zveřejňovaných o povinném subjektu ................................................................................................................................................5 2.5 Číslo předpisu 500/2004 Sb. správní řád ........................................................................6 2.6 Číslo předpisu 64/2008 Sb. vyhláška o přístupnosti ......................................................7 3 Přístupnost................................................................................................................................8 3.1 Přístupný web..................................................................................................................8 3.2 Skupiny handicapovaných uživatelů...............................................................................8 „Zrakově postižení........................................................................................................8 Sluchově postižení........................................................................................................9 Pohybově postižení.....................................................................................................10 Uživatelé se zobrazovacími problémy........................................................................10 Uživatelé s poruchami učení a soustředění.................................................................10 Roboti..........................................................................................................................10 3.3 Jak na přístupný web.....................................................................................................11 3.4 Pravidla tvorby přístupného webu.................................................................................11 3.4.1 Tematické okruhy pravidel přístupnosti..................................................................11 3.5 WCAG 2.0 (Web Content Accessibility Guidelines 2.0)..............................................12 3.5.1 Hlavní okruhy WCAG 2.0......................................................................................12 3.6 Blind Friendly Web.......................................................................................................12 4 Přehled stávajících redakčních systémů.................................................................................13 4.1 Komerční systémy.........................................................................................................13 4.1.1 Základní funkcionalita RS vismo Online ..............................................................13 Doplňkové moduly RS vismo Online.........................................................................14 Cena za pořízení a provoz RS vismo Online..............................................................14 Hodnocení RS vismo Online......................................................................................14 4.1.2 Základní funkcionalita RS ANTEE........................................................................14 Doplňkové moduly RS ANTEE.................................................................................15 Cena za pořízení a provoz RS ANTEE.......................................................................15 Hodnocení RS ANTEE...............................................................................................15 Přestupky proti přístupnému webu RS ANTEE.........................................................15 4.2 Redakční systémy zdarma.............................................................................................16 4.2.1 Druhy licencí..........................................................................................................16 4.2.2 Nejlepší RS zdarma................................................................................................16 5 Analýza a návrh redakčního systému.....................................................................................17 5.1 Analýza funkčních požadavků RS.................................................................................17 5.2 Seznam událostí a uživatelské role................................................................................17 5.3 Diagram datových toků (DFD ‒ Data Float Diagram).................................................19 vi
5.3.1 První úroveň dekompozice kontextového diagramu..............................................19 5.3.2 Druhá úroveň dekompozice ‒ systém pro správu webu.........................................20 5.3.3 Druhá úroveň dekompozice ‒ webové stránky......................................................21 5.4 Diagram entit a vztahů (ERD ‒ Entity Relationship Diagram)....................................22 6 Funkce redakčního systému...................................................................................................23 6.1 Vkládání stránek............................................................................................................23 6.1.1 Editace menu..........................................................................................................23 6.1.2 Vkládání a editace volné stránky............................................................................23 6.2 Vkládání souborů...........................................................................................................24 6.3 Aktuality.........................................................................................................................24 6.4 Fotogalerie......................................................................................................................24 6.5 Úřední deska...................................................................................................................25 6.6 Kontaktní údaje obce......................................................................................................25 6.7 Užitečné odkazy.............................................................................................................25 6.8 Ankety............................................................................................................................25 6.9 Diskuzní fórum...............................................................................................................25 6.10 Uživatelské účty...........................................................................................................26 6.10.1 Běžný uživatel......................................................................................................26 6.10.2 Administrátor........................................................................................................26 6.10.3 Správce diskuze....................................................................................................26 7 Návrh webových stránek pro redakční systém......................................................................27 8 Zabezpečení redakčního systému...........................................................................................28 8.1 Přihlašování do RS.........................................................................................................28 8.1.1 SQL injection .........................................................................................................28 Opatření proti SQL injection.......................................................................................29 8.1.2 HTML injection......................................................................................................29 Opatření proti HTML injection...................................................................................29 8.1.3 Session Fixation......................................................................................................29 Opatření proti Session Fixation..................................................................................29 9 Grafický návrh a jeho testování.............................................................................................30 9.1 Webové stránky..........................................................................................................30 9.2 CMS systém...............................................................................................................30 9.3 Grafický návrh očima zrakově postižených uživatelů...................................................31 10 Závěr....................................................................................................................................33 Použitá literatura..................................................................................................................34 Příloha č.1 ............................................................................................................................35 Struktura informací zveřejňovaných o povinném subjektu.............................................35 Příloha č.2.............................................................................................................................44 Pravidla tvorby přístupného webu...................................................................................44 Příloha č.3.............................................................................................................................47 Přiložené CD obsahuje....................................................................................................47
vii
Kapitola 1
Úvod V dnešní době se i nejmenší firmy, obce a jiné instituce chtějí dostat do světa internetu. Jednou z cest je vlastnit webové stránky. Existuje mnoho způsobů vytvoření webových stránek, ne všechny však vedou k uspokojivému výsledku. Hlavním cílem tvorby webové prezentace je informace, kterou chceme prostřednictvím webu sdělit. Cílem této práce je seznámit čtenáře s problematikou analýzy i praktické implementace redakčního systému (dále jen RS) pro správu stránek obce. Obec jako orgán veřejné správy má svá vlastní specifika, která jsou v práci probrána. Během vlastního řešení byla testována uživatelská dostupnost, funkcionalita a celkový vzhled stránek. Obsah webu je tematicky rozdělen do podstránek, které přehledně oddělují politické, kulturní a sportovní dění v obci. Pro jednoduchou aktualizaci obsahu jednotlivých sekcí byly vytvořeny šablony, které využívají databáze a soubory uložené v daném adresářovém systému. Jako příklad může sloužit automatické generování fotogalerie, načítané z adresáře. Již při prvním pohledu na zadané stránky je nutné si uvědomit, že se nejedná o tvorbu webu pro úzkou skupinu lidí, ale pro širokou veřejnost a dané stránky tomu musí být přizpůsobeny. Vedle zákonem povinně zveřejňovaných informací mají být návštěvníci informováni o aktuálním dění obce, což programátorovi nedává možnost použít jednoduché statické stránky. Nelze také počítat s tím, že člověk, který bude aktualizací webu pověřen, bude mít potřebné znalosti značek HTML [1], které jsou nezbytné pro psaní jednoduchých stránek. Řešením může být redakční systém napsaný pomocí skriptovacího jazyk PHP [2], JavaScriptu [3] a databáze MySQL [4], která zajistí dynamický chod webu. Druhá kapitola této práce začíná analýzou nezbytných a legislativou daných požadavků na obsah webu veřejné správy obce, které vychází už z Listiny základních práv a svobod. Kapitola třetí seznamuje s principy a standardy, které se týkají přístupného webu [5], a to ve vztahu k osobám se speciálními potřebami a osobám se zrakovým či pohybovým postižením. Znalost uvedených zásad dává jistou nezávislost na tom, jaká je na straně klienta použita technologie a v jakých podmínkách web pracuje. Kapitola čtvrtá pojednává o existujících komerčních i volně stažitelných RS. Srovnává funkcionalitu a cenovou dostupnost RS. Z open source RS si vysvětlíme základní typy licencí a vyjmenujeme nejlepší bezplatné RS. Kapitola pátá až devátá aplikuje předchozí poznatky na samotnou analýzu a návrh tvořeného RS. Tyto kapitoly zahrnují procesní a datové modely strukturované analýzy, popis funkcí RS, zabezpečení RS proti vybraným druhům útoků a nakonec analýzu a testování grafických požadavků webových stránek.
1
Úvod Výsledkem teoretické části je obeznámení čtenáře s problematikou navrhování a zavádění webových stránek obce. Čtenář získává základní představu o webu a systému pro jeho správu. Výsledkem praktické části je funkční redakční systém a jeho test při zavedení webových stránek obce Pašovice. Webové stránky jsou tvořeny na základu spolupráce se starostou obce. Jejich základním cílem je odstranění nedostatků stávajícího webu a vytvoření dobrého základu pro možnosti rozšíření o katalog obecní knihovny.
2
Kapitola 2
Legislativní požadavky Tvorba webových stránek je spojena s řadou pravidel, metodik a doporučení. V případě webů obcí jsou tyto zásady doprovázeny také řadou zákonů a nařízení, o kterých tato kapitola pojednává. S ohledem na velké množství takových zákonů jsou vybrány pouze ty, které jsou přímo spojeny se samotnými stránkami obce, a tudíž nepřímo spojeny s návrhem redakčního systému. Vedle obecných zákonů vycházejících například z Listiny základních práv a svobod můžeme legislativní požadavky na weby obcí rozdělit na další dvě úrovně. První úrovní jsou obsahové požadavky neboli informace, které musí obce jako orgán územní samosprávy povinně zveřejňovat. Druhou úrovní je předepsaná forma a způsob nakládání s těmito informacemi.
2.1
Číslo předpisu 23/1991 Sb. Listina základních práv a svobod
Kořenem pomyslného stromu legislativních požadavků je samotná Listina základních práv a svobod. Části, které se dotýkají tématiky informačních zdrojů, jsou obsaženy ve článku 17 a 35. „Čl.17 (1) Svoboda projevu a právo na informace jsou zaručeny. (1) Svoboda projevu a právo na informace jsou zaručeny. (5) Státní orgány a orgány územní samosprávy jsou povinny přiměřeným způsobem poskytovat informace o své činnosti. Podmínky a provedení stanoví zákon. Čl.35 (1) Každý má právo na příznivé životní prostředí. (2) Každý má právo na včasné a úplné informace o stavu životního prostředí a přírodních zdrojů.“
2.2
Číslo předpisu 106/1999 Sb. o svobodném přístupu k informacím
Zákon o svobodném přístupu k informacím, který nabyl účinnosti 1. ledna 2000, realizuje a rozvádí práva vycházející z Listiny základních práv a svobod. „§ 2 Povinnost poskytovat informace (1) Povinnými subjekty, které mají podle tohoto zákona povinnost poskytovat informace vztahující se k jejich působnosti, jsou státní orgány, územní samosprávné celky a jejich orgány a veřejné instituce.
3
2.2 Číslo předpisu 106/1999 Sb. o svobodném přístupu k informacím § 3 Základní pojmy (1) Žadatelem pro účel tohoto zákona je každá fyzická i právnická osoba, která žádá o informaci. (2) Možností dálkového přístupu pro účel tohoto zákona je přístup k informaci neomezeného okruhu žadatelů pomocí sítě nebo služby elektronických komunikací2). (3) Informací se pro účely tohoto zákona rozumí jakýkoliv obsah nebo jeho část v jakékoliv podobě, zaznamenaný na jakémkoliv nosiči, zejména obsah písemného záznamu na listině, záznamu uloženého v elektronické podobě nebo záznamu zvukového, obrazového nebo audiovizuálního. (4) Informací podle tohoto zákona není počítačový program. (5) Zveřejněnou informací pro účel tohoto zákona je taková informace, která může být vždy znovu vyhledána a získána, zejména vydaná tiskem nebo na jiném nosiči dat umožňujícím zápis a uchování informace, vystavená na úřední desce, s možností dálkového přístupu nebo umístěná v knihovně poskytující veřejné knihovnické a informační služby podle knihovního zákona2a). (6) Doprovodnou informací pro účel tohoto zákona je taková informace, která úzce souvisí s požadovanou informací (například informace o její existenci, původu, počtu, důvodu odepření, době, po kterou důvod odepření trvá a kdy bude znovu přezkoumán, a dalších důležitých rysech).
§ 2 písm. h) a n) zákona č. 127/2005 Sb., o elektronických komunikacích a o změně některých souvisejících zákonů (zákon o elektronických komunikacích). § 4 Poskytování informací (1) Povinné subjekty poskytují informace žadateli na základě žádosti nebo zveřejněním. (2) Informace poskytovaná zveřejněním se poskytuje ve všech formátech a jazycích, ve kterých byla vytvořena. Pokud je taková informace zveřejněna v elektronické podobě, musí být zveřejněna i ve formátu, jehož specifikace je volně dostupná a použití uživatelem není omezováno.
4
2.2 Číslo předpisu 106/1999 Sb. o svobodném přístupu k informacím § 5 Zveřejňování informací (4) Povinné subjekty jsou povinny zveřejňovat informace uvedené v odstavci 1 a 2 též způsobem umožňujícím dálkový přístup. Tato povinnost se nevztahuje na povinné subjekty, které jsou pouze fyzickými osobami. V případě informací uvedených v odstavci 2 písm. a) postačuje ke splnění této povinnosti uvedení odkazu na místo, kde jsou tyto informace již zveřejněny způsobem umožňujícím dálkový přístup. Strukturu zveřejňovaných informací stanoví prováděcí právní předpis.“
2.3
Číslo předpisu 365/2000 Sb. o informačních systémech veřejné správy
Tato sbírka zákonů nabyla účinnosti 23. října 2000 a definuje pojmy týkající se vývoje a užívání informačního systému. Stanovuje pravidla pro kontrolu dodržování povinností orgánů veřejné správy, lhůty pro odstranění nedostatků informačního systému, určuje práva a povinnosti správce systému a jiné. Pro účely tvorby redakčního systému jsou vypsány dvě části této sbírky, které zásadním způsobem ovlivňují jeho vývoj. „§ 5 Orgány veřejné správy (2) Orgány veřejné správy jsou v rámci informačních systémů veřejné správy povinny … f) postupovat při uveřejňování informací způsobem umožňujícím dálkový přístup tak, aby byly informace související s výkonem veřejné správy uveřejňovány ve formě, která umožňuje, aby se s těmito informacemi v nezbytném rozsahu mohly seznámit i osoby se zdravotním postižením. Formu uveřejnění informací stanoví prováděcí právní předpis; § 5b nadpis vypuštěn Orgány veřejné správy uplatňují opatření odpovídající bezpečnostním požadavkům na zajištění důvěrnosti, integrity a dostupnosti informací zpracovávaných v informačních systémech veřejné správy.“
2.4
Číslo předpisu 442/2006 Sb. struktura informací zveřejňovaných o povinném subjektu
Tato vyhláška nabývá účinnosti 1. ledna 2007 a v rámci této práce se stává důležitým vodítkem analýzy funkcí redakčního systému. Uvádí strukturu zveřejňovaných informací způsobem umožňující dálkový přístup. Při návrhu redakčního systému byly na základě první přílohy této vyhlášky vytvořeny šablony pro naplnění aktualit, úřední desky, kontaktních údajů obce a další. Z tohoto důvodu je kompletní výpis zveřejňovaných informací uveden v bakalářské práci jako příloha č.1.
5
2.4 Číslo předpisu 442/2006 Sb. struktura informací zveřejňovaných o povinném subjektu Další částí této vyhlášky je příloha č.2 Osnova popisu postupu. Tyto postupy se však přímo netýkají návrhu redakčního systému, a proto jsem se rozhodl danou přílohu neuvádět. „§ 2 Struktura informací zveřejňovaných o povinném subjektu (1) Povinný subjekt zveřejňuje informace ve struktuře, v pořadí, s označením a uvozovacím textem podle přílohy. (2) V případě územních samosprávných celků, jejichž součástí je více povinných subjektů, se informace zveřejňují pouze jednou. § 3 Osnova popisu postupů, které povinný subjekt dodržuje (1) Povinný subjekt zveřejňuje popisy postupů podle osnovy uvedené v příloze č. 2. Popisy postupů zveřejňuje v pořadí, s číslem a uvozovacím textem podle přílohy č. 2. (2) Popis postupu podle přílohy č. 2 zveřejňuje povinný subjekt tak, aby jej bylo možno zobrazit v rozsahu: a) základních informací, které tvoří položky č. 3 až 8, 10 až 16, 28 a 29 osnovy popisu postupu, b) rozšířených informací, které tvoří základní informace podle písmene a) a položky č. 9, 17, 19, 20, 23 a 24 osnovy popisu postupu, c) úplných informací, a aby bylo možné tyto jednotlivé celky informací zobrazit samostatně.“
2.5
Číslo předpisu 500/2004 Sb. správní řád
Poslední uvedený legislativní výňatek, který je spojen s šablonami redakčního systému, je úřední deska ze sbírky 500/2004 Sb. správní řád a ukládá povinnost zřízení úřední desky na internetu. „§ 26 Úřední deska (1) Každý správní orgán zřizuje úřední desku, která musí být nepřetržitě veřejně přístupná. Pro orgány územního samosprávného celku se zřizuje jedna úřední deska. Obsah úřední desky se zveřejňuje i způsobem umožňujícím dálkový přístup. (3) Není-li správní orgán schopen zajistit zveřejnění obsahu úřední desky způsobem umožňujícím dálkový přístup podle odstavce 1, uzavře osoba uvedená v § 160 odst. 1, jejíž je tento správní orgán součástí, s obcí s rozšířenou působností, v jejímž správním obvodu má sídlo, veřejnoprávní smlouvu (§ 160) o zveřejňování obsahu úřední desky způsobem umožňujícím dálkový přístup.
6
2.5 Číslo předpisu 500/2004 Sb. správní řád (4) Nedojde-li k uzavření veřejnoprávní smlouvy podle odstavce 3, postupuje se v případě obecního úřadu podle zvláštního zákona.18) V případě jiného správního orgánu rozhodne nadřízený správní orgán, že pro něj bude tuto povinnost vykonávat sám nebo že jejím vykonáváním pověří jiný podřízený věcně příslušný správní orgán ve svém správním obvodu. Rozhodnutí nadřízeného správního orgánu se zveřejní nejméně po dobu 15 dnů na úřední desce správního orgánu, který povinnost neplnil. 18) § 65 zákona č. 128/2000 Sb., ve znění zákona č. 313/2002 Sb.“
2.6
Číslo předpisu 64/2008 Sb. vyhláška o přístupnosti
Na závěr je uvedena vyhláška, která se přímo vztahuje k pravidlům přístupnosti a je z pohledu tvůrce webu tou nejdůležitější. „§ 1 (1) Forma uveřejňování informací, která zajistí, aby se s informacemi souvisejícími s výkonem veřejné správy uveřejňovanými způsobem umožňujícím dálkový přístup mohly v nezbytném rozsahu seznámit i osoby se zdravotním postižením, je uvedena v příloze k této vyhlášce. (2) Pokud orgán veřejné správy uveřejňuje informace podle odstavce 1 i ve verzi, která není v souladu s formou uveřejňování informací podle této vyhlášky, umožní z webových stránek, na nichž se taková verze nachází, přístup k webovým stránkám, které požadavky podle této vyhlášky splňují, způsobem, který je pro osoby se zdravotním postižením bez obtíží proveditelný. §2 Tato vyhláška nabývá účinnosti dnem 1. března 2008.“ Forma uveřejňování informací je uvedena v druhé příloze této práce. Celé znění uvedených sbírek zákonů lze nalézt na internetových stránkách Portálu veřejné správy České republiky [6].
7
Kapitola 3
Přístupnost V kapitole legislativních požadavků jsme narazili na důležitý pojem přístupnost. Co je to přístupnost, jaké skupině uživatelů slouží a jakým způsobem lze této vlastnosti dosáhnout, se dozvíme v následující kapitole. Přístupnost je obecný pojem, který není nutné dlouze vysvětlovat. Jedná se o umožnění užívání daného zdroje nebo předmětu všemi skupinami lidí, kteří o tyto zdroje mají zájem nebo je ke svému běžnému životu jednoduše potřebují. Pro okolní svět je nejviditelnějším příkladem přístupnosti budování bezbariérových přístupů veřejných budov, městské hromadné dopravy a dalších. Víme tedy, že přístupnost se týká především skupiny lidí s různými zdravotními problémy, jako je například zrakové nebo pohybové postižení.
3.1
Přístupný web
Jak je to tedy s pojmem přístupný web? Jak všichni dobře víme, zrakové či pohybové postižení je jen zlomkem všech dalších handicapů, se kterými se můžeme v dnešní moderní společnosti setkat. Podíváme-li se na pojem přístupnosti z pohledu dnešního fenoménu ‒ Internetu, rozroste se nám skupina handicapovaných uživatelů enormním způsobem. V okamžiku vstupu do světa webových stránek a internetových aplikací se mnoho lidí dostává do této skupiny uživatelů, a to i navzdory tomu, že se v běžném životě nemusí potýkat se zdravotním postižením. Přístupný web je tedy takový web, který své informace předává tak, že jeho forma, struktura nebo požadavky na zvláštní technické vybavení nediskriminují jeho návštěvníky a nestaví jim do cesty žádné překážky k jeho užívání.
3.2
Skupiny handicapovaných uživatelů
S pojmem přístupný web je spojen seznam 33 pravidel, které jsou jistou zárukou toho, že se k danému webu dostanou uživatelé všech handicapovaných skupin. Důvod, proč je pravidel přístupnosti tolik, je množství a různorodost těchto skupin. Cílem této práce není analýza skupin takto postižených lidí. Tato znalost k vývoji redakčního systému obce ale neodmyslitelně patří a pro úplnost si tyto skupiny uvedeme. Kompletní popis definovaných skupin uživatelů citovaných v této podkapitole lze nalézt na webovém portálu [7]. Pro účel této práce jsem se rozhodl uvést pouze zkrácené výňatky. „Zrakově postižení Zrakově postižení uživatelé bývají velmi často považování za jedinou skupinu hendikepovaných uživatelů Internetu. Je sice pravda, že díky svému postižení na ně nepřístupnost některých stránek dopadá nejvíce, ale svým počtem rozhodně nepatří ke většině.
8
3.2 Skupiny handicapovaných uživatelů Mezi zrakově postižené řadíme: Zcela nevidomí a jinak těžce zrakově postižení Uživatelé, kteří nemohou obsah číst svým zrakem, používají pro prezentaci obsahu pomocná zařízení, jako jsou hlasové čtečky (taktéž nazývány hlasovým výstupem) nebo braillský řádek. Tyto pomůcky dokáží interpretovat pouze text a z tohoto faktu vyplývá i jejich základní potřeba: obsah musí být formou dobře strukturovaného textu, grafické a multimediální prvky musí mít textové alternativy, navigace musí být použitelná apod. Slabozrací Slabozrací uživatelé mohou svůj zrak používat, byť jen omezeně. Jejich základní potřebou je možnost s obsahem stránky manipulovat. Většinou ho zvětšovat. Tito uživatelé tedy především potřebují možnosti si zvětšit text, a to tak, aby zůstal vůči svému okolí i nadále čitelný. Barvoslepí Někteří uživatelé mají problém rozeznávat od sebe některé škály barev. Nastane-li tento problém u barvy pozadí a popředí na webové stránce, stává se taková stránka nepřístupnou. Hlavní potřebou takových uživatelů je tedy to, aby barvy na stránce měly dostatečný kontrast a v rámci důležitého obsahu se na konkrétní barvu nespoléhalo vůbec. Uživatelé s dočasně zhoršenou možností vidět Na tuto skupinu se v rámci debat o přístupnosti zapomíná rovněž velmi často, ačkoliv se v této roli může ocitnout každý z nás. Nejde ani tak o to, že bychom měli dočasně poškozený zrak, ale spíše o aktuální světelné a zobrazovací podmínky. Většina z nás zažila situaci, kdy nám do monitoru svítilo ostré slunce a barvy náhle radikálně změnily svůj tón. Nebo jsme třeba byli nuceni pracovat na starém vybledlém monitoru, kde je problém rozeznat hnědou od červené. V takovém případě se opět velmi vyplatí, pokud tvůrce webové stránky myslel na dostatečný kontrast barev a v nejdůležitějších případech na barvu nespoléhal vůbec.
Sluchově postižení Sluchově postižených uživatelů Internetu je celá řada a na většině stránek nemají žádné problémy. Je to především proto, že web naštěstí stále ještě více spoléhá na vizuální složku prezentace a zvuk se příliš nepoužívá.
9
3.2 Skupiny handicapovaných uživatelů Pohybově postižení Tito uživatelé mají zásadní problém v tom, že nemohou používat myš. Je důležité si uvědomit, že to jsou jak uživatelé, kteří jsou tímto hendikepem postiženi trvale a své horní končetiny nemohou efektivně používat stále, tak uživatelé, kteří mají tento problém jen dočasně. Například mají ruku v sádře kvůli zlomenině apod. Uživatelé se zobrazovacími problémy Uživatelé alternativních browserů Většinou se tato skupina odbyde s tím, že používání browseru je otázkou volby. Není to však pravda. Existuje početná skupina uživatelů, kteří tuto volbu nemají a některý browser prostě využívat musí. Jsou to například programátoři v operačním systému Linux, kde nefunguje MS Internet Explorer apod. Jde o to, aby byla i v minoritních prohlížečích možná základní funkčnost a použitelnost. Uživatelé jiných zobrazovacích zařízení Různých druhů počítačů je již dnes celá řada a jejich počet bude nadále narůstat. Śkála je široká - od velkých stolních počítačů, přes klasické notebooky, malé minibooky až po kapesní počítače (PDA). Škála zobrazovacích zařízení je tedy skutečně široká a správně udělané webové stránky by měly fungovat na všech.
Uživatelé s poruchami učení a soustředění Pro dyslektiky, osoby s poruchami soustředění a jiné podobně postižené uživatele jsou webové stránky, s chaotickou navigací, slitým dlouhým textem s malou velikostí písma zkrátka nepřípustné. Roboti Díky robotům vyhledávačů (v angličtině crawlers) přicházejí na webové stránky noví návštěvníci. Proto je mají majitelé webů tak rádi. Obvykle však zůstává jen u toho. Nepřístupná stránka totiž dokáže robotovi jeho práci pěkně znepříjemnit. A někdy ho třeba ani nepustí dále než na titulní stránku. Není dobré v prezentaci důležitého obsahu spoléhat na obrázky a v rámci navigace např. pouze na JavaScript či Flash.“
10
3.3 Jak na přístupný web
3.3
Jak na přístupný web
U vývoje přístupného webu stojí několik zásad a metodik, které napomáhají tvůrci webu k jeho vytvoření. Tato podkapitola rozebírá standardy, které vznikaly jako dobrovolné průvodce návrhu kvalitního webu. Později, po vzoru ostatních vyspělých států, se i v České republice tyto standardy dostaly do právních předpisů. Hlavním předmětem této části práce jsou pravidla tvorby přístupného webu. Dále je popsána metodika WCAG 2.0 (Web Content Accessibility Guidelines 2.0) a český projekt Blind Friendly Web.
3.4
Pravidla tvorby přístupného webu
Pravidla tvorby přístupného webu (dále jen pravidla) prošla několika úpravami. Na základě výzkumu specifických potřeb handicapovaných uživatelů a celosvětově uznávaných pravidel vydávaných konsorciem W3C [8] vznikla tato pravidla na půdě Ministerstva informatiky a na projektu se podíleli také členové Fakulty informatiky Masarykovy univerzity. Finální a aktuální verze byla vydána 7. února 2008 Ministerstvem vnitra a nabyla účinnosti 1. března 2008. Pravidla jsou součástí vyhlášky 64/2008 Sb. vyhláška o přístupnosti. Jedná se o seznam 33 pravidel rozdělených do 6 tematických okruhů, které specifikují formu zveřejňovaných informací z hlediska přístupnosti. Celé znění těchto pravidel je obsaženo v druhé příloze této práce.
3.4.1
Tematické okruhy pravidel přístupnosti
Obsah webových stránek musí být dostupný a čitelný Práci s webovou stránkou řídí uživatel Informace musí být srozumitelné a přehledné Ovládání webových stránek musí být jasné a srozumitelné Zdrojový kód musí být technicky způsobilý a strukturovaný Prohlášení o přístupnosti webových stránek
Metodika WCAG 2.0 (Web Content Accessibility Guidelines 2.0) [9] je původně vydána jako anglický dokument, lze ji však volně přeložit jako metodika pro přístupný web. První verze této metodiky byla vydána v roce 1999 pod jménem WCAG 1.0. Tyto standardy byly vytvořeny skupinou WAI (Web Accessibility Initiative) patřící do konsorcia W3C. WCAG 2.0 patří mezi celosvětově nejuznávanější pravidla a mnohé metodiky z nich vycházejí. Tato metodika obsahuje 4 hlavní principy, které se dále dělí na menší okruhy obsahující jednotlivé body přístupnosti. Každé pravidlo je hodnoceno prioritou A až AAA, kde větší počet písmen znamená vyšší prioritu.
3.5.1
Hlavní okruhy WCAG 2.0 Princip č. 1: Vnímatelnost - Informace a součásti uživatelských rozhraní musí být prezentovány tak, aby je uživatelé byli schopni vnímat. Princip 2 Ovladatelnost: Všechny součásti uživatelského rozhraní a všechny navigační prvky musí být ovladatelné. Princip č. 3: Srozumitelnost: Informace a ovládání uživatelského rozhraní musí být srozumitelné. Princip č. 4 Robustnost: Obsah musí být dostatečně robustní, aby mohl být spolehlivě interpretován širokou škálou přístupových zařízení včetně asistivních technologií.
3.6
Blind Friendly Web
Tento projekt vznikl na základě Sjednocené organizace nevidomých a slabozrakých ČR. Jedná se o projekt zabývající se přístupností webu pro zrakově postižené uživatele a v roce 2004 se také podílel na vzniku Pravidel tvorby přístupného webu. Blind Friendly Web (dále jen BFW) [10] prošel první etapou, jejímž cílem bylo umožnit nevidomým uživatelům pohyb po webových stránkách. V rámci první etapy došlo k mapování stránek přístupných nevidomým lidem a zařazení takových stránek do katalogu Blind Friendly. Dále byl vytvořen metodický návod pro tvůrce webů a proběhla samotná osvěta této metodiky v rámci konferencí a soutěží, jako je například Zlatý erb. Hlavním předmětem druhé etapy je testování webů, školení jejich tvůrců a zpřístupňování nových technologií nevidomým uživatelům. Projekt BFW vytvořil vlastní metodiku Blind Friendly Web 2.3. V této době však BFW doporučuje metodiku WCAG 2.0 a vytváří aktuální verzi vlastní metodiky s pořadovým číslem 3.0.
12
Kapitola 4
Přehled stávajících redakčních systémů Doba statických stránek pominula a v prostředí vydaných vyhlášek o struktuře webu orgánu veřejné správy to platí dvojnásob. Chceme-li udržovat úřední desku, aktuality nebo fotogalerii bez přidané aplikace, která nám tuto správu umožní, musíme najít člověka, který bude plnit funkci redaktora a programátora zároveň. Tato představa je nereálná, protože už v případu větší obce či menšího města by se jednalo o několikačlenné týmy lidí. Ke správě webu slouží systém pro správu obsahu (Content Management System, dále jen CMS). CMS systémy zpravidla obsahují nastavitelné moduly, které přináší do webu jeho vybranou funkcionalitu a ulehčují tak administrátorům editování obsahu stránek bez znalosti psaní zdrojových kódů. V této kapitole si uvedeme několik vybraných CMS systémů, které jsou primárně určeny pro správu webů obcí a měst. Získané poznatky z této analýzy využijeme pro návrh vlastního CMS systému. Do našeho srovnání zahrneme několik komerčně nabízených systémů. U vybraných RS uvedeme jejich funkcionalitu a cenovou dostupnost. V závěru kapitoly uvedeme výsledky soutěže o nejlepší volně dostupné RS a popíšeme základní druhy licencí, pod kterými jsou vydávány.
4.1
Komerční systémy
Z této kategorie jsem vybral dva RS, které nám pomohou srovnat konkurenceschopnost našeho systému na současném trhu a cenovou dostupnost.
4.1.1
Základní funkcionalita RS vismo Online
• Vkládání dokumentů dostupných formátů typu PDF, DOC, XLS, JPG, GIF atd. • Možnost hierarchického vytváření složek dokumentů • Přehledy vložených dokumentů
• • • • • • • • •
Editování kontaktů, organizačních složek včetně ověřování adres oproti UIR-ADR Fotogalerie s automatickou úpravou obrázků Editovatelná nabídka menu Formulář (e-mail) Fulltextové vyhledávání Mapa stránek, Funkce pro vypnutí grafiky Jazykové mutace Bezbariérově přístupné stránky
Cena za pořízení a provoz RS vismo Online Pro srovnání jsou uvedeny přibližné ceny za balíky, které jsou vybrány pro obce velikosti Pašovic. Obec Pašovice má přibližně 700 obyvatel.
Balík základních funkcí
5,200.00 Kč
Přidané moduly
1 500,00 až 6 000,00 Kč
Převod stávajících dat
3,000.00 Kč
Měsíční paušál
350.00 Kč
Celkem
cca 10 000,00 až 15 000,00 Kč
Hodnocení RS vismo Online Tento redakční systém zohledňuje jak legislativní požadavky, tak umožňuje tvorbu webu podle pravidel přístupnosti. Výhodou tohoto RS je velké množství doplňkových modulů a velký výběr šablon webu. O kvalitě provedení RS může vypovídat jeho dlouholeté udržení na trhu. První verze tohoto systému byly uvedeny na trh před více než 10 lety a čítají více než 1500 zákazníků. Mezi zápory RS bych uvedl, že navzdory prohlášení o generování přístupných stránek, si musí zákazník připlatit za služby spojené s úpravou barevného kontrastu, nebo javascriptového menu.
4.1.2 • • • • • • • •
Základní funkcionalita RS ANTEE Editaci veškerých textů Editaci / vkládání obrázků Možnost vkládání dokumentů (doc., xls., pdf., gif atd.) Možnost přidávání a odebírání stránek v menu Vkládání fotografií Statistiky návštěvnosti Základní SEO optimalizaci pro vyhledávače (seznam.cz, google.cz) Smart-web (další stránky zdarma pro nekomerční účely)
14
4.1 Komerční systémy Doplňkové moduly RS ANTEE Nadstandardní grafické možnosti (animace, reklamní bannery), E-shop (včetně propojení e-shopu na seznam.cz), Katalog (přehled výrobků bez možnosti objednání), Jazykové verze, Aktuality s rozesíláním e-mailů, Ankety, Diskusní fóra, Měnové kurzy, Fulltextové vyhledávání, Počasí, Překlad stránek
Cena za pořízení a provoz RS ANTEE Cena RS ANTEE se nerozlišuje podle velikosti dané obce. Vybral jsem nejprodávanější balík, jehož funkcionalita odpovídá základním požadavkům naší obce.
Cena nejprodávanější varianty včetně přidaných modulů
16,000.00 Kč
Měsíční paušál
Neuveden
Cena ostatních variant
6 000,00 až 20 000,00 Kč
Hodnocení RS ANTEE Analýzu tohoto RS jsem měl možnost provést v ostrém provozu webových stránek. Mezi výhody tohoto systému bych zařadil editování obsahu přímo ve stránkách obce a možnost vytvoření nekomerčních podstránek registrovaných uživatelů webu. Mezi zápory tohoto testovaného RS bych zařadil nekvalitní WYSIWYG editor, který v některých krocích editace nereagoval. Mezi hrubé nedostatky systému patří přestupky proti pravidlům o přístupnosti. I v tom nejlepším RS mohou být přestupky zaváděny samotným administrátorem. V tomto případě se však jedná o automaticky generované chyby, jejichž opravy jsou pro administrátora omezené.
Javascriptové vysouvací menu, které nelze nahradit jinou alternativou, která by umožňovala procházení položek menu pomocí klávesnice (porušení pravidla č.3) Vytvořené šablony pro vypisování aktualit, úřední desky a jiné neodlišují odkazy od běžného textu (porušení pravidla č.26) Absence navigace a odkazů na vyšší úroveň (porušení pravidla č.19, 20) Absence odkazů pro přeskakování opakujících se částí webu (porušení pravidla č.17) Negeneruje prohlášení o přístupnosti (porušení pravidla č.32)
15
4.2 Redakční systémy zdarma
4.2 4.2.1
Redakční systémy zdarma Druhy licencí
Z podkapitoly komerčních RS jsme se dozvěděli, že cena za relativně dobře provedený web se pohybuje okolo 15 000 Kč. Obce, které se rozhodnou na zřízení webových stránek ušetřit, mají možnost využít open source CMS systémy. Tyto CMS systémy jsou zdarma, ale to neznamená, že je jejich provedení špatné nebo jejich funkcionalita nedostatečná. Naopak, mezi open source RS patří například Joomla, Drupal a jiné. Tyto RS jsou vydávány pod veřejnou licenci GNU GPL (General Public License) a patří mezi velmi propracované systémy pro správu webu. Co je to vlastně GNU GPL? Tato licence patří mezi copyleftové licence. Opakem copyleftu je copyright. Copyright omezuje šíření díla, zatímco copyleft omezuje omezování díla. Zkratka GPL v překladu znamená „všeobecná veřejná licence“. Hlavním myšlenkou této licence je dostupnost odvozených děl pod stejnou licencí. Volnějším typem jsou permisivní licence svobodného softwaru. Takovou licencí je například licence BSD (Berkeley Software Distribution). Díla spadající pod licenci BSD jsou volně dostupná i pro užití v softwaru s komerční licencí. Jedinou podmínkou této licence je uvedení informací o autorech a zřeknutí se odpovědnosti za případné vzniklé škody. Třetí typ licence, kterou si uvedeme, je kompromisem mezi GPL a BSD. Jedná se o LGPL (GNU Lesser General Public License). Copyleftové restriktivní omezení se vztahují pouze na samotný předmět této licence, nikoli na program nově vytvořený. Typickým příkladem je linkování knihoven. Samostatně vytvořený program, který linkuje nebo obsahuje přímo zdrojový kód šířený pod licencí LGPL se může stát svobodným softwarem nebo softwarem proprietárním. Výhodou této licence je možnost převedení vytvořeného programu zpět do čistě copyleftové formy. Díky tomu se původně LGPL licencovaná část programu zahrne pod licenci GPL a vzniklý program lze jako celek dále šířit copyleftem. Jak se dozvíme, náš vytvořený RS využívá WYSIWYG editor TinyMCE, který je dostupný právě pod licencí LGPL.
4.2.2
Nejlepší RS zdarma
Dobrým vodítkem při výběru bezplatného RS mohou být výsledky soutěže Open Source CMS Award 2009. Jedná se o cenu vydavatelství Packt Publishing pro nejlepší volně stažitelný redakční systém. Vítězem pro rok 2009 se stal RS Drupal. Následující dvě místa obsadil Wordpress a Joomla. Tento druh RS lze přizpůsobit nejrůznějším potřebám administrátorů. Velké možnosti těchto systémů však přináší do správy webu patřičnou složitost. Tato zdánlivá nevýhoda může hrát rozhodující roli při rozhodování mezi bezplatným RS nebo jednoduchostí a uživatelskou přívětivostí placených systémů.
16
Kapitola 5
Analýza a návrh redakčního systému Na základu hodnocení současných redakčních systémů jsem navrhl jednoduchý CMS systém a k němu vytvořil šablonu obecního webu (front end), do které bude samotný obsah vkládán a bude přístupný běžnému uživateli. RS je tedy rozdělen na dva logické celky, které spolu komunikují prostřednictvím databáze. Jednou ze záporně hodnocených vlastností redakčních systémů je podobnost webových stránek, které jsou spravovány stejným CMS systémem. Správce webu může vzhled stránky odlišit samotným obsahem, bude však vždy omezen na jednu či několik šablon, které mu RS nabídne. Z tohoto důvodu jsem volil oddělené rozhraní CMS systému a rozhraní samotných stránek obce. Díky tomu je zdrojový kód přehlednější a pružnější pro individuální úpravy webové šablony, se kterými se v reálném provozu jistě setkáme.
5.1
Analýza funkčních požadavků RS
Jednotlivé funkce RS byly primárně přidávány tak, aby umožňovaly naplnění webu povinně zveřejňovanými informacemi, které ukládá zákon. V další fázi analýzy byly zohledněny poznatky z existujících redakčních systémů a požadavky stávajícího správce webu obce Pašovice. V této kapitole rozebereme strukturu RS pomocí aplikace Case Studio 2 [11]. Uvedeme seznam událostí, které mohou v RS nastat, uvedeme několik základních diagramů zobrazujících komunikaci jednotlivých částí systému a komunikaci s uživatelem. Nakonec uvedeme datový model systému a rozebereme vybrané funkce.
5.2
Seznam událostí a uživatelské role
V navrhovaném RS vystupují tři uživatelské role: administrátor, správce diskuze a běžný uživatel. Při zavedení RS je primárně vytvořen jediný účet administrátora, pomocí kterého je dále možné vytvořit další účty. Správce diskuze dostává oprávnění pouze do rozšířeného rozhraní webu obce, nikoli do CMS systému. V obci Pašovice bude roli administrátora zastupovat starosta obce a správce stávajícího webu. Role správce diskuze bude přidělena obecní kronikářce.
17
5.2 Seznam událostí a uživatelské role Administrátor U01: Upravuje osobní údaje (F) U02: Mění heslo (F) U03: Vytváří nové účty (F) U04: Vkládá nový soubor pdf (F) U05: Maže soubory pdf (F) U06: Edituje nové album fotogalerie (F) U07: Vytváří nové album fotogalerie (F) U08: Maže existující alba fotogalerie (F) U09: Vkládá fotografii do existujícího alba (F) U10: Edituje popisky fotografie (F) U11: Maže vložené fotografie (F) U12: Vkládá odkazy na jiné stránky (F) U13: Maže odkazy na jiné stránky (F) U14: Vytváří nové ankety (F) U15: Vybírá a vystavuje anketu na web obce (F)
U16: Maže existující ankety (F) U17: Vytváří novou stránku (F) U18: Upravuje existující stránku (F) U19: Maže existující stránku (F) U20: Vkládá aktuality (F) U21: Edituje aktuality (F) U22: Maže aktuality (F) U23: Vkládá položky dvojúrovňového menu (F) U24: Edituje stránky menu (F) U25: Určuje pořadí položek menu (F) U26: Maže položky menu (F) U27: Vkládá nové záznamy úřední desky (F) U28: Edituje existující záznamy úřední desky (F) U29: Maže záznamy úřední desky (F)
Běžný uživatel U34: Prohlíží webové stránky (F) U35: Zakládá vlákna diskuzního fóra (F) U36: Přidává reakce vlákna diskuzního fóra (F) U37: Hlasuje ve vystavené anketě (F)
Poznámka: Uvedené zkratky (F ‒ Flow) označují události spojené s datovým tokem, dalším druhem může být událost spojená s daným časem (T ‒ Temporal ) nebo řídící událost (C ‒ Control).
18
5.3 Diagram datových toků (DFD ‒ Data Float Diagram)
5.3
Diagram datových toků (DFD ‒ Data Float Diagram)
DFD diagram zobrazuje toky datových paketů mezi jednotlivými procesy a uživateli (terminátory) systému. Kvůli základnímu rozdělení RS na dva logické subsystémy jsem se rozhodl přeskočit kontextový diagram, který zobrazuje RS jako jeden celek. První úroveň dekompozice je natolik jednoduchá, že jsou zobrazeny všechny uživatelské role i datové toky a díky tomu nese první úroveň dekompozice téměř stejnou informaci jako diagram kontextový. Tento diagram zobrazuje obrázek č.5.3.1.
5.3.1
První úroveň dekompozice kontextového diagramu
Obrázek č.5.3.1: první úroveň dekompozice
19
5.3 Diagram datových toků (DFD ‒ Data Float Diagram) 5.3.2
Druhá úroveň dekompozice ‒ systém pro správu webu
CMS systém obsahuje tři rámcové procesy: správa šablon, správa účtů a správa ostatních stránek webu viz obrázek č.5.3.2. Správou šablon se rozumí sada předdefinovaných stránek, které jsou stylovány jednotným způsobem, obsahují data zobrazovaná v tabulce úřední desky, fotografie rozdělené do alb, příspěvky řazené do vláken diskuze a další stránky, jejichž údržba by byla i pro kvalitní editor stránky složitá. Vedle takto definovaných stránek má administrátor možnost vytvořit další obecné stránky podle vlastní fantazie. Díky nastavení uživatelských účtů, lze správu celého webu rozdělit mezi více administrátorů nebo správců diskuze.
Obrazek č.5.3.2: Druhá úroveň dekompozice ‒ systém pro správu webu
20
5.3 Diagram datových toků (DFD ‒ Data Float Diagram) 5.3.3
Druhá úroveň dekompozice ‒ webové stránky
Obrázek č.5.3.3: Druhá úroveň dekompozice ‒ webové stránky
21
5.4 Diagram entit a vztahů (ERD ‒ Entity Relationship Diagram)
5.4
Diagram entit a vztahů (ERD ‒ Entity Relationship Diagram)
Diagram entit a vztahů (dále jen ERD) slouží pro modelování struktury dat, která jsou systémem zpracovávána. Propojení entit pomocí vztahů (referenční integrita) je voleno tak, aby co nejvíce odpovídalo reálnému stavu. Na druhou stranu je nutné dodat, že příliš složité referenční omezení může do pozdějšího vývoje projektu přinést značné komplikace. Navržený datový model je zobrazen na obrázku č.5.4.1. S ohledem na jednoduchou strukturu diagramu věnujeme jen několik slov entitě Stránka, která obsahuje rekurzivní vztah. Tento vztah umožňuje vytvořit libovolnou stromovou strukturu odkazujících se stránek a podstránek. Vlastnosti rekurzivního vztahu lze elegantně využít pro výpis mapy webu nebo pro zobrazení aktuální pozice v navigaci webových stránek.
Obrázek č.5.4.1: Diagram entit a vztahů
22
Kapitola 6
Funkce redakčního systému 6.1
Vkládání stránek
Vkládání nových stránek webu lze dělat dvěma způsoby. Prvním z nich je vložit stránku přímo mezi odkazy menu. Druhý způsob je vytvořit stránku samostatně a odkazovat na ni z libovolného místa webu.
6.1.1
Editace menu
Samozřejmostí funkce vkládání položky menu je určení její pozice. RS umožňuje vkládat stránky pouze do dvou úrovní. Toto omezení se však týká pouze stránek umístěných v levém menu. U volných stránek toto omezení neplatí. Pro určení pozice položky je potřebná počítačová myš. Při přejetí kurzoru je vybraná pozice menu zvýrazněna zeleným pruhem. Po odkliknutí požadované pozice se administrátor dostává k vytvoření názvu stránky a jejího obsahu. Titulek stránky je generován z názvu obce a názvu dané podstránky. K vytváření samotného obsahu stránek je využit editor TinyMCE-Javascript WYSIWYG. Zkratka WYSIWYG znamená „What you see is what you get“ neboli „Co vidíš, to dostaneš“. Tento editor pracuje podobným způsobem jako například Microsoft Word či OpenOffice.org Writer a umožňuje administrátorovi vkládat text, obrázky, tabulky, odkazy na jiné stránky a další. Editování a mazání stránek menu je realizováno podobným způsobem jako jejich vytváření. Administrátor nejprve určí požadovanou položku menu a podle zvolené operace se dostává k WYSIWYG editoru nebo formuláři pro vymazání stránky. V datovém modelu RS je položkám menu vytvořena dvojice tabulek určující první a druhou úroveň zanoření. Každá instance těchto entit obsahuje atributy, které určují, zda může být daná položka menu editována či vymazána. Editace WYSIWYG editorem je zakázána u stránek, pro které jsou vytvořeny speciální šablony pro jejich správu. Podobné pravidlo platí i pro mazání položek menu. RS nedovolí vymazat stránku obsahující povinně zveřejňované informace.
6.1.2
Vkládání a editace volné stránky
Editory pracující v režimu WYSIWYG jsou výbornými pomocníky při editování stránek webu. Jedná se však pouze o editaci daného obsahu. Zvolený WYSIWYG editor TinyMCE umožňuje vkládat odkazy na jiné stránky pomocí absolutní cesty jejich URL adresy. Absolutní cesta URL adresy je například „http://www.jakpsatweb.cz/html/url.html“. Jak tedy umožnit správci webu vkládat odkazy na jiné podstránky webu? Tento problém jsem řešil vkládáním volných stránek. CMS systém umožňuje zobrazit přehled veškerých stránek webu a jejich URL adres. V samotných stránkách obce se jedná o mapu stránek. V CMS systému však toto zobrazení využijeme k vytváření libovolné stromové struktury vložených (volných) stránek.
23
6.1 Vkládání stránek Pro výpis této struktury je použita rekurzivní funkce, která využívá možnosti zanoření párové značky
sloužící k vytváření číslovaných nebo odrážkovaných seznamů. Vedle názvu každé stránky je uvedena její URL adresa, pomocí které může administrátor na stránku odkazovat.
6.2 Vkládání souborů Stejně jako vkládat stránky, na které můžeme později odkazovat, můžeme nahrávat a mazat soubory dostupného formátu PDF. Správa těchto souborů obsahuje formulář pro vkládání a přehled již vložených souborů a jejich URL. V obsahu stránek se pro odkazování na vložené soubory využívá také absolutní cesta URL adresy.
6.3 Aktuality Aktuality patří mezi nejčastěji se měnící část webu a měly by být zobrazeny tak, aby neunikly pozornosti návštěvníka webu. Na webových stránkách jsou pro zobrazení aktualit vyčleněna dvě místa. První místo určené pro aktuality je úvodní stránka, která vypisuje zkrácené texty nejnovějších aktualit společně s odkazy na plné znění. Dalším místem je odkaz v levém menu, jehož obsahem je úplný výpis aktualit včetně přiložených souborů. Šablona pro psaní aktualit je tvořena zjednodušeným WYSIWYG editorem a formulářem pro vkládání ilustračního obrázku a libovolného počtu souborů pdf. Zobrazování aktualit má jednotný styl. V případě, že aktualita neobsahuje žádnou fotografii, je místo určené pro zobrazení obrázku vyplněno přednastavenou grafikou. Editace aktuality dovoluje měnit text, ilustrační obrázek, přidávat i mazat soubory.
6.4 Fotogalerie Na internetu můžeme nalézt velké množství propracovaných fotogalerií, které jsou dostupné zdarma a svým vzhledem a funkcemi osloví velké množství vývojářů. Zdaleka méně je však těch, které vyhoví požadavkům přístupnosti nebo těch, které nám jednoduše do webových stránek vzhledově pasují. Pro RS jsem se rozhodl vytvořit fotogalerii vlastní. Jak již bylo naznačeno, jedná se o fotogalerii, která vyhovuje pravidlům přístupného webu a svým grafickým vzhledem nenarušuje jednotnost stránek. Na webových stránkách jsou kromě výpisu vytvořených alb a jejich fotek zobrazeny poslední přidané snímky. Co tedy lze v CMS systému s fotografií dělat? Před vkládáním fotografie musí administrátor vytvořit dané album. Při zavedení RS je automaticky vytvořeno album s názvem „Obrázky cms“, které slouží jako úložiště fotografií zobrazených na jiných stránkách. Toto album je přístupné pouze administrátorovi v rozhraní CMS systému a není zobrazeno na webových stránkách. Má-li administrátor vytvořeno album, může vkládat fotografie. Při nahrávání fotografie je kontrolován formát souboru. Mezi akceptované formáty patří jpg., png. a gif. Každý vložený snímek má vytvořenu vlastní zmenšeninu. Aby bylo možné zmenšeniny zobrazovat v úhledných sloupcích, je každý snímek přeformátován do pevně definovaných rozměrů.
24
6.4 Fotogalerie Jednoduchým nastavením velikosti obrázku bychom snímky různých rozměrů deformovali. Aby k této deformaci nedocházelo, je každá zmenšenina vložena do černého rámu, který vyplňuje chybějící místo po stranách fotografie. Každému albu i fotografii lze přidat popisek. Mazat lze celá alba nebo jen vybrané fotografie.
6.5 Úřední deska Šablona úřední desky je tvořena formulářem, který obsahuje vstupní pole pro název položky úřední desky, datum vystavení a datum sejmutí. Jednotlivým záznamům úřední desky lze přidávat libovolný počet PDF souborů. Údaje jednotlivých záznamů můžeme také později měnit.
6.6 Kontaktní údaje obce Kontaktní údaje patří mezi další velmi důležitou informaci webu a z vlastní zkušenosti vím, že je mnohdy také jedinou informací, kterou uživatel na webu hledá. Proto jsem se rozhodl umístit tyto údaje v pravém obsahovém sloupci stránek. Kontaktní údaje se tedy zobrazují společně s každou stránkou webu. V případě, že by si administrátor nepřál tyto informace opakovaně uvádět, stačí nechat tento formulář CMS systému prázdný a kontaktní údaje uvést pouze v samotné stránce „Kontakty“. Tato stránka je editovatelná WYSIWYG editorem a k obsahu stránky je přidán také formulář pro odesílání E-mailu. Odesílání E-mailu je dostupné i běžnému uživateli a slouží zároveň jako podatelna. Pro vyplnění informací týkajících se zastupitelstva lze využít předdefinovanou stránku „Zastupitelstvo“.
6.7 Užitečné odkazy Kromě vytváření a vkládání dalších podstránek daného webu RS umožňuje umístit seznam užitečných odkazů směřujících mimo stránky obce. Tento seznam je uveden pod hlavním menu stránek.
6.8 Ankety Poslední předdefinovanou šablonou, která se týká obsahu webu, je vytváření hlasovacích anket. Administrátor může založit víc anket, právě jedna však může být vystavena na webu. Každá anketa může obsahovat jednu otázku a maximálně 5 možností odpovědi. Přehled všech vytvořených anket je dostupný pouze v rozhraní CMS systému. Další možností správy anket je libovolné vystavování anket. Administrátor tedy může vystavit například první anketu první týden, poté vystavit anketu druhou a o měsíc později pokračovat v hlasování do první ankety bez ztráty dosavadních hlasů.
6.9 Diskuzní fórum Diskuzní fórum umístěné na stránkách obce umožňuje komunikaci mezi návštěvníky webu. Výhodou diskuzního fóra je další interaktivita mezi uživatelem a webovou stránkou. Návštěvníci webu mohou vystavovat různá upozornění na události, mohou psát připomínky k vedení obce a mnohé další.
25
6.9 Diskuzní fórum Vedle výhod, které nám diskuzní fórum poskytuje, přichází také řada opatření proti nevhodnému užívání fóra. Formulář pro odesíláni příspěvků je potenciální dírou do zabezpečeného systému. Problematikou bezpečnosti systému se budeme zabývat v kapitole 8 „Zabezpečení redakčního systému“.
6.10 Uživatelské účty K RS přistupují tři uživatelské role: administrátor, správce diskuze a běžný uživatel. Skupina běžných uživatelů zasahuje do RS nejméně. Na druhou stranu je však cílovou skupinou, která daný web prohlíží a testuje jeho použitelnost. Z tohoto důvodu si jako první uvedeme právě tuto skupinu.
6.10.1 Běžný uživatel Mohlo by se zdát, že skupinu běžných uživatelů si náš RS nemusí pamatovat. Opak je však pravdou. Webové stránky nabízí volbu základního nastavení zobrazení stylu stránky, vypínání vysouvacího menu nebo umožňuje návštěvníkům hlasovat ve vystavené anketě, a tím jim umožňuje podílet se na jejich naplnění. Tyto funkce ke svému chodu potřebují jednotlivé uživatele identifikovat. K tomuto účelu se vybízí využití technologie COOKIE. Jedná se o malé množství dat uložených v počítači klienta a mimo jiné se využívá právě k uchovávání osobního nastavení uživatele. Tyto technologie však nejsou doporučeny pravidly pro přístupný web, a proto je zastoupí databáze a IP adresa uživatele. IP adresa je číslo identifikující daný síťový stroj. Délka toho čísla závisí na verzi tohoto protokolu. IPv4 je 32bitová, zatímco co nastupující verze IPv6 je zapisována pomocí 128 bitů.
6.10.2 Administrátor Role administrátora je jediná role, která má přístup jak do samotného CMS systému, tak do správy diskuze. Role běžných uživatelů a správců diskuze přistupují k RS pomocí webových stránek obce. Administrátor může vytvářet další účty stejné úrovně nebo přidělovat přístup ke správě diskuze. Nastavení osobních údajů, je dostupné pouze administrátorovi.
6.10.3 Správce diskuze Protože nemůžeme spoléhat na slušné chování všech návštěvníku webu, musíme vytvořit uživatelskou roli, která bude dohlížet na chod diskuzního fóra. Po přihlášení do rozšířeného rozhraní diskuzního fóra má správce možnost mazat vulgární nebo jinak nevhodné příspěvky či celá vlákna.
26
Kapitola 7
Návrh webových stránek pro redakční systém Při tvorbě webu obce je dodrženo pravidlo oddělení obsahu od formy. Umísťování jednotlivých bloků stránky je provedeno pomocí kaskádových stylů CSS. Každá webová stránka je rozdělena klasickým způsobem na úvodní obrázek a tři sloupce: levé menu, hlavní obsah stránky a pravý sloupec. Co to v praxi znamená? Představme si, jak se bude stránka zobrazovat bez kaskádových stylů. Protože je sloupec obsahující menu stránky na prvním místě, bude horní polovinu obrazovky zabírat opakující se levé menu a hlavní obsah stránky bude posunut do spodní části obrazovky nebo se nezobrazí vůbec. Řešením je vložit do zdrojového kódu navigační menu až za pravý sloupec a pomocí kaskádových stylů ho přemístit zpět na první pozici. K tomuto účelu slouží párové tagy
značkovacího jazyka HTML. Z kaskádových stylů je vybrána vlastnost float, která definuje obtékání daného objektu. Další věcí související s rozvržením stránek je umístění odkazů, díky kterým mohou uživatelé přeskakovat ucelené bloky webu. Tyto odkazy pomáhají především lidem, kteří se mohou pohybovat po webové stránce pouze pomocí klávesnice nebo používají čtečku. Hlasová čtečka je aplikace, která převádí zobrazenou informaci do hlasové podoby. Výstupním zařízením aplikace může být také hmatový display, braillská tiskárna a jiné. Díky odkazům pro přeskakování nemusí uživatel zdlouhavě přecházet celé bloky ručně. Odkazy mohou být na obrazovce skryté a mohou mít své klávesové zkratky. V našem webu je pro tento účel použita CSS vlastnost position: absolute. Společně se zápornými hodnotami CSS vlastností top a left je odkaz umístěn mimo obrazovku. Takto skrytý odkaz je uživateli dostupný pomocí tabulátoru a je čitelný pro hlasové čtečky. Klávesové zkratky můžeme přiřadit odkazům rozmístěným na webové stránce pomocí atributu accesskey, jehož hodnota určuje klávesu aktivující daný odkaz. Skupina uživatelů, které se snažíme oslovit, je velmi různorodá. Přístupný web slouží nejen handicapovaným uživatelům. Poslední část implementace webových stránek se zabývá skupinou uživatelů, jejichž zkušenosti s internetovými prohlížeči nejsou dostatečné k tomu, aby si zobrazení stránky přizpůsobili svým potřebám. Z tohoto důvodu je nad úvodním obrázkem stránky umístěna nabídka základního zobrazení webu. V nabídce si uživatel volí mezi normálním stylem, zvětšeným písmem a zobrazením stránky bez kaskádových stylů. Aby si uživatel nemusel měnit zobrazení při každé návštěvě stránek, web si jeho nastavení pamatuje. Ukládání uživatelského nastavení je realizováno pomocí databáze. Při vstupu na stránky je uživatel porovnán s existujícími záznamy tabulky a podle výsledku načten správný soubor kaskádových stylů. Náhled grafického návrhu šablony můžete vidět na obrázku č.9.3.1, který je uveden v kapitole 9 „Grafický návrh a jeho testování“.
27
Kapitola 8
Zabezpečení redakčního systému 8.1 Přihlašování do RS Samozřejmou součástí RS je přihlašování uživatelských rolí administrátora a správce diskuze. Protože RS navrhujeme tak, aby s ním mohlo pracovat více administrátorů, nemůžeme volit pevně vepsané heslo ve zdrojovém kódu. Pro administrátorské a správcovské účty je vytvořena tabulka obsahující jejich osobní údaje včetně zakódovaného (hashovaného) hesla algoritmem MD5. Veškeré přihlašování do systému se provádí pomocí vstupních polí formuláře a proměnných typu session. Prvky formuláře jako je například nebo