MASARYKOVA UNIVERZITA Fakulta informatiky
Analýza a návrh redakčního systému pro malé knihovny
Bakalářská práce
Zuzana Foltýnová
2011, Brno
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracovala samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používala nebo z nich čerpala, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
V Brně dne ………………..
………………..
Poděkování Děkuji svému vedoucímu práce prof. RNDr. Jiřímu Hřebíčkovi, CSc. za cenné rady a připomínky, které mi pomohly při tvorbě bakalářské práce. Děkuji také mé rodině a svému příteli za podporu při studiu a během psaní této práce.
Shrnutí Hlavním cílem bakalářské práce je navrhnout a vytvořit jednoduchý redakční systém, který bude umožňovat vytvářet a spravovat weby malých knihoven. Při implementaci byly dodrženy podmínky přístupnosti a uživatelské přívětivosti. Součástí práce je rovněž zhodnocení současných redakčních systémů pro tvorbu webových prezentací knihoven. Funkčnost redakčního systému je na závěr ověřena při tvorbě webové prezentace pro Místní knihovnu Kozlovice.
Klíčová slova veřejná knihovna, Library 2.0, přístupnost, redakční systém, diagram datových toků, entitně relační diagram, HTML, CSS, PHP, MySQL, JavaScript, bezpečnost
Obsah 1.
Úvod ........................................................................................................................................ 1
2.
Problematika malých knihoven ............................................................................................... 2
3.
Library 2.0 ............................................................................................................................... 3
4.
Tvorba webové prezentace ...................................................................................................... 5 4.1
Webové standardy ............................................................................................................... 5
4.2
Přístupnost (Web accessibility) ........................................................................................... 5
4.3
Použitelnost (Web usability) ............................................................................................... 6
4.4
Optimalizace webových stránek pro vyhledávače (SEO) ................................................... 7
5.
Přehled redakčních systémů .................................................................................................... 8 5.1
Redakční systémy určené pro správu webových prezentací knihoven ................................ 8
5.1.1
Šablona webu pro malé knihovny (www.webknihovny.cz) ........................................ 8
5.1.2
Naseknihovna.cz (www.naseknihovna.cz/info) .......................................................... 9
5.2 6.
Open source redakční systémy .......................................................................................... 10 Analýza a návrh systému ....................................................................................................... 11
6.1
Seznam událostí a uživatelské role .................................................................................... 11
6.1.1
Návštěvník ................................................................................................................. 11
6.1.2
Registrovaný uživatel (čtenář) ................................................................................... 11
6.1.3
Správce diskusního fóra ............................................................................................ 12
6.1.4
Administrátor............................................................................................................. 12
6.2
Diagram datových toků (Data Flow Diagram) .................................................................. 13
6.2.1
Kontextový diagram .................................................................................................. 14
6.2.2
První úroveň dekompozice ........................................................................................ 15
6.2.3
Druhá úroveň dekompozice ‒ Systém pro správu obsahu a vzhledu ....................... 16
6.2.4
Druhá úroveň dekompozice ‒ Webové stránky........................................................ 17
6.2.5
Třetí úroveň dekompozice ‒ Správa obsahu ............................................................ 18
6.3 7.
Diagram entit a vztahů (Entity Relationship Diagram) ..................................................... 19 Implementace redakčního systému........................................................................................ 21
7.1
Použité technologie ........................................................................................................... 21
7.1.1
HTML (Hypertext Markup Language) ...................................................................... 21
7.1.2
CSS (Cascading Style Sheets) ‒ kaskádové styly .................................................... 21
7.1.3
PHP (Hypertext preprocesor) .................................................................................... 22
7.1.4
MySQL ...................................................................................................................... 22
7.1.5
JavaScript .................................................................................................................. 22
7.2
Redakční systém a jeho funkce ......................................................................................... 23
7.2.1
Funkce správy obsahu ............................................................................................... 23
7.2.2
Čtenářské konto ......................................................................................................... 28
7.2.3
Funkce správy vzhledu .............................................................................................. 29
7.3
Veřejné webové stránky .................................................................................................... 29
7.3.1
Uživatelský účet ........................................................................................................ 29
7.3.2
Diskusní fórum .......................................................................................................... 30
7.3.3
Anketa ....................................................................................................................... 30
7.4
Rozhraní webových stránek .............................................................................................. 30
7.4.1
Layout redakčního systému ....................................................................................... 31
7.4.2
Layout veřejné webové stránky ................................................................................. 31
8.
Grafický design ..................................................................................................................... 34 8.1
Redakční systém ................................................................................................................ 34
8.2
Veřejné webové stránky .................................................................................................... 35
9.
Zabezpečení systému ............................................................................................................. 36 9.1
Útoky na webové stránky a jejich řešení ........................................................................... 36
9.1.1
PHP Include ............................................................................................................... 36
9.1.2
SQL INJECTION ...................................................................................................... 36
9.1.3
Cross-site scripting (XSS) ......................................................................................... 37
9.2
Ukládání hesla ................................................................................................................... 38
10.
Tvorba webových stránek Místní knihovny Kozlovice ......................................................... 39
11.
Závěr...................................................................................................................................... 40
12.
Literatura ............................................................................................................................... 41
13.
Přílohy ................................................................................................................................... 43
1.
Úvod
Pojem internet zná dnes ve světě každý a život bez něj si už nikdo nedovede představit. Je to nevyčerpatelná studnice informací, jež se denně aktualizuje. Internet využíváme v komunikaci či ke každodenním činnostem. Jeho široké možnosti využívají nejen fyzické osoby, ale také právnické, a to zejména pro své zviditelnění a nabídnutí podrobných informací široké veřejnosti. V dnešní době jsou webové stránky jedním z nejlevnějších a nejúčinnějších prostředků propagace. Není výjimkou ani pro městské a malé obecní knihovny, že si zakládají své webové prezentace. Pomocí nich nabízejí svým čtenářům informace o své činnosti či přehled dostupných publikací v podobě on-line katalogu. Knihovny dále návštěvníkům stránek poskytují informace o aktuálním dění v knihovně a potencionálním čtenářům zpřístupňuje své kontaktní informace a otevírací dobu. Tato bakalářská práce má za cíl navrhnout a implementovat redakční systém pro tvorbu a správu webové prezentace malých knihoven. Ta má splňovat otázky přístupnosti a také by se měla umět přizpůsobit požadavkům pro osoby s postižením, které nemohou používat stránky běžným způsobem. Podmínkou úspěchu internetových stránek je použití moderních nástrojů pro administraci a údržbu a v neposlední řadě dodržení veškerých standardů, které jsou vyžadovány. Stránky by měly splňovat podstatu sémantického webu, čili by měly být snadno strojově zpracovatelné a srozumitelné lidem. Samozřejmostí je také patřičné zabezpečení, které by mělo zabránit nepovolenému přístupu k citlivým údajům. První část práce má teoretický charakter. Nejdříve čtenáře seznamujeme s problematikou malých knihoven a vysvětlujeme pojem Library 2.0. Vzniklé stránky by měly splňovat veškeré standardy spolu s otázkami přístupnosti a použitelnosti. Nechybí zde proto vysvětlení těchto pojmů a provedení analýzy stávajících redakčních systémů určených pro tvorbu webu malých knihoven. Druhá, praktická část, zahrnuje návrh a implementaci redakčního systému. Při samotné tvorbě je využito poznatků, které byly získány v teoretické části práce. Nechybí zde přehled uživatelských rolí, diagram datových toků a entitně relační diagram, díky nimž jsou popsány funkce a vlastnosti systému. Hlavní z těchto funkcí jsou později podrobněji rozepsány. Nezapomeneme zmínit rozložení jak veřejných webových stránek, tak privátního redakčního rozhraní. Celá další kapitola je pak věnována grafickému designu. Jelikož bezpečnost je velmi důležitý prvek, nechybí shrnutí nejčastějších vnějších útoků na webové stránky a možnosti obrany proti nim. Tento redakční systém vznikl ve spolupráci s Městskou Knihovnou v Přerově, která hodlá tento redakční systém dále využít pro menší obecní knihovny, se kterými kooperuje. Redakční systém byl otestován při tvorbě Místní knihovny Kozlovice. Stránky by měly být v nejbližší době uvedeny do plného provozu.
1
2.
Problematika malých knihoven
Veřejné knihovny mají v současné době stále více vzrůstající konkurenci v oblasti poskytování informačních služeb. Po příchodu internetu už nejsou jediným zdrojem kvalitních informací. Naopak pro mnohé čtenáře je snazší a výhodnější si informace zjistit v teple domova na internetu, než si je najít v knize. Hlavně menší knihovny na venkově mají velké problémy v udržení si svých dosavadních čtenářů a ještě větší v získávání nových. Ve velké míře to je způsobeno nevědomostí. Lidé nevědí, jaké služby jim knihovna může nabídnout a neumí rozeznávat kvalitní informace od nekvalitních. Téměř každá malá obec či vesnice má svoji knihovnu, ale jen některé z nich mají své webové stránky. Problémem jsou většinou finanční zdroje. Vytvoření kvalitního webu není zadarmo a knihovny si jej nemohou dovolit vybudovat. Přitom existence takové webové stránky by mohla vyřešit a vylepšit řadu aspektů. Vyzdvihněme nejdůležitější přínosy: získání nových a udržení si stálých čtenářů zvýšení povědomí o knihovně u mládeže vyzdvižení nabízených programů a služeb, informace o novinkách v knihovně získání nových sponzorů
seznámení s potřebami uživatelů, zkvalitnění poskytovaných služeb zlepšení komunikace mezi uživateli
Žádná knihovna nemůže svým čtenářům poskytnout výběr ze všech již vydaných publikací. Důvodem je na jedné straně kapacita úložných prostor, na straně druhé to jsou opět omezené finanční prostředky. Pro knihovny a především jejich čtenáře je v tomto ohledu velmi nápomocný meziknihovní výpůjční systém (MVS). Tato služba umožňuje uživateli (registrovanému čtenáři) zapůjčení dokumentu, který není ve fondu jeho mateřské knihovny, ze zdrojů jiné knihovny. Činnost knihoven je podporována řadou spolků a organizací. Mezi nejdůležitější patří Mezinárodní federace knihovnických spolků a institucí (dále jen IFLA) [1] a Svaz knihovníků a informačních pracovníků České republiky (dále jen SKIP) [2]. Jejich programy mimo jiné pomáhají knihovnám pořádat zajímavé akce pro jejich čtenáře a zvyšují tak jejich prestiž. Již dvanáctým rokem se vyhlašuje soutěž o nejlepší knihovnické www stránky Biblioweb1. IFLA spolu s UNESCO vytvořila Manifest IFLA/UNESCO o veřejných knihovnách2. Je to základní dokument o knihovnictví, ze kterého vycházelo Ministerstvo kultury ČR při tvorbě zákona č. 257/2001 Sb. o knihovnách a podmínkách provozování veřejných knihovnických a informačních služeb na základě členství našeho státu v UNESCO. SKIP je dobrovolnou profesní a stavovskou organizaci knihovníků a informačních pracovníků, která má charakter občanského sdružení. Hlavním posláním SKIP je usilování o soustavné zvyšování úrovně knihovnické a informační práce. Mezi nejúspěšnější aktivity SKIP patří akce Týden knihoven, Noc s Andersenem, Březen ‒ měsíc čtenářů, Biblioweb nebo Kamarádka knihovna.
1 2
http://www.skipcr.cz/akce-a-projekty/akce-skip/biblioweb-2011 http://archive.ifla.org/VII/s8/news/pg01-cz.pdf
2
3.
Library 2.0
Snahou webového projektu Library 2.0 (v českém ekvivalentu Knihovna 2.0) [3] je upozornit na nový model knihovnického přístupu. Termín poprvé použil Michael Casey na stránkách odborného blogu v roce 2005, jenž se zabýval myšlenkou využít technologií Webu 2.0 v knihovnické sféře. Pojem Web 2.0. zde nebude podrobně popsán, pouze nastíníme jeho základní rysy. Hlavní složkou konceptu Webu 2.0 jsou aplikace či služby, s jejichž pomocí může kdokoliv aktivně vytvářet nebo měnit webový obsah. Web 2.0 však netvoří jen technologie, ale jeho podstata je zakotvena především ve větším zaměření na uživatele. Uživatelům není umožněno pouze sdílet texty, obrazová data nebo multimediální soubory, ale mohou navíc vytvářet virtuální společenství ‒ tzv. komunity. Definic modelu Library 2.0 je celá řada a každá je v něčem odlišná. Všechny ale obsahují následující body: Library 2.0 je model pro neustálé a promyšlené změny soustředěné na uživatele umožňuje uživatelům knihoven účast při zavádění nových služeb snaží se o vylepšení služeb uživatelům současných knihoven a rovněž působení na potencionální uživatele knihoven ‒ tzv. Long Tail Hlavním cílem projektu je tedy snaha udržet současné čtenáře a přilákat nové, zlepšit nabízené služby, reagovat rychle na měnící se požadavky uživatelů a umožnit jejich účast. Účastí uživatelů se myslí možnost psaní hodnocení a komentářů, přizpůsobení rozhraní či zavedení OPAC online katalogů. Aby tento model mohl reálně fungovat, je nezbytné, aby knihovník dodržoval některé standardy a stal se schopným „prostředníkem“ mezi uživatelem a knihovnou. Uživatelům by se měl dát prostor pro vlastní nápady a připomínky. Snaha vyjít jim vstříc v jejich požadavcích a potřebách by měla být na prvním místě. V následujících řádcích je popsáno několik aplikací, které by se v takovém modelu mohly objevit [4]. 1) Blogy a diskusní fóra. V rámci knihoven rozlišujeme blogy interní a externí. Interní slouží zaměstnancům ke sdílení rad a zkušeností. Externí blogy pak umožňují interakci mezi knihovnou a veřejností. Uživatel komentuje činnost knihovny a navrhuje nápady na zlepšení. Blogy jsou také účinným nástrojem pro propagaci knihovny. 2) Chaty a instant messaging. Tyto aplikace, které slouží ke komunikaci v reálném čase, mohou knihovnám posloužit dvěma způsoby. Na jedné straně jsou ideálním řešením pro spolupráci při plánování činnosti, využití ke kooperativnímu řešení problému a posílení vzájemných vztahů. Na straně druhé to je již zmíněná interakce knihovníků s veřejností. Pro příklad jmenujme messengery ICQ nebo Miranda. Pro hlasovou komunikaci pak slouží např. Skype. Velkou výhodnou je bezplatnost všech těchto aplikací. 3) RSS. Jedná se o službu, která provádí syndikaci obsahu (opětovné dodávání aktuálních informací z webu). Služba umožňuje uživatelům přihlásit se k odběru zpráv z míst, které nabízí RSS zdroj. 4) Wiki je aplikace zajišťující jednoduchou tvorbu a změnu informačního obsahu ‒ knižní zdroje, citace. Uplatnění v rámci veřejných knihoven lze opět rozdělit na interní a externí použití. 5) Sociální sítě se staly celosvětovým trendem poslední doby. O jejich masové oblíbenosti dnes již není pochyb. Používání sociálních sítí v knihovnické sféře není moc rozšířeno a jejich potenciál je 3
využíván jen okrajově. Knihovna si může založit svůj profil na sociálních sítích jako Facebook nebo MySpace. Opět je navázána interakce mezi čtenáři a knihovnou. 6) Social bookmarking a tagging. Termín social bookmarking (ve volném překladu sdílení složek) je charakterizován shromažďováním a sdílením odkazů za vzniku vzájemné interakce mezi uživateli. Tagy pak vytváří kategorie, ve kterých se odkazy nacházejí. Na jejich základě se pak odkazy vyhledávají a propojují. Známou aplikací tohoto druhu je Delicious.com. 7) Sdílení obrazových dat a prezentací. Tyto aplikace můžeme využít pro vizuální prezentace knihovny, videoreportáže, seznámení s činností knihovny pro veřejnost (soutěže, výstavy a další aktivity). Obrazová data mohou být prezentována například pomocí Picasa, Flickr nebo Youtube a prezentace pak pomocí Slideshare. 8) OPAC 2.0 (Online Public Access Catalog) [5]. Nemalé množství knihovnických katalogů je charakteristické strohým a nepřehledným uživatelským rozhraním, které spíše vyhovuje potřebám knihovníků než samotným uživatelům. Tyto katalogy jsou pro čtenáře nepřitažlivé a orientace v nich neintuitivní. Tento postoj strohých katalogů mění moderní OPAC 2.0. Katalog je využíván na jedné straně knihovníky pro ulehčení práce a na druhé čtenáři, kterým umožňuje přístup k veškerým dokumentům (knihy, časopisy, CD) z fondu knihovny. Čtenář si může zjistit dostupnost hledané publikace, případně si ji zarezervovat či objednat ze skladu. Každému čtenáři je vytvořen vlastní účet, ve kterém si může kontrolovat seznam svých výpůjček a má možnost si zde prodloužit výpůjční lhůtu. OPAC je doplněn o interaktivní funkce, které napomáhají k efektivnějšímu vyhledávání dle uživatelských dotazů. Například v případě neúspěšného vyhledání katalog inteligentním způsobem rozpozná potřeby uživatele, a nabídne uživateli podobné dokumenty ze stejné kategorie. Navíc katalog umožňuje psaní a sdílení recenzí, komentářů, hodnocení atd. Uživateli je k dispozici seznam všech publikací od jednoho autora, obálka knihy či některé stránky publikace v digitalizované podobě. Příkladem OPAC katalogu je například webový katalog Carmen.
4
4.
Tvorba webové prezentace
4.1 Webové standardy Webové standardy lze definovat jako veřejné normy a doporučení vypracované mezinárodní neziskovou organizací W3C (World Wide Web Consortium)3 . Tyto specifikace podporují rozvoj celého webu a směřují k vzájemnému propojení webových technologií. Vytváření stránek pomocí standardů umožňuje navíc snižovat náklady na jejich tvorbu a údržbu a zároveň zjednodušuje dostupnost těchto stránek. Pro ověření, zda webová stránka dodržuje standarty, jsou využívány validátory [6]. Validace je proces, při kterém validátor porovná kód zadané stránky s webovými standardy a nahlásí případné chyby. Pokud je kód bezchybný, říkáme, že je validní. Např. služba Markup Validation Service4, která je poskytována právě W3C, umožňuje otestovat kompatibilitu webové stránky mimo jiné se standardy HTML 4.01, XHTML 1.0 nebo XHTML 1.1. Naopak validaci kaskádových stylů (CSS) umožňuje služba CSS Validation Service5.
4.2 Přístupnost (Web accessibility) Jak již název napovídá, budeme se v této části zabývat přístupností webu (někdy označovanou jako bezbariérovost). S rozvojem internetu se objevovaly problémy s diskriminací jisté části handicapovaných uživatelů. Hlavním cílem je proto zobrazit uživatelům plně funkční webové stránky a předat jim veškeré informace bez ohledu na možná omezení. Stránky by měly být dobře přístupné pro [7]: uživatele s technickými omezeními (připojení přes mobilní zařízení) uživatele s nejrůznějšími zdravotními handicapy uživatelé s kognitivními poruchami (poruchy učení či soustředění)
uživatele s různým typem prohlížeče či rozlišením monitoru vyhledávací roboty
Na webové prezentaci by neměla chybět možnost zvětšování textu (pro starší uživatele a slabozraké), textová alternativa k audiovizuálním záznamům (pro sluchově postižené uživatele či uživatele bez zvukových reproduktorů), nebo možnost ovládání pomocí klávesnice (pro osoby s pohybovým postižením). Postupně vznikaly metodiky obsahující pravidla a zásady pro tvorbu internetových stránek. Nejdůležitějšími jsou Web Content Accessibility Guidelines 2.0 (dále jen WCAG 2.0) a Blind Friendly Web.
3
http://www.w3.org/standards/ http://validator.w3.org 5 http://jigsaw.w3.org/css-validator/ 4
5
Metodika WCAG 2.0 [8] pochází od konsorcia W3C. Jejím základem jsou 4 hlavní principy, z nichž každé obsahuje několik pravidel. Každé pravidlo je ohodnoceno prioritou A, AA nebo AAA, kde A má prioritu nejnižší a AAA nejvyšší. Hlavními principy jsou: Vnímatelnost ‒ obsah webu je vnímatelný všemi smysly (zrakem, sluchem nebo hmatem). Ovladatelnost ‒ formulářová rozhraní, ovládací prvky a navigace jsou ovladatelné. Srozumitelnost ‒ informace a ovládání uživatelského rozhraní musí být srozumitelné. 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í. Projekt Blind Friendly Web [9] vznikl v roce 2000 ve Sjednocené organizaci nevidomých a slabozrakých ČR a od svého vzniku se systematicky věnuje přístupnosti webových stránek. V roce 2004 se organizace podílela na vzniku příručky Best Practise ‒ Pravidla pro tvorbu přístupného webu, které vydalo Ministerstvo informatiky ČR. V každé kapitole jsou popsány problémové oblasti se stručným popisem jak postupovat při jejich realizaci. Podrobně zde rozebírat tyto pravidla nebudeme, uvedeme si jen jejich tematický přehled [10]:
Obsah webových stránek je 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 pochopitelné. Odkazy jsou zřetelné a návodné. Zdrojový kód musí být technicky způsobilý a strukturovaný. Prohlášení o přístupnosti webových stránek.
4.3 Použitelnost (Web usability) Vedle kvalitního obsahu je dalším významným kritériem pro dosažení efektivního webu jednoduchost jeho užívání. Při návrhu webové prezentace by se měl klást nemalý důraz na ergonomii webu ‒ použitelnost [11]. Webové stránky by měly být především snadno použitelné, přehledné, srozumitelné a intuitivně ovladatelné, aby maximálně usnadnily návštěvníkům orientaci. Obsah musí být strukturován jednoduše, přehledně a logicky. Nalézt hledaná informace by mělo být snadné a rychlé. Uvádí se kritérium, že jakákoliv informace by měla být na webu zjistitelná do tří kliknutí. Dalšími rysy použitelnosti jsou rychlé načítání stránky, efektní estetický grafický design a kvalitní a srozumitelný obsah. Největší nároky na uživatelskou přívětivost vyžaduje zejména úvodní stránka (tzv. homepage). Při návrhu webové prezentace se držíme následujících pravidel: Na každé stránce dodržujeme jasnou vizuální hierarchii ‒ každý prvek má jasnou funkci; čím důležitější obsah, tím by měl být nápadnější. Využíváme zvyklostí ‒ uživatel například očekává, že odkaz na webové stránce bude od ostatního textu odlišen jinou barvou a podtržením. Snažíme se, aby bylo zřejmé, na co je možné klepnout ‒ uživateli by mělo být zřejmé, které slovo v textu označuje odkaz. Minimalizujeme šum ‒ snažíme se vyvarovat dvou extrémů: aby prvky nebyly moc výrazné, ani moc mdlé. 6
4.4 Optimalizace webových stránek pro vyhledávače (SEO) Pojem Search Engine Optimization (dále jen SEO) označuje optimalizaci pro vyhledávače (např. Google.com, Seznam.cz), která zajišťuje webu zobrazení na předních místech vyhledávání na relevantní klíčová slova a fráze. Stránka výsledků zobrazená internetovým prohlížečem se nazývá Search Engine Results Page (SERP). Dobré SEO zajistí, že uživatelé přes vyhledávač snadno najdou požadovanou stránku. Metody, které jsou používány k dosažení optimalizace pro vyhledávání, lze rozdělit na on-page faktory (na webu) a off-page faktory (mimo web). [12] U on-page faktorů mimo jiné záleží, jak jsou jednotlivá slova na stránce často (hustota) či v jakém tagu se vyskytují. Nejdůležitějším tagem na stránce je
. Klíčovou roli hrají nadpisy … a upřednostněna jsou slova vyznačená tučně či kurzívou (<strong>, <em>). Svůj význam má také pojmenování odkazů a obrázků. Použitím atribut alt u obrázků a atributu title u odkazů se zvýší počet klíčových slov v obsahu stránky. Další informace, které by neměly zůstat nevyplněné, jsou description a keywords. Mezi další významné onpage faktory patří: sémantika zdrojového kódu přehlednost a provázanost jednotlivých stránek relevance obsahu ke klíčovým slovům6 aktuálnost a jedinečnost obsahu Pojmem off-page faktory rozumíme vše, co není přímo na optimalizované stránce. Jedná se hlavně o všechny odkazy, které směřují na danou stránku. Tímto se nemyslí jen odkazy z cizích webů, ale i z webu samotného. Mezi nejdůležitější součásti offline optimalizace patří:
analýza relevantních klíčových slov a frází analýza konkurence v SERP na klíčová slova a fráze linkbuilding (budování zpětných odkazů) registrace do katalogů nákup relevantní reklamy zvyšování obecného povědomí o webové stránce na internetu
6
Pro každou stránku je vhodné vybrat maximálně 5 – 6 klíčových slov, přičemž čím jsou stránky specifičtější, tím se snižuje jejich počet. Pro správný výběr klíčových slov lze použít některý z mnoha nástrojů, jež jsou pro tyto účely přístupné na webu. Jako příklad lze uvést systém Adwords od společnosti Google.
7
5.
Přehled redakčních systémů
Content Management System (dále jen CMS), je v podstatě aplikace běžící na webovém serveru pomocí některého z tzv. serverových skriptovacích jazyků. V českém překladu je tento pojem označován jako redakční systém. Jeho hlavní funkcí je správa dat a informací různého charakteru a obsahu, které jsou následně efektivně využívány a zobrazovány na některých z předpřipravených výstupů. Další možností využití je vkládání a editace obsahu bez jakékoliv znalosti tvorby internetových stránek. Redakční systémy toho ale umí mnohem víc než jen publikování textů. Obsahují, nebo do nich lze doinstalovat, celou řadu doplňků jako např. diskusní fórum, fotogalerie či internetový obchod. CMS má tedy širokou škálu použití: od komerčních webových stránek, přes blogy, osobní stránky a katalogy až po časopisy a noviny v elektronické podobě. Uživatel přichází do styku s CMS prostřednictvím webových stránek, které systém produkuje. K ukládání informací nám slouží databázový server. Je výhodnější ukládat údaje do databáze a z ní pak údaje generovat. Můžeme pak s daty dále pracovat, analyzovat je a také samotná úprava obsahu je jednoduší.
5.1 Redakční systémy určené pro správu webových prezentací knihoven Redakční systém určený pro knihovny by měl sloužit k prezentování aktuálního dění v knihovně a k interakci s uživateli (registrovanými čtenáři). Měli bychom tu najít sekci aktualit, fotogalerii, anketu, odkaz na online katalog, diskusní fórum, zajímavé odkazy, kontakty a další užitečné informace o knihovně. Stránky mohou obsahovat i uživatelské konto. V současné době jsou přímo pro knihovny vytvořeny dva redakční systémy, oba jsou však zpoplatněni. Na následujících řádcích je proveden menší rozbor těchto systémů.
5.1.1 Šablona webu pro malé knihovny (www.webknihovny.cz) Tato služba je poskytována Knihovnou města Hradce Králové, která je vlastníkem licence. Šablona vznikla v roce 2006 a zájem o ni se rychle zvyšoval. V současné době má šablonu zaregistrovanou kolem čtyř set knihoven po celé ČR. Knihovna Hradec Králové byla díky této šabloně oceněna Ministerstvem kultury ČR jako Knihovna roku 2007 v kategorii Informační počin7. Šablona umožňuje kromě základních funkcí vkládání souborů, formátování textu v editoru, nebo správu hlavního menu. Nechybí zde ani jednoduše řešená fotogalerie a stránka s externími odkazy. Jako velké plus se počítá poměrně široká technická podpora a rychlé řešení vzniklých problémů. Velkou nevýhodou šablony je uniformní vzhled. Kromě možnosti volby barvy pozadí nejsou k dispozici žádné další možnosti vzhledu, či dokonce nějaké předpřipravené atraktivní šablony. Všechny weby knihoven vytvořené touto šablonou mají tedy až na barvu pozadí a úvodní obrázek v hlavičce shodný design. Na úvodní straně v drtivé většině nenajdeme zveřejněný rychlý kontakt nebo otevírací dobu knihovny, i když právě toto je informace, pro kterou většina uživatelů stránky navštíví. K dispozici není integrovaná anketa jako taková, která by umožnila komunikaci se čtenáři 7
http://www.ikaros.cz/knihovna-roku-2007
8
a zjistila jejich potřeby a přání. Šablona je zpoplatněna ‒ roční poplatek za vedení šablony závisí od počtu obyvatel v dané obci. Nejvyšší sazba činní 600,- Kč ročně. Webovou prezentaci knihovny, která byla vytvořena podle této šablony, můžete vidět na obrázku č. 1.
Obrázek č. 1: Webové stránky vytvořené pomocí Šablony webu pro malé knihovny
5.1.2 Naseknihovna.cz (www.naseknihovna.cz/info) Tato šablona vznikla v roce 2007 a je používána několika desítkami knihoven v Jihomoravském kraji. Systém funguje na principu on-line registrace. Obsah stránek je formátován pomocí WYSIWYG editoru CKEditor. K šabloně je k dispozici servisní stránka. Webová stránka vytvořená touto šablonou je na obrázku č. 2. Na úvodní straně návštěvníci opět nenajdou zveřejněný rychlý kontakt a otevírací dobu. Chybí také anketa či fotogalerie s možností roztřízení fotografií. Další nevýhody jsou: nenabízí předpřipravené atraktivní šablony roční poplatek za vedení činí 1200,- Kč nepodporuje jednoduché vkládání prvků Webu 2.0. nepodporuje vkládání obrázků s příponou .png bez čtenářského konta
9
Obrázek č. 2: Webové stránky vytvořené pomocí šablony naseknihovna.cz
5.2 Open source redakční systémy V této kapitole se zaměříme na nastínění univerzálních redakčních systémů, které nejsou zpoplatněny ‒ tzv. open source systémy. Pro malé obecní knihovny je cena komerčních redakčních systémů příliš vysoká, proto zde popis těchto systémů zcela vynecháme. Mezi nejpoužívanější open source redakční systémy patří Joomla, Drupal a Wordpress. To, že tyto systémy nejsou zpoplatněny, nutně neznamená, že jsou z hlediska funkcí a vlastností nedostačující. Právě naopak, někdy jsou tak propracované a podrobné, až jsou nepřehledné, a běžný uživatel s průměrnou počítačovou gramotností si pak s nimi ani nedokáže poradit. Následuje krátký popis těchto systémů: Joomla. Pro aplikaci jsou dostupné vzhledy a další rozšíření, pomocí kterých do stránek implementujete např. internetový obchod, diskusní fórum nebo fotogalerii. Nejnovější verzí je Joomla 1.6. Redakční systém je dostupný v českém jazyce. Drupal. Přidáním dalších modulů lze rozšířit webové stránky například o fotogalerii nebo elektronický obchod. K dispozici jsou i různé vzhledy. Aktuální verze je Drupal 7. Tvůrci aplikace se v nové verzi zaměřili hlavně na větší bezpečnost, rychlost, uživatelskou přístupnost a sémantiku webu. WordPress je zaměřen převážně na tvorbu osobních stránek a blogů. V roce 2009 získal první cenu v hlavní kategorii soutěže Open Source CMS Awards8. Mezi jeho hlavní přednosti patří snadné ovládání a správa, výtečná rozšiřitelnost a kvalita výstupu.
8
http://www.packtpub.com/open-source-awards-home
10
6.
Analýza a návrh systému
V této kapitole si představíme uživatelské role (terminátory) a uvedeme seznam událostí, které vykonávají a na které musí systém reagovat. Součástí kapitoly je taktéž návrh diagramu datových toků a diagramu entit a vztahů. Při tvorbě diagramů byla využita aplikace Case Studio 29.
6.1 Seznam událostí a uživatelské role V navrhnutém redakčním systému můžeme nalézt čtyři terminátory ‒ běžný návštěvník, registrovaný uživatel (čtenář), správce diskusního fóra a administrátor (knihovník). Každého z terminátorů si stručně popíšeme a vypíšeme k němu hlavní seznam událostí. Za každou událostí je v závorce uveden typ události. Události spojené s datovým tokem jsou označeny zkratkou (F) ‒ Flow, událost spojená s datovým časem zkratkou (T) ‒ Temporal a nakonec řídící události označuje zkratka (C) ‒ Control.
6.1.1 Návštěvník Tento uživatel není nijak registrován a přistupuje jen k veřejné části webu. Z pohledu systému se jedná o anonymního uživatele. Může číst veškerý obsah umístěný na webu, psát příspěvky do diskusního fóra, hlasovat v anketě, stahovat přiložené dokumenty, změnit si nastavení velikosti a rozlišení písma, a má také přístup do katalogu dané knihovny. Návštěvník má možnost se zaregistrovat a stát se tak registrovaným uživatelem ‒ tímto získává práva navíc. Seznam základních událostí pro terminátor návštěvník: N01: Prohlížet webové stránky (F) N02: Přidat příspěvek do fóra (F) N03: Založit nové vlákno diskusního fóra (F) N04: Hlasovat v anketě (F) N05: Nastavit si zobrazení stránky (F) N06: Zaregistrovat se (F)
6.1.2 Registrovaný uživatel (čtenář) Registrovaný uživatel může kromě všech událostí, které má k dispozici návštěvník, upravovat svůj profil, zažádat si o prodloužení výpůjční lhůty, nebo si zažádat o MVS. Seznam přidaných událostí pro terminátor registrovaný čtenář: R01: Editovat profil (F) R02: Změnit heslo (F) R03: Přihlásit (F) R04: Odhlásit (F) R05: Žádat o prodloužení lhůty vypůjčené knihy (F) R06: Žádat o MVS (F) 9
http://www.casestudio.com/enu/default.aspx
11
6.1.3 Správce diskusního fóra Tento terminátor má na starosti akce související s diskusním fórem. Nemá přístup do redakčního systému, změny provádí po přihlášení v rozšířeném rozhraní přímo na webové stránce. Správců diskusního fóra může být více a jejich účty jsou vytvářeny administrátorem v redakčním systému. Seznam základních událostí pro terminátor správce diskusního fóra: S01: Přihlásit (F) S02: Odhlásit (F) S03: Založit nové vlákno diskusního fóra (F) S04: Přidat příspěvek do diskusního fóra (F) S05: Mazat vlákno diskusního fóra (F) S06: Mazat příspěvek diskusního fóra (F)
6.1.4 Administrátor Administrátor má v systému neomezená práva. Jeho hlavní rolí je naplnění webu daty, udržování aktuálnosti obsahu a vyřizování požadavků čtenáře. Je mu také umožněno měnit grafický vzhled webových stránek. Podobně jako správce diskusního fóra může spravovat diskusi, a to přímo z administrativního rozhraní. Primárně je v systému vytvořen jeden účet administrátora, ale celkový počet administrátorů není nijak omezen. Seznam základních událostí pro terminátor administrátor: A23: Vystavit anketu na web (F) A01: Editovat informací o knihovně (F) A24: Sejmout anketu z webu (F) A02: Dotaz na přehled aktualit (C) A25: Smazat anketu (F) A03: Vytvořit aktualitu (F) A26: Dotaz na přehled fotoalb (C) A04: Editovat aktualitu (F) A27: Vytvořit fotoalbum (F) A05: Smazat aktualitu (F) A06: Dotaz na přehled položek menu (C) A07: Vytvořit položku menu (F) A08: Editovat položku menu (F) A09: Určit pořadí položky menu (F) A10: Smazat položku menu (F) A11: Dotaz na přehled postranních štítků (C) A12: Vytvořit postranní štítek (F) A13: Editovat postranní štítek (F) A14: Určit polohu a pořadí postranního štítku (F) A15: Smazat postranní štítek (F) A16: Dotaz na přehled volných stránek (C) A17: Vytvořit volnou stránku (F) A18: Editovat volnou stránku (F) A19: Smazat volnou stránku (F) A20: Dotaz na přehled anket (C) A21: Vytvořit novou anketu (F)
A28: Editovat fotoalbum (F) A29: Smazat fotoalbum (F) A30: Vložit fotografie do alba (F) A31: Smazat fotografie z fotoalba (F) A32: Vytvořit upozornění (F) A33: Editovat upozornění (F) A34: Smazat upozornění (F) A35: Dotaz na přehled zajímavých odkazů (C) A36: Vytvořit zajímavý odkaz (F) A37: Editovat zajímavý odkaz (F) A38: Smazat zajímavý odkaz (F) A39: Dotaz na přehled nových žádostí o MVS (C) A40: Dotaz na přehled zpracovávaných žádostí o MVS (C) A41: Dotaz na přehled již zpracovaných žádostí o MVS (C)
A22: Editovat anketu (F)
A42: Přijímat žádost o MVS (F) 12
A43: Zamítat žádost o MVS (F) A44: Dotaz na přehled žádostí o prodloužení (C) A45: Dotaz na přehled již zpracovaných žádostí o prodloužení (C) A46: Přijímat žádost o prodloužení (F) A47: Zamítat žádost o prodloužení (F)
A48: Vytvořit nový účet (F) A49: Změnit heslo (F) A50: Dotaz na přehled nahraných souborů (C) A51: Nahrát soubor na server (F) A52: Smazat soubor ze serveru (F) A53: Nastavit design webových stránek (F)
6.2 Diagram datových toků (Data Flow Diagram) Diagram datových toků (označován zkratkou DFD) [13, 14] je modelovací nástroj, který umožňuje zobrazit systém jako síť procesů. Ty plní dané funkce a předávají si mezi sebou data. Funkce systému ilustrujeme pomocí čtyř základních typů komponent: Proces ‒ Provádí transformaci dat (mění vstupní data na výstupná). Procesy mohou mezi sebou navzájem komunikovat pomocí datových toků. Terminátor ‒ Externí entita, se kterou systém komunikuje. Není součástí systému jako takového. Jako terminátor si můžeme představit jak uživatele, kteří se systémem pracují, tak vnější software a hardware pracující se systémem.
Datový tok ‒ Znázorňuje cestu, po které se pohybují datové shluky z jedné části systému do druhé. Úložiště dat (paměť) ‒ Pasivní prvek systému sloužící k uložení dat.
Obrázek č. 3: Notace zápisu komponent DFD
Z důvodu přehlednosti a nedostatku prostoru se u větších systémů provádí tzv. dekompozice (diagram datových toků se rozdělí do úrovní, které na sebe navazují). Nejdříve se zobrazí systém jako jediný celek ‒ tzv. kontextový diagram. Následně se provádí dekompozici tak dlouho, dokud nevzniknou jednoduché procesy, které již nelze dále rozkládat.
13
6.2.1 Kontextový diagram Kontextový diagram je speciálním případem diagramu datových toků. Systém je zobrazen jedním procesem nazvaným redakční systém pro malé knihovny, který je propojený s vnějším prostředím pomocí vstupních a výstupních toků. Vstupní a výstupní toky jsou z důvodu vyšší přehlednosti barevně rozlišené.
Obrázek č. 4: DFD ‒ kontextový diagram
14
6.2.2 První úroveň dekompozice Diagram znázorňující první úroveň dekompozice obsahuje dva procesy. K prvnímu procesu systém pro správu obsahu a vzhledu má přístup pouze terminátor administrátor. Jak je zřejmé z názvu, vytváří a upravuje se zde obsah a nastavuje vzhled webových stránek knihovny. Druhý proces s názvem webové stránky pak tyto stránky generuje a komunikuje pomocí vstupních a výstupních toků s terminátory správce diskuse, registrovaný uživatel a návštěvník.
Obrázek č. 5: DFD ‒ první úroveň dekompozice
15
6.2.3 Druhá úroveň dekompozice ‒ Systém pro správu obsahu a vzhledu Systém pro správu obsahu a vzhledu jsme rozdělili do 6 procesů: správa obsahu, správa vzhledu, správa souborů, správa žádostí čtenářů, správa diskuse a správa účtů. Ve správě obsahu administrujeme veškerý obsah, který se bude následně generovat na webové stránky. Jedná se o hlavní proces, který plní hlavní funkci celého systému. Proto také komunikuje s nejvíce pamětmi ze všech procesů. Proces správa vzhledu obsahuje nastavení designu webových stránek. S vytvořenými účty pracujeme v procesu správa účtů a se žádostmi od registrovaných uživatelů v procesu správa žádostí čtenářů.
Obrázek č. 6: Druhá úroveň dekompozice ‒ Systém pro správu obsahu a vzhledu
16
6.2.4 Druhá úroveň dekompozice ‒ Webové stránky Proces webové stránky je dále rozdělen do 6 procesů. Hlavním procesem v této úrovni je generovaná stránka, která z pamětí generuje konečnou podobu webové stránky. Dále pracujeme s procesem správa registrovaného čtenáře, která mimo jiné zajišťuje autentizaci uživatele do systému. Dalšími procesy jsou správa nastavení uživatele, správa diskuse, správa účtu a správa anket.
Obrázek č. 7: Druhá úroveň dekompozice ‒ Webové stránky
17
6.2.5
Třetí úroveň dekompozice ‒ Správa obsahu
Jelikož proces správa obsahu je v systému velmi důležitý, zobrazíme si i diagram s jeho popisem. Jsou na něm podrobně popsány možnosti administrátora při správě obsahu webu. Administrátorovi je umožněno spravovat anketu, postranní štítky, fotogalerii, zajímavé odkazy, aktuality, hlavní menu, volné stránky, upozornění a základní informace o knihovně.
Obrázek č. 8: Třetí úroveň dekompozice ‒ Správa obsahu
18
6.3 Diagram entit a vztahů (Entity Relationship Diagram) Diagram entit a vztahů (ERD) [14] je určen pro návrh struktury databáze, popis hlavních vlastností dat v ní uložených a pro zápis vztahů mezi jednotlivými entitami. Prvky diagramu jsou entita, atribut a relace. Entita je objekt, o němž uchováváme informace. Je popsána jedním či více atributy a můžeme ji jednoznačně identifikovat. V diagramu je popsána obdélníkem. Atribut je vlastnost entity nebo vztahu, jejíž hodnotu chceme uchovat a používat v systému. Popisuje typ hodnoty, která se v entitě uchovává. Vztah (vazba) mezi entitami je popisována relací. Ta je v diagramu realizována čarou, nad kterou je popisek upřesňující vztah mezi entitami. Existuje několik možností definování vztahu relace: tabulky nejsou v relacích ‒ jsou v nich nesouvisející údaje mezi tabulkami je vztah 1:1 ‒ jednomu záznamu v jedné tabulce odpovídá přesně jeden záznam v tabulce druhé mezi tabulkami je relace 1:N ‒ jednomu záznamu v jedné tabulce odpovídá více záznamů v tabulce druhé; nejpoužívanější typ relace mezi tabulkami je relace M:N ‒ více záznamů v jedné tabulce odpovídá více záznamů v tabulce druhé
Obrázek č. 9: Notace kardinality vztahu
Častou operací prováděnou v tabulkách je změna obsahu jednoho atributu u určitého záznamu. Pro provedení této operace musíme jednoznačně určit tento záznam. Proto v tabulce určujeme jedinečný primární klíč, který je zvolen tak, aby nebylo možné opakování hodnot v jeho sloupci. Většinou volíme ID, které se automaticky inkrementuje po přidání nového záznamu. Rozlišujeme tři základní typy klíčů: •
Primární klíč (PK ‒ Primary Key) ‒ jednoznačně identifikuje entitu
•
Cizí klíč (FK ‒ Foreign key) ‒ atribut, který je přijat z jiné entity
•
Primární a cizí klíč současně (PFK ‒ Primary Foreign key)
Diagram entit a vztahů pro náš redakční systém je zobrazen na obrázku č. 10. Je složen z celkem dvaadvaceti tabulek, které jsou vzájemně propojeny. Podrobnější popis tabulek zde nebudeme uvádět, můžete ho ale najít na přiloženém CD.
19
Obrázek č. 10: Diagram entit a vztahů
20
7.
Implementace redakčního systému
Implementace má za úkol převést návrh daného systému do podoby spustitelného kódu. Jedním z hlavních rysů navrhovaného redakčního systému je udržení obsahu odděleně od jeho formy. To v praxi znamená, že texty, články a další data jsou uložena na jiném místě a jinak než vzhled webu samotného. Tento přístup je praktický z hlediska změny vizuální podoby, kdy nemusíme zasahovat do struktury webu. Zaručuje také větší pružnost aplikace. Redakční systém je rozdělen na dvě uživatelské části ‒ privátní a klientskou. Do privátní části má přístup pouze administrátor. Ten je zde přesměrován z klientské části po úspěšné autentizaci; neautorizované osobě je přístup zamítnut. Klientská (veřejná) část je přístupná všem uživatelům ‒ jak nepřihlášeným tak přihlášeným. V sekci použité technologie si uvedeme a krátce popíšeme prvky, které byly využity pro tvorbu internetové prezentace a jejího redakčního systému. Následně si popíšeme hlavní funkce přístupné administrátorovi v privátní sekci, a také nastíníme strukturu webových stránek.
7.1 Použité technologie 7.1.1 HTML (Hypertext Markup Language) Stručně řečeno se jedná o hypertextový značkovací jazyk určený pro tvorbu webových stránek. Sděluje prohlížeči, jak má text a další objekty ve webovém dokumentu vypadat. Značkovacím jazykem rozumíme jazyk pro vytvoření dokumentů, který kromě vlastního textu obsahuje i instrukce pro jeho zpracování. Slovo „hypertext“ označuje dokument, který se může měnit, či přesměrovat. Přenos HTML stránek z WWW serveru do prohlížeče zajišťuje HTTP (HyperText Transfer Protocol) [6]. HTML jazyk je složen ze speciálních značek (tzv. tagů). Tagy mohou být párové nebo nepárové. Rozšířením a úpravou HTML vznikl jazyk XHTML (eXtensible Hypertext Markup Language). Ten vyhovuje podmínkám tvorby XML dokumentu při zachování zpětné kompatibility.
7.1.2
CSS (Cascading Style Sheets) ‒ kaskádové styly
Jako prostředek pro formátování webových stránek byly zvoleny kaskádové styly (dále jen CSS) [15]. Hlavním cílem CSS je umožnění oddělit vzhled dokumentu od jeho struktury a obsahu a tím vytvořit více přístupné a snadněji udržovatelné stránky. Jestliže chceme změnit nějaký detail, nemusíme zasahovat do souboru se strukturou a daty, ale změníme pouze vlastnost v CSS souboru. Používání kaskádových stylů přináší celou řadu výhod. Kromě výše zmíněných to dále jsou: zkrácení času načtení stránky (CSS se načítá do cache počítače) snížení doby potřebné pro návrh a vývoj snížení času potřebného na aktualizaci a údržbu zlepšení funkčnosti nastavení více CSS pro jeden dokument v závislosti na výstupním zařízení (např. pro tisk) zvýšením přístupnosti stránek
dědičnost vlastností elementů 21
7.1.3 PHP (Hypertext preprocesor) Programovacím jazykem databáze byl zvolen jazyk PHP [16,17]. Tento skriptovací jazyk byl vyvinut společností Apache Software Foundtation10 a je šířen freeware (zcela bezplatně). Jednotlivé jeho požadavky jsou zpracovávány na straně serveru. Při použití společně s databází MySQL11 umožňuje jednoduché vytváření dynamických internetových stránek. To je také důvod, proč je silně podporován v databázových systémech. Další výhodou PHP je jeho nezávislost na platformě. Je k dispozici pro Unix a Windows. PHP není vázáno s žádným konkrétním serverem, ale nejčastěji se používá ve spojení s webovým serverem Apache.
7.1.4 MySQL MySql je jeden z nejoblíbenějších relačních databázových systémů. Je to systém řízení relačních databází ‒ RDBMS (Relational Database Management System) s otevřeným zdrojovým kódem (tzv. Open Source). Jeho schopnost tkví v ukládání obrovského množství rozličných dat, s kterými je následně pracováno pomocí provádění dotazů na databázi. Každá databáze v MySQL je tvořena z jedné nebo více tabulek, které mají řádky a sloupce. V řádcích rozeznáváme jednotlivé záznamy, zatímco sloupce mají jméno a uvozují datový typ jednotlivých polí záznamu. Použití MySQL obnáší spoustu výhod [18]: je zdarma k dostání pro většinu účelů velká výkonnost podpora většiny možností jazyka SQL standardu ANSI, online zálohování, replikace, podpora vrstvy zabezpečených soketů (Secure Sockets Layer ‒ SSL) přenositelnost mezi operačními systémy lehká správa a použití, možnost nastavení fulltextové vyhledávání
7.1.5 JavaScript Tento programovací jazyk se často používá pro oživení webových stránek. Je zapisován přímo do HTML kódu. JavaScript [19] je klientský jazyk, což znamená, že běží a je vykonáván na straně klienta. Výhodou je, že se nemusí kompilovat (je interpretovaný) a využívá objektů prohlížeče a zabudovaných objektů (je objektový). Má také své nevýhody ‒ funguje pouze v prohlížeči, neumí přistupovat k souborům nebo uložit data (kromě cookies), může být uživatelem zakázán a nechová se stejně ve všech prohlížečích.
10 11
www.apache.org www.mysql.com
22
7.2 Redakční systém a jeho funkce Tento redakční systém byl vytvořen na základě poznatků získaných z předešlých kapitol. Jeho úkolem je pomoci knihovníkovi vytvořit plně funkční a vzhledově unikátní webovou prezentaci pro svoji knihovnu a jednoduše spravovat její obsah. Vzhledem k pokročilejšímu věku většiny knihovníků na malých obcích a jejich průměrné znalosti práce s počítačem, se stal prioritou návrh takového administračního prostředí, které je jednoduché a intuitivní, ale na druhé straně stále dodržuje všechny nároky a standardy, které jsou od redakčního systému požadovány. Nechybí ani správa uživatelů, nahrávání souborů a obrázků bez použití FTP (File Transfer Protocol), či možnost navolit design stránek. U administrátora se nepředpokládá znalost jazyka HTML. Do systému je tedy implementován editor, který umožňuje lehce vytvářet a editovat texty. Tento editor je do stránek integrován pomocí tagu . Jedná se o WYSIWYG editor TinyMce12, který v systému slouží k editování veškerých větších ploch textu. WYSIWYG je akronym věty „What you see is what you get“, tedy v českém překladu „co vidíš, to dostaneš“. TinyMce má velmi rozsáhlé editační možnosti. Velkou výhodou je kromě základních vlastností možnost vkládání textu přímo z editoru Microsoft Word, možnost editace tabulek, vkládání a formátování obrázků či vkládání odkazů. Vytvořený redakční systém je rozdělen do tří celků. První část tvoří správa obsahu, ve které administrátor vytváří a mění veškerý obsah webových stránek knihovny. Druhou částí je správa vzhledu, pomocí níž se dá změnit grafický návrh stránky. Poslední částí je čtenářské konto. Zde jsou zpracovávány požadavky na prodloužení výpůjční doby či žádosti o MVS. Pro ulehčení práce se soubory byla vytvořena menší sekce správa souborů, pomocí které se mohou na server vkládat nové přílohy a obrázky a nalezneme zde přehled všech stránek, příloh, obrázků a fotografií společně s odkazy na ně. Nepotřebné soubory zde mohou být smazány. Nechybí ani sekce nastavení, v které si administrátor může změnit heslo a vytvářet zde nové účty jak pro administrátora, tak pro správce diskusního fóra. Také tu najde přehled všech administrátorských účtů a účtů správce diskuse.
7.2.1
Funkce správy obsahu
V sekci správa obsahu se mění téměř veškerý obsah, který se nachází na webové stránce. Najdeme zde podsekce upravující hlavní menu, volné stránky, ankety, fotoalba, aktuality, zajímavé odkazy, upozornění či postranní štítky. Také zde můžeme spravovat obsah diskusního fóra. Vzhledem k faktu, že redakční systém je primárně vytvořen pro obecní knihovny spadající pod jednu městkou knihovnu, nabízí se možnost generování stránek se společnými prvky. Jedná se například o ceník služeb nebo výpůjční řád. Knihovníkovi se tak ušetří spousta času, který by strávil nad pracným vytvářením těchto stránek v editoru. 7.2.1.1
Hlavní menu
Hlavní menu je velmi důležitým prvkem stránky. Umožňuje návštěvníkovi snadný pohyb po webu. Menu se spravuje v sekci správa menu. Na stránce přehled položek menu je k dispozici tabulka, která obsahuje seznam všech položek menu společně s jejich pořadím, názvem a jménem 12
http://tinymce.moxiecode.com/
23
administrátora, který naposledy stránku upravoval. Na každém řádku se také nacházejí odkazy sloužící ke změně pořadí, k aktivaci nebo deaktivaci položky, a také odkazy na editaci a smazání položky. Pod tabulkou najdeme odkaz na formulář vytvářející novou položku menu. Jednotlivé stránky hlavního menu uložené v databázi rozdělíme pro naše účely na „vložené“ a „vlastní“. „Vložené“ stránky jsou nahrány do databáze již při vytvoření a nelze je z ní vymazat. Obsah těchto stránek je buď z části, nebo celý generován. Až na výjimky obsah nelze editovat. Jelikož ne všichni budou chtít využít tyto „předpřipravené“ stránky, lze určit, která stránka bude zobrazena (aktivována) a která ne (deaktivována). „Vlastní“ stránky jsou ty, které celé vytváří administrátor. Mohou být libovolně mazány a editovány. Příklady takových stránek mohou být Statistiky knihovny, Historie knihovny, Informace pro ostatní knihovny, FAQ aj. Zde je uveden seznam „vložených“ stránek: Úvodní stránka ‒ Obsah stránky je libovolný a je spravován administrátorem v editoru. Na konec textu jsou připojeny tři nejnovější aktuality. Kontakt ‒ Možnost automatického vygenerování celé stránky. K vytvoření jsou použity
informace, které zadal knihovník do formuláře s názvem obecné informace. Po vygenerování se může s textem libovolně pracovat a stylizovat ho. Možnost opětovného vygenerování. Aktuality ‒ Vypisuje zkrácený přehled všech aktualit od nejnovější po nejstarší. Samotný obsah aktualit může být editován v podsekci správa aktualit. Ceník služeb ‒ Tabulka s ceníkem je vytvořena automaticky. Možnost stránku libovolně upravovat a stylizovat. Možnost opětovného vygenerování původní tabulky s ceníkem. Výpůjční řád ‒ Stránka obsahující předpřipravený výpůjční řád. Možnost obsah upravit a stylizovat v editoru. Fotogalerie ‒ Zobrazuje přehled všech vytvořených fotoalb. Fotoalba s fotografiemi lze spravovat v podsekci správa fotogalerie. Zajímavé odkazy ‒ Obsahuje přehled odkazů doporučených knihovnou. V databázi je již po vytvoření uloženo několik odkazů na projekty související s činností knihovny. Knihovník může dle libosti přidávat nové odkazy například svých sponzorů či partnerů a měnit či mazat odkazy stávající. Pro vytvoření odkazu stačí zadat jeho popisek a URL odkaz. Je umožněno přidat k odkazu logo stránky, které se může libovolně měnit. Diskusní fórum ‒ Zobrazuje přehled témat diskusního fóra a jejich reakce. Je zde k dispozici formulář pro vytváření nových příspěvků.
Administrátor je schopen v sekci správa menu provádět následující operace: vytvořit položku menu ‒ Pro vytvoření je nutno zadat název a obsah nové stránky, přičemž ani jedna položka nesmí být prázdná. Po vytvoření je stránka aktivní (je zobrazena na webových stránkách) a zařadí se na konec seznamu aktivních prvků hlavního menu. editovat obsah položky menu ‒ U „vlastních“ a“vložených“ stránek, které se dají editovat, můžeme měnit název a v editoru pak i obsah. vymazat položku menu ‒ Nenávratně smaže danou položku menu z databáze. Mazat můžeme jen „vlastní“ stránky.
24
zvolit pořadí položky menu ‒ Možnost libovolně měnit pořadí všech prvků, které jsou aktivní. Neaktivní prvky nemají určené pořadí a po opětovném aktivování se zobrazí na konci seznamu aktivních prvků. aktivovat/deaktivovat některé položky menu ‒ Možnost volby, které prvky menu zobrazit a které ne. U neaktivních prvků není určeno pořadí a jsou seřazeny na konec seznamu. 7.2.1.2
Přidávání nových stránek
Máme dvě možnosti, jak přidávat nové stránky do webové prezentace. První možnost (vkládání stránek do hlavního menu) jsme si již popsali výše, další možností je vytvoření tzv. volných stránek. Tyto stránky nejsou uvedeny v hlavním menu, ale je na ně odkazováno někde v obsahu webových stránek. Opět je k dispozici přehled všech volných stránek. Stránka je reprezentována názvem, odkazem na stránku v textové podobě, jménem administrátora, který stránku naposledy upravoval, a odkazy na editaci a případné smazání. Pro vytvoření volné stránky je nutno zadat její název a obsah. Obsah je vytvářen a následně editován v editoru. Všechny volné stránky mohou být smazány. 7.2.1.3
Štítky postranních sloupců
Pojmem štítky postranních sloupců jsou myšleny funkční a obsahové upoutávky, které se návštěvníkům webových stránek zobrazují v okrajových sloupcích. Štítky mohou být dvojího typu ‒ „obsahové“ a „bez obsahu“. Štítky „bez obsahu“, jak už název napovídá, neobsahují žádné sdělení a slouží jako odkaz na jiné stránky. Jedná se o štítky s odkazem na On-line katalog a na Diskusní fórum. Odkazem na On-line katalog se rozumí stránky již existujícího katalogu, s kterým knihovna pracuje. Odkaz na něj se zadává ve formuláři obecné informace. „Obsahové“ štítky pak dále pro pochopení rozdělíme na „pevné“ a „vlastní“. „Pevné“ štítky jsou umístěny v databázi trvale a nejde je smazat. „Vlastní“ štítky vytváří administrátor. Mezi „pevné“ štítky řadíme: Kontakty ‒ Tento štítek je na stránce povinný, proto jej nejde smazat ani deaktivovat, můžeme ho ale na stránce libovolně přemisťovat. Obsah je možno vygenerovat dle informací uložených ve formuláři obecné informace a dále ho upravovat a stylizovat. Fotogalerie ‒ Štítek obsahuje fotografii z fotoalba s odkazem na Fotogalerii. Fotografie je po každém načtení webové stránky náhodně zvolena z fotografií uložených do jednotlivých fotoalb. Tento štítek nelze smazat, ale není povinný, takže ho můžeme deaktivovat. Návštěvnost ‒ U webů knihoven je statistika přístupu nezbytný údaj, proto je tento štítek na stránce povinný a nelze jej smazat ani deaktivovat. Diskusní fórum ‒ Štítek slouží jako odkaz na diskusní fórum, může být deaktivován. On-line katalog ‒ Štítek slouží jako odkaz na on-line katalog, který knihovna používá, může být deaktivován. Administrátorovi je na stránce přehled nabídky sloupců zobrazen přehled štítků ve dvou tabulkách. Ty reprezentují pravý a levý postranní sloupec. V tabulce jsou zobrazeny informace o pořadí štítků v jednotlivých sloupcích a popisku štítku. Opět nechybí odkazy na editaci a smazání společně s odkazy na změnu pořadí a prohození štítku v rámci sloupců. 25
Se štítky je možno provádět tyto akce: vytvořit štítek ‒ Pro vytvoření je nutno zadat název a obsah štítku. Výjimkou je štítek s anketou, ten vytvoříme pouze aktivací ankety. Obsah je vytvářen v editoru. Po vytvoření je štítek zobrazen v pravém sloupci, poslední v pořadí. editovat štítek ‒ U štítků s obsahem můžeme editovat název i obsah (výjimkou je štítek s anketou a návštěvností), štítky bez obsahu editovat nemůžeme. vymazat štítek ‒ Vymazat z databáze můžeme jen štítky „vlastní“. Speciálním případem je štítek s anketou, ten smažeme pouze deaktivací ankety. volit pořadí štítku v rámci jednoho sloupce ‒ Máme možnost libovolně měnit pořadí všech štítků, ať už s obsahem nebo bez obsahu, v rámci jednoho sloupce. volit sloupec, ve kterém se štítek zobrazí ‒ Umožněno horizontální prohazování všech štítků mezi pravým a levým sloupcem. Vyměněný štítek se vždy zařadí na konec nového sloupce. 7.2.1.4
Aktuality
Pomocí aktualit může administrátor pro čtenáře zveřejňovat informace o dění v knihovně. Mohou zde být také publikovány připravované akce, shrnutí akcí již uskutečněných, recenze knížek, soutěže pro čtenáře, informace související s chodem knihovny atd. Na stránce přehled aktualit je zobrazen přehled aktualit v pořadí od nejnovějších po nejstarší. Každá aktualita nese informaci o datu vytvoření, nadpisu, počtu příloh, a zdali je u aktuality nastavený úvodní obrázek a jméno administrátora, který aktualitu vytvořil. Administrátor je schopen v sekci správa aktualit provádět následující akce: vytvořit aktualitu ‒ Kliknutím na odkaz vložit aktualitu se zobrazí formulář pro vytváření aktuality. Povinnými údaji jsou název a text aktuality. Název podléhá přednastavenému formátování, obsah je formátován v editoru. Navíc můžeme zadat úvodní obrázek, který aktualitu reprezentuje v jejím náhledu. Pokud není obrázek vložen, zobrazí se obrázek výchozí (přednastavený). Vkládat můžeme obrázky s příponami .jpg, .gif a .png. Nechybí ani možnost připojit k aktualitě libovolný počet příloh. Může se jednat o různé dokumenty, které s aktualitou souvisí. Tyto přílohy se posléze na webové stránce zobrazí v podobě seznamu za obsahem aktuality. Jako datum vytvoření je automaticky vyplněn aktuální datum. editovat aktualitu ‒ Možnost editovat název i obsah aktuality, dále pak spravovat úvodní obrázek a mazat či přidávat přílohy.
vymazat aktualitu ‒ Nenávratně smaže vytvořenou aktualitu z databáze. Vymaže také přílohy a přiložený obrázek. V obou případech se používá kontrola, jestli daný soubor není používán i v některé další aktualitě. 7.2.1.5
Fotoalbum
Na webových stránkách knihovny by nemělo chybět fotoalbum obsahující nejrůznější fotografie nejen z prostředí knihovny. Fotoalba lze vytvářet v sekci správa fotogalerie. Zde najdeme přehlednou tabulku dosud vložených fotoalb. Jednotlivé fotoalbum je reprezentováno názvem, datem vytvoření, počtem obsahujících fotografií, jménem administrátora, který fotoalbum vytvořil, a odkazy na editaci a smazání. Administrátorovi je umožněno s fotoalbem provádět následující akce. 26
vytvořit fotoalbum ‒ Pro vytvoření je nutno zadat popisek fotoalba. Do fotoalba se může vložit libovolný počet fotografií, najednou však lze vložit nejvýše 5 fotografií. K fotografii je možno doplnit i její popisek. Když se popisek nevyplní, je fotografie automaticky označena popiskem, které má fotoalbum, do nějž je nahrána. Je kontrolována duplicita, to znamená, že do jednoho fotoalba nemohou být nahrány dvě fotografie s totožným názvem. Vkládat můžeme jen fotografie a obrázky s příponou .jpg, .gif a .png. Pro nové fotoalbum je vytvořen samostatný adresář. Každý má unikátní název podle data a času vytvoření. editovat fotoalbum ‒ Můžeme editovat popisek fotoalba i vložených fotografií. Je k dispozici přehled miniatur fotografií, které jsou v daném fotoalbu nahrané. U fotografie je uveden její popisek, který můžeme změnit. Zatržením checkboxu u fotografie smažeme vybrané fotografie z fotoalba. vymazat fotoalbum ‒ Fotoalbum i se všemi vloženými fotografiemi je smazáno z databáze i ze serveru.
Na veřejných stránkách jsou fotografie k dispozici na stránce fotogalerie. Fotografie jsou tematicky rozděleny do fotoalb. To je prezentováno svým názvem, datem vytvoření, počtem obsahujících fotografií a náhodně zvolenou fotografií. Ta se mění po každém načtení stránky. Každá fotografie je označena titulkem a dá se zvětšit pomocí aplikace Lightbox, v níž můžeme celé fotoalbum efektivně procházet. 7.2.1.6
Diskusní fórum
Tato sekce slouží pro přehled diskusních vláken a reakcí na ně. Umožňuje navíc vymazat celá vlákna či reakce s nepatřičným obsahem. Hlavní tabulka vypisuje seznam vláken diskusního fóra. Je zde uveden datum a čas vytvoření, autor, titulek a počet reakcí na vlákno. Pokud je počet reakcí na vlákno nenulový, aktivuje se nám odkaz na zobrazení reakcí. Nalezneme zde také odkaz na smazání celého vlákna. Výpis reakcí se zobrazí v nové tabulce, z které můžeme mazat jednotlivé reakce. 7.2.1.7
Anketa
Anketa umožňuje knihovně získat zpětnou vazbu pro její činnosti, je tedy na webu důležitým prvkem. Administrátorovi je umožněno v sekci správa anket provádět následující akce. vytvořit anketu ‒ Pro vytvoření nové ankety je nutno zadat otázku ankety a minimálně dvě otázky z možných pěti. Anketa se vytváří neaktivní, aktivována je až podle potřeby.
editovat anketu ‒ Možnost editace otázky i odpovědí. vymazat anketu ‒ Nenávratně smaže z databáze administrátorem vytvořenou anketu i všechny odpovědi na anketu. aktivovat/deaktivovat anketu ‒ Aktivní může být v jeden moment jediná anketa. Aktivováním ankety se automaticky vytvoří nový štítek, který je vložen na konec pravého postranního sloupce. Po deaktivaci je z webu sejmuta a štítek je vymazán.
27
7.2.1.8
Upozornění
Upozornění na nějakou důležitou změnu v knihovně může být na webu velmi nápomocné. Můžeme zde vložit informaci o nenadálém uzavření knihovny, změny otevírací doby aj. Tato informace je posléze zobrazena na každé stránce v záhlaví obsahu. Ať pak uživatel přijde skrze kteroukoliv stránku, o informaci se vždy dozví. Akce spojené se správou upozornění jsou následující: vytvořit upozornění ‒ Pro vytvoření nového upozornění stačí zadat neprázdný obsah zprávy. Po vložení textu do databáze se upozornění automaticky vloží do webových stránek.
editovat upozornění ‒ Text může být pomocí editoru libovolně stylizován a zvýrazněn. vymazat upozornění ‒ Smazáním obsahu bude upozornění automaticky stáhnuto z webové prezentace.
7.2.2
Čtenářské konto
V této sekci jsou vyřizovány žádosti registrovaných čtenářů a můžeme zde také najít jejich přehled. Aby administrátor nemusel neustále kontrolovat přítomnost nových žádostí, bylo provedeno opatření, díky kterému odkaz se čtenářským kontem v záhlaví stránky změní barvu pozadí na sytě červenou v případě, že je k dispozici nějaký nový požadavek. Po zpracování všech nových požadavků se navrátí původní barva pozadí odkazu. 7.2.2.1
Žádost o MVS
Na stránce žádosti o MVS nalezneme dvě tabulky. První obsahuje seznam nových požadavků MVS a druhá požadavky MVS čekající na zpracování. O žádosti zde nalezneme informace jako datum jejího podání, čtenářské číslo žadatele, autora a název požadované knihy a rolovací nabídku stavu žádosti. Stav žádosti volí knihovník: buď je kniha k dispozici a je objednána (zadá se stav „Zpracovává se“), nebo není dostupná a požadavek se stornuje (zadá se stav „Není k dispozici“). Podle toho se žadateli odešle e-mail buď o přijetí, nebo stornování žádosti. Po úspěšném přijetí je požadavek přesunut do tabulky požadavky čekající na zpracování. Zde jsou k dispozici o žádosti stejné informace. V rolovací nabídce o stavu žádosti jsou zde na výběr akce „K vyzvednutí“ a „Není k dispozici“. Akce „K vyzvednutí“ znamená, že je kniha pro čtenáře připravena v jeho pobočce a může si ji vyzvednout. Stejně jako v předešlém případě mu přijde informativní e-mail. V případě, že dojde ke komplikacím a kniha není dlouhodobě dostupná, žádost se stornuje. 7.2.2.2
Prolongace výpůjček
Při implementaci se muselo brát v potaz, že stránky nebudou na výpůjční systém dané knihovny (pokud nějaký má) napojeny přímo. Tedy nebude znám stav výpůjček ani limit do vypršení výpůjční lhůty. Čtenáři se musí řídit informacemi poskytnutými při půjčení publikací. Možnost prodloužení výpůjček pak mohou zvolit v případě, že se nemohou do daného termínu dostavit do knihovny. Administrátorovi je k dispozici kompletní přehled nových žádostí o prodloužení. U každé žádosti je její datum, čtenářské číslo, jméno, a rolovací nabídka. Pokud je prodloužení vyřízeno kladně, zadá se v rolovací nabídce stav vyřízeno, v jiném případě se zadá stav stornováno. O výsledku žádosti je čtenář informován e-mailem. 28
7.2.3
Funkce správy vzhledu
Redakční systém mimo funkce správy obsahu a čtenářského konta obsahuje také možnost zvolit si do určité míry vlastní design stránky. Primárním nastavením je výběr základní barvy. Zatím jsou k dispozici tři základní barvy ‒ červená, zelená a modrá. Výchozí barvou je červená. Podle zadané barvy se změní barva kostry webu, patičky a štítků bez obsahu a pozadí. Aktivace je snadná, stačí na stránce volba barvy vybrat patřičnou barvu. Mezi prvky, které mohou měnit svůj vzhled, patří také hlavička. Na ní konkrétně můžeme měnit její pozadí, úvodní obrázek a lokální pozadí vyskytující se pod názvem knihovny (tzv. ornament). Úvodní obrázek může být vybrán buď z přednastavených obrázků, které jsou k dispozici, nebo může být nahrán administrátorem. Nahrávány mohou být soubory s příponou .gif, .jpg a .png. Administrátor má k dispozici náhled obrázků, z nichž si vybírá. Pozadí hlavičky se vybírá z několika přednastavených možností. Je zde možnost ponechání bílého pozadí. Na stejném principu funguje i výběr ornamentu. Dalšími prvky s možností výběru vzhledu jsou štítky. Také zde platí, že si můžeme vybrat z několika přednastavených vzhledů, nebo ponechat štítek bez veškeré grafiky. Posledním prvkem měnícím svůj vzhled je patička. Zde ale měníme nastavení zobrazení odkazů, ne grafiky samotné. Volíme jednu ze tří následujících možností. Buď se nám v patičce zobrazuje 6 náhodně vybraných větších log reprezentujících odkazy, nebo až 20 náhodně vybraných log (podle počtu v databázi) v malé velikosti ‒ vybírají se jen odkazy, u kterého je logo nahráno. Třetí možností je zobrazení jen textového popisu odkazů bez reprezentujícího loga.
7.3 Veřejné webové stránky Cílem této podkapitoly je stručně shrnout některé vlastnosti webu knihovny, který umožňuje prezentovat informace uložené administrátorem v databázi. Velmi důležitým krokem je připojení k databázi. To je realizováno v souboru . .
7.3.1
Uživatelský účet
Běžný uživatel si může vytvořit svůj uživatelský účet. Pro registraci je nutné úspěšně vyplnit registrační formulář. Uživatel si vybírá uživatelské jméno a heslo, povinnými informacemi jsou dále jméno, e-mail a čtenářské číslo, kterým se čtenář prezentuje v jeho mateřské knihovně. Uživatelské jméno a e-mail jsou kontrolovány na jedinečnost. E-mail společně se čtenářským číslem pak navíc na správný tvar. Pro úspěšné přihlášení musí být zvoleno heslo obsahující více než 5 znaků. Po registraci se čtenář může přihlásit pomocí zvoleného uživatelského jména a hesla. Pro ty, kteří zapomněli své registrační údaje, nechybí formulář zapomenuté heslo. Do formuláře registrovaný uživatel vloží registrovanou e-mailovou adresu, na níž se mu pošle nově vygenerované desetimístné heslo spolu se stávajícím uživatelským jménem. K odeslání mailu slouží funkce
$ , $, která stejně jako ostatní funkce na posílání e-mailů využívá pomocné třídy PHPMailer. Informaci o přihlášení si jednotlivé stránky mezi sebou předávají pomocí tzv. sessions. Jméno a id uživatele jsou pak dostupné na každé straně pomocí globálních proměnných $_SESSION. 29
Kontroluje se také aktivita přihlášeného uživatele ‒ po dlouhé neaktivitě proběhne automatické odhlášení. Po odhlášení jsou všechny sessions smazány. Po přihlášení má uživatel možnost editace svého profilu. Dále může podat žádost o MVS nebo žádost o prolongaci výpůjční lhůty půjčených publikací. Pro ukládání žádostí o MVS byla vytvořena tabulka mvs. Do ní se ukládá jméno a příjmení autora publikace spolu s názvem publikace, o kterou bylo požádáno. Dalšími údaji jsou uživatel, od kterého žádost přišla, stav vyřízení (iniciální je hodnota 0) a datum žádosti o MVS. Žádost je tímto přijata a zobrazí se knihovníkovi v administrační části. Prodloužení výpůjční doby funguje na podobném principu s tím rozdílem, že se hodnoty (uživatel, stav, datum žádosti) ukládají do tabulky prolongace.
7.3.2 Diskusní fórum Každý návštěvník, ať registrovaný či neregistrovaný, může do fóra vložit svůj vzkaz, připomínku, dotaz aj. Na tento vzkaz pak mohou ostatní uživatelé reagovat. Pro založení diskusního vlákna musí být povinně vyplněna přezdívka návštěvníka, název příspěvku a text příspěvku. Každý příspěvek obsahuje jméno uživatele, jenž ho napsal, samotný text příspěvku, datum vytvoření a odkazy na nový formulář. Vlákno navíc obsahuje odkaz na vytvoření reakce. Registrovanému uživateli je do formuláře automaticky vyplněno uživatelské jméno, které zadal při registraci. Navíc jsou mu po přihlášení zvýrazněny jím napsané příspěvky. Správci diskuse se u každého příspěvku zobrazí odkaz na smazání. Maže buď jednotlivé příspěvky, nebo celá vlákna. Může také do diskuse přispívat.
7.3.3 Anketa Aktivní anketa je zobrazena ve štítku jednoho z postranních sloupců. Pod anketou nalezneme odkaz na přehled již skončených anket. Zde jsou umístěny jen neaktivní ankety, v kterých již bylo někdy hlasováno. Přehled ukončených anket je taktéž dostupný z mapy stránek. Ankety jsou uloženy v tabulce anketa a hlasy pak v tabulce anketa_odpoved. Aby se zabránilo opakovanému hlasování uživatelů, z jedné IP adresy lze hlasovat pouze jednou. Nejprve je zjištěna pomocí funkce "_" IP adresa uživatele a pokud ještě není v databázi pod příslušnou anketou uložena, hlas se připočte. Navíc je učiněno opatření, že již hlasujícímu uživateli se nezobrazí odkazy k hlasování, ale jen prostý text.
7.4 Rozhraní webových stránek Správná struktura webové prezentace je velice důležitým aspektem. Struktura jednotlivých stránek, samotného textu a rozmístění prvků na stránce ovlivňují nejen orientaci čtenáře ve stránce, důležitá je i čitelnost. Jestliže je orientace pro návštěvníky webu složitá, pak neuspěje ani web, který obsahuje velmi zajímavé grafické prvky. Paradoxně ale neuspějí ani stránky s přehlednou navigací, ale s nevyhovující grafikou. K tvorbě stránek redakčního systému i webových stránek bylo použito rozvržení pomocí kaskádových stylů CSS a HTML tagů
. 30
7.4.1 Layout redakčního systému Základní struktura prvků na stránce redakčního systému je znázorněna na obrázku č.11. Hlavním prvkem stránky je záhlaví, ve kterém se v pravém rohu nacházejí základní navigační prvky: čtenářské konto, správa obsahu a správa vzhledu. V levé části záhlaví najdeme odkazy na hlavní stránku, web knihovny, nastavení administrace a správu souborů. Nechybí odkaz na odhlášení administrátora. Následuje hlavní část je rozdělena do dvou sloupců. Levý je vyhrazen pro navigaci v rámci hlavního menu ‒ tzv. submenu. Pravá část je vyhrazena pro obsah stránky, tedy různé tabulky a formuláře. Stránka je zakončena zápatím s přehledem odkazů na hlavní sekce.
ZÁHLAVÍ
SUBMENU
HLAVNÍ MENU
HLAVNÍ OBSAH
ZÁPATÍ Obrázek č. 11: Návrh rozložení stránky redakčního systému
7.4.2 Layout veřejné webové stránky Základní rozmístění prvků na stránce bylo voleno tak, aby bylo pro uživatele co nejpříjemnější a intuitivní. Jak můžeme vidět na obrázku č. 12, stránka je rozdělena do několika hlavních prvků. První částí je záhlaví stránky (hlavička). Ta je opticky rozdělena na 3 části. Levý roh je určen pro úvodní obrázek či logo knihovny (pokud nějaké má), které navíc funguje jako odkaz na titulní stránku. V prostřední části hlavičky se nachází název knihovny a v pravém rohu najdeme pokročilé nastavení stránky a rychlé odkazy vedoucí na úvodní stranu, mapu stránek a základní informace o knihovně. Pokročilejším nastavením stránky rozumíme možnost změny velikosti a kontrastu písma. Hlavička je načítána příkazem ! ". . Hlavní tělo stránky je rozděleno do tří částí: pravý, levý a centrální sloupec. Postranní sloupce se generují každý zvlášť. Levý pomocí příkazů ! _ . a pravý pomocí příkazu ! _ . .
31
V levém sloupci je typicky umístěno hlavní menu, které je vytvářeno pomocí funkce
_ . V momentě, kdy se položka menu stane aktivní, změní se její pozadí, aby uživatel jasně viděl, kde se nachází. Ve zbytku sloupce (levého panelu) můžeme najít administrátorem zvolené funkční a informační štítky a informaci o poslední aktualizaci stránek.
ZÁHLAVÍ
NAVIGACE ČTENÁŘSKÝ ÚČET
HLAVNÍ MENU
HLAVNÍ OBSAH
PRAVÝ PANEL LEVÝ PANEL
ZAJÍMAVÉ ODKAZY ZÁPATÍ
ADMINISTRACE
Obrázek č. 12: Návrh rozložení veřejné webové stránky
V pravém sloupci se kromě funkčních a informačních štítků (pravý panel) vyskytuje sekce čtenářského účtu. Nepřihlášený uživatel zde najde odkaz na přihlášení a registraci, přihlášený odkazy na editace, žádosti a odhlášení. V pravém panelu také najdeme odkaz na stránku prohlášení o přístupnosti, kde mimo jiné najdeme přehled klávesových zkratek. V nejširším prostředním sloupci se standardně nachází hlavní obsah dané stránky, kde se prezentují nejrůznější články, aktuality a další obsah. V horní části se vyskytuje nadpis stránky a navigace, která návštěvníka webu informuje, kde se právě nachází, a nabízí mu možnost vrátit se odkazem v hierarchii na nadřazenou stánku. Pod hlavním tělem stránky se nachází sekce zajímavé odkazy. Zde knihovna prezentuje zajímavé odkazy spojené s její činností. Vzhled odkazů se dá nastavit v administraci v sekci. Celá stránka je ukončena zápatím (patičkou). Zde se pro knihovníka nachází důležitá sekce ‒ přihlašování k administraci. Přihlašovací formulář se nachází na stránkách webu a až po úspěšném 32
přihlášení je knihovník přesměrován na stránky administrace. Toto přesměrování je realizováno jazykem JavaScript. V případě jeho vypnutí se zobrazí odkaz směřující na administrační stránky. Po odhlášení administrátora dojde opět k automatickému přesměrování na stránky knihovny. V patičce se také nachází údaje o právech a informace o redakčním systému.
33
8.
Grafický design
Grafika je naprosto podstatnou a neodmyslitelnou součástí webu. Grafický design by měl být kreativní, odpovídat současným trendům, a být odlišný od konkurenčních webů. Pro práci se specializovanou webovou grafikou existuje mnoho programů různé kvality a schopností. Velmi kvalitním programem je například Adobe Photoshop CS5, který byl použit i pro návrh designu tohoto redakčního systému, hlavně pak pro tvorbu návrhu veřejných webových stránek. Výběr použitých barev je pro webovou prezentaci jedním z klíčových bodů. Barvy pro textové prvky byly zvoleny tak, aby vyhovovali požadavkům přístupnosti webu. Jedno z těchto pravidel říká [10]: „Kombinace barvy popředí textu (nebo textu v obrázku) a barvy či vzorku na pozadí musí tvořit dostatečný vzájemný kontrast, aby barvy vzájemně nesplývaly pro uživatele, kteří mají zhoršený zrak. Vzájemný kontrast běžného písma do velikosti 18 bodů nebo tučného písma do velikosti 14 bodů musí dosahovat minimálně hodnoty 5:1. Kontrast běžného písma nad 18 bodů nebo tučného písma nad 14 bodů musí dosahovat minimálně hodnoty 3:1.“ Webové stránky i stránky redakčního systému byly posouzeny pomocí nástroje Analyzér kontrastu barev13, který umožňuje zjistit poměr kontrastu dvou barev.
8.1 Redakční systém Grafické rozhraní redakčního systému je velmi jednoduché. Systém není přístupný pro veřejnost, a proto nemusí upoutat pozornost svým vzhledem. Také na něj nejsou kladeny tak velké požadavky z hlediska přístupnosti. Díky množství funkcí byl kladen důraz spíše na přehlednost a jednoduchost. Hlavními barvami redakčního systému byly zvoleny černá a azurově modrá, přičemž barva písma je vždy silně kontrastní ve srovnání s pozadím (bílé písmo na tmavém a černé písmo na světlém pozadí). Důležité informace o neúspěšných změnách jsou zdůrazněny červenou barvou. Na obrázku č. 13 je přehled použitých základních barev pro popředí a pozadí, spolu s kontrastním poměrem. Malý výsledný poměr (5,3:1) nalezneme jen u jedné položky, kdy se jedná o text většího fontu, který je bez problému čitelný. Na obrázku č. 14 můžeme vidět výsledný design rozhraní redakčního systému.
Obrázek č. 13: Poměr kontrastu barev ‒ redakční systém
13
http://www.pravidla-pristupnosti.cz/nastroje/kontrast.php
34
Obrázek č. 14: Návrh rozhraní redakčního systému
8.2 Veřejné webové stránky Grafický design veřejných webových stránek je z části závislý od nastavení vzhledu v administraci. Stále jsou ovšem dodrženy veškeré standardy přístupného webu. Jak už bylo zmíněno v předchozí kapitole, stránky mohou mít tři různé barevné rozhranní. Odkazy se vyskytují jednotně modrou barvou a podtržením, aby uživatel jasně věděl, na co může kliknout. Na obrázku č. 15 je přehled kontrastních poměrů pro základní červené rozhranní. Další barevné kombinace mají tyto hodnoty velmi podobné, proto pro ně přehled kontrastních poměrů neuvádíme. Jednu z možných výsledných podob webových stránek můžeme vidět na obrázku č. 16, který obsahuje návrh webové prezentace Místní knihovny Kozlovice (kapitola č. 10).
Obrázek č. 15: Poměr kontrastu barev ‒ webové stránky (červená barva pozadí)
35
9.
Zabezpečení systému
Zabezpečení je jednou z hlavních podmínek k dosáhnutí úspěšného webu. Z tohoto důvodu je tomuto tématu vyčleněná celá kapitola. Popíšeme si nejčastější útoky na webové stránky a ukážeme si, jak útokům předejít. V další části blíže rozvineme téma ukládání hesel a dalších citlivých údajů.
9.1 Útoky na webové stránky a jejich řešení Ačkoliv úspěšné útoky na webové stránky mohou způsobit značné škody, jejich zabránění je velmi snadné. Popíšeme si tři nejčastější útoky: PHP include, SQL injection a Cross-site scripting (XSS). U každého si předvedeme princip útoku a možnou ochranu.
9.1.1 PHP Include Princip útoku: Tento útok je také znám pod názvem PHP Injection [20]. Ačkoliv jeho úspěšné použití má nedozírné následky, stále se nechráněný kód hojně objevuje jak u začátečníků, tak u pokročilých programátorů. Jak samotný název napovídá, jedná se o zneužití PHP funkce ", popřípadě require(), či jejich obdob include_once(), require_once(). Jako parametr se těmto funkcím předává cesta nebo URL k souboru, který se vloží na místo volání funkce. Uveďme příklad webu, kde vkládáme těla stránek následujícím způsobem (soubor index.php obsahuje mimo jiné kód include $_GET-page1;) : http://www. webovastranka. cz/index. php? page A home. php Účelem výše zmíněného kódu je načtení a vykonání skriptu home.php. Vidíme, že kód není nijak chráněn proti útokům. Útočník může vepsat následující skript, jehož obsah může mít nejrůznější podobu: http://www. webovastranka. cz/index. php? page A http://domena. cz/skript. php Ochrana: Jedním z možných řešení, je použít funkci file_exist(), která kontroluje existenci výhradně lokálních souborů. if Dile_exists$_GET- page 1{ include $_GET- page 1; E else { die Požadovaná stránka neexistuje ; }
9.1.2 SQL INJECTION Princip útoku: SQL Injection [21] hackeři používají k podvržení vstupních dat z formulářů nebo jiných vstupů. Cílem je změnit výsledek SQL dotazu nebo vytvořit dotaz nový k získání citlivých informací z databáze. Citlivými údaji jsou například přístupové kódy, informace o bankovních 36
transakcích, přístup k administrátorskému rozhraní atd. Může dojít k vložení falešných záznamů, nebo v horším případě k znehodnocení databáze smazáním některých záznamů. Následující příkaz vybere řádek z tabulky clanek podle daného ID. $id A $_GET- id 1; $dotaz A “SELECT N FROM clanek WHERE id_clanek A “. $id . ““; Možný útok nastane, když útočník doplní SQL dotaz do následující podoby: $id A $_GET- id 1; $dotaz A “SELECT N FROM clanek WHERE id_clanek A “. $id . “ OR 1 A 1 V V“; Jelikož porovnání 1=1 je vždy pravdivé, tento dotaz ovlivní celou tabulku clanek. Přidané dva znaky „--“ do příkazu zajistí, že pokud se na konci výrazu vyskytuje upřesňující výběr LIMIT nebo ORDER BY, tato část dotazu bude chápána jako komentář. Po přidání příkazu DROP TABLE clanek; na konec dotazu dojde ke smazání celé tabulky a všechna data v ní uložená budou ztracena. Ochrana: Možným řešením je kontrola a zabezpečení všech vstupních polí od uživatele pomocí funkce mysql_real_escape_string(). Tato funkce opatří všechny citlivé znaky zpětným lomítkem, čímž z hlediska databáze zruší jejich speciální význam. Časté je také přidání kontroly, zda vstup je stejného typu, jaký očekáváme. Tuto pro proměnné typu číslo nám umožňuje funkce is_numeric(). Kontrolu, jestli je proměnná typu string můžeme provést pomocí funkce is_string(). $id A $_GET- id 1; if ! is_numeric$_GET- id 1[ // chyba vstupu Eelse[ $dotaz A “SELECT N FROM clanek WHERE id_clanek A \“ mysql_real_escape_string$_GET- id 1“; }
9.1.3
Cross-site scripting (XSS)
Princip útoku: Útočník vloží do napadené stránky vlastní útočný kód. Ten se provede okamžitě po odeslání požadavku, aniž by si toho uživatel všiml. První možností je nahrazení nebo doplnění parametrů v URL ‒ v tomto případě mluvíme o tzv. non-persistentním (dočasném) XSS [22]. V lepším případě dojde „jen“ k rozhození layoutu stránky, v horším případě jsou způsobeny dalekosáhlejší následky. Konkrétními útoky mohou být změna obsahu stránky, deformace stránky, přesměrování formuláře s přihlašovacími údaji na jinou adresu, krádež cookies, XSS červi, nebo vkládání malware. 37
Příklad vložení útočníkova kódu: http://www. webovestranky. cz/index. php? id A_ ` Hacked!! _/ ` Další variantou tohoto útoku je tzv. perzistentní (trvalém) XSS [23], kdy je škodlivý kód umístěn natrvalo do napadeného webu (například přes příspěvek diskusního fóra je uložen do databáze). Ochrana: Důsledné ošetření všech výstupů z aplikace funkcí htmlspecialchars(). V MySQL je možné využít výše zmíněnou funkci mysql_real_escape_string(). Ošetřovat by se měly zejména globální proměnné $_GET, $_POST, $_REQUEST, $_COOKIE a $_SERVER. _? echo htmlspecialchars$_GET- id 1; ?` Zavoláním funkce htmlspecialchars() na $_GET-id1 jsou všechny HTML citlivé znaky převedeny na jejich textové ekvivalenty. Hlavně klíčový znak ‚ _ ‘ se nahradí za < a znak ‚ ` ‘ za & ;. Díky této úpravě útočný skript nebude proveden.
9.2 Ukládání hesla Nejčastější způsob ověřování identity uživatele je pomocí uživatelského jména a hesla. Právě hesla jsou kritickými prvky aplikace a měl by se klást důraz na jejich bezpečnost. Všeobecně se nedoporučuje ukládat heslo do databáze v jeho čisté podobě (tzv. plaintext), ale v podobě hashované. Ukládání v podobě plaintextu je velmi nebezpečné při případném útoku, kdy útočníkovi nebrání žádné překážky k získání hesel k účtům všech uživatelů. PHP nabízí dvě funkce, které si snadno poradí s tímto problémem. Mluvíme o hašovacích funkcích md5() a sha1(). Jejich velkou předností je, že i sebemenší změna na vstupu vyvolá velké změny ve výsledném otisku (výstupu). Hašovací funkce jsou jednosměrné (tzn. nelze spočítat původní heslo). Proto se při přihlašování uživatele porovnají místo hesla v čisté podobě právě jeho haše. Funkce md5() spočítá haš svého parametru a vrátí 32-znakové decimální číslo. Algoritmus MD5 patří do rodiny hašovacích funkcí Message-Digent algorithm, které se používají především pro ukládání hesel. V roce 2004 byly ovšem odhaleny závažné chyby v jeho návrhu a jeho používání v bezpečnostních aplikacích není doporučeno. Zaměřme se tedy na funkci sha1(), která byla pro náš systém zvolena k ukládání hesel. Funkce SHA (Secure Hash Algorithm) byla navrhnuta Národní bezpečnostní agenturou (NSA) v USA. Mluví se o ní právě jako o nástupci hašovací funkce md5. Až na změny v návrhu se tato funkce chová úplně stejně jako předchozí zmíněná md5(). Narozdíl od md5() ukládá 40-ti místné číslo.
38
10. Tvorba webových stránek Místní knihovny Kozlovice Součástí této práce je vytvoření a naplnění webových stránek pro vybranou místní knihovnu pomocí navrhnutého redakčního systému. Zvolila jsem prezentaci Místní knihovny Kozlovice, která spadá pod Městskou knihovnu v Přerově. Stránky byly po vytvoření otestovány na validitu zdrojového kódu. K těmto účelům nám posloužily XHTML a CSS validátor (odkazy na výsledky validace můžeme najít na www stránkách knihovny v dolní oblasti pravého sloupce). Dále byly stránky testovány v několika prohlížečích: Internet Explorer, Mozilla Firefox, Opera, Chrome a Safari. I při vypnutých stylech jsou stránky standardně ovladatelné a splňují pravidla pro tvorbu přístupného webu. Funkční stránky jsou prozatím dostupné na adrese http://sablonaknihovny.php5.cz. V nejbližší době budou přesunuty pod server Městské knihovny v Přerově. Náhled těchto stránek je k dispozici na obrázku č. 16.
Obrázek č. 16: Návrh rozhraní webových stránek pro místní knihovnu Kozlovice
39
11. Závěr V úvodní části textu byla nejprve osvětlena problematika malých knihoven a vysvětlen pojem Knihovna 2.0. V dalších kapitole jsou objasněny pojmy jako použitelnost a přístupnost, které jsou potřebné k tvorbě kvalitního webu. Je zde také zmínka o optimalizaci webových stránek pro vyhledávače. Poté byly představeny a popsány redakční systémy určené pro malé knihovny. Tyto systémy byly v některých aspektech shledány jako nedostačují. Důležitá je kapitola Analýza a návrh systému. Zde jsou pomocí diagramů popsány hlavní funkce systému. V kapitole 7 s názvem Implementace redakčního systému jsou vypsány technologie použité při návrhu redakčního systému a jejich přednosti, díky kterým byly vybrány. Jsou zde také podrobněji rozepsané vlastnosti redakčního systému. Nebyla také opomenuta otázka bezpečnosti, která se řeší v kapitole Zabezpečení. Cíl práce jsem splnila a navrhla a vytvořila jsem provozuschopný redakční systém pro malé knihovny. Tento systém maximálně usnadňuje práci knihovníkům při vytváření prezentace knihovny a pro její následující správu. Systém byl primárně navrhnut dle požadavků Městské knihovny v Přerově. Ta bude redakční systém využívat pro několik obecních knihoven, se kterými kooperuje. Systém byl úspěšně vyzkoušen v reálných podmínkách, a to při tvorbě webových stránek pro Místní knihovnu Kozlovice. Ačkoliv má redakční systém širokou škálu funkcí a možností, je ještě několik věcí, které by se na něm mohlo vylepšit. Například rozšířené funkce pro čtenáře jako MVS nebo prodloužení výpůjční doby by mohly být volitelné. Chtěla bych na systému stále pracovat, zdokonalovat ho, a rozšiřovat o nové funkce. Mezi hlavní cíle patří obohacení možností vzhledu a rozložení prvků na stránce. V budoucnu plánuji pro knihovníky zřídit webovou stránku s podporou, kde by se řešily problémy týkající se redakčního systému a kde by uživatelé mohli psát své návrhy a nápady k vylepšení. Také si zde budou moci stáhnout návod k redakčnímu systému a další užitečné věci.
40
12. Literatura [1] Manifest UNESCO o veřejných knihovnách. [online] 2. 2. 2011 [cit. 20. 4. 2011]. Dostupné na: .
[2] SKIP. [online]. [cit. 20. 4. 2011]. Dostupné na: . [3] LIBRARY 2.0. [online]. 9. 12. 2009 [cit. 20. 3. 2011]. Dostupné na: . [4] Čech M.: Library 2.0 - možnost využití technologií Webu 2.0 pro zlepšení služeb knihovny. [bakalářská práce, online]. Brno, 2008. [cit. 20. 3. 2011]. . [5] Inflow: Nová generace OPAC katalogů, vol. 1, no. 7. 2008, Brno, Tribun EU. [online]. [cit. 20. 4. 2011]. Dostupné na: . [6] Zeldman, Jeffrey. Tvorba webů podle standardů XHTML, CSS, DOM, ECMAScript. Brno, Computer Press, 2004. [cit. 14. 4. 2011]. [7] Přístupnost na webu. Hendikepovaní uživatelé internetu. [online]. [cit. 14. 4. 2011]. Dostupné na: . [8] Blind Friendly - WCAG 2.0. [online]. 9. 2. 2009 [cit. 15. 4. 2011]. Dostupné na: . [9] Blind Friendly - O projektu. [online]. 31. 10. 2010 [cit. 17. 4. 2011]. Dostupné na: . [10] Pravidla přístupnosti. [online]. [cit. 14. 4. 2011]. Dostupné na: . [11] Usser Effect. [online]. [cit. 14. 4. 2011]. Dostupné na: . [12] Kouba T.: Hodnocení faktorů ovlivňujících řazení výsledků ve vyhledávačích. [bakalářská práce, online]. Brno, 2010. [cit. 15. 4. 2011]. Dostupné na: .
41
[13] RÁČEK, J., SOCHOR, J.: Modelování dat. Brno, 2006. [cit. 25. 4. 2011]. [14] RÁČEK, J.: Strukturovaná analýza systémů. Brno, Masarykova univerzita, 2006. [cit. 25. 4. 2011]. [15] Croft,J., Lloyd, I., Rubin, D.: Mistrovství v CSS : Pokročilé techniky pro webové designéry a vývojáře. Brno, Computer Press, 2007. [cit. 14. 4. 2011]. [16] The PHP Group. PHP.net. [online] 17. 12. 2010 [cit. 20. 3. 2011]. Dostupné na: . [17] Kosek, J.: PHP tvorba interaktivních internetových publikací. Praha, Grada Publishing, 1999. [cit. 14. 4. 2011]. [18] Gilfillan, I.: Myslíme v MySQL 4. Praha, Grada Publishing, 2003. [cit. 15. 4. 2011]. [19] Negrino T., Smith, D.: JavaScript pro World Wide Web. Praha, SoftPress, 2001. [cit. 15. 4. 2011]. [20] Soom.cz - PHP include [online]. 17. 1. 2007 [cit. 29. 4. 2011]. Dostupné na: . [21]Programujeme.com - SQL injection [online]. 23. 04. 2007 [cit. 29. 4. 2011]. Dostupné na: . [22] PHP guru.cz - Cross Site Scripting [online]. 22. 2. 2008 [cit. 29. 4. 2011]. Dostupné na: .
42
13. Přílohy Příloha 1: Obsah CD K textu práce je přiložené CD, ve kterém se nachází následující složky a soubory:
zdrojový kód ‒ obsahuje veškeré zdrojové kódy redakčního systému text ‒ obsahuje práci v textové podobě ve formátu DOC a PDF diagramy ‒ obsahuje diagramy vytvořené při návrhu systému databaze.sql, data.sql ‒ skripty pro vytvoření databáze a naplnění vytvořené struktury testovacími daty tabulky.pdf ‒ přehled tabulek databáze s popisem jejich atributů
Funkční redakční systém naplněn testovacími daty je dostupný na adrese www.sablona.php5.cz, kde jsou vytvořeny následující testovací profily pro administrátora, uživatele a správce fóra: Přihlášení administrátora: login: admin heslo: admin Přihlášení správce diskuse: login: forum admin: forum Přihlášení uživatele: login: uzivatel admin: uzivatel
43