České vysoké učení technické v Praze Fakulta elektrotechnická ČVUT FEL katedra počítačů Diplomová práce Informační systém pro dětský tábor Jan Galajda Vedoucí práce: Ing. Martin Molhanec, CSc. Studijní program: Elektrotechnika a informatika, dobíhající Obor: Výpočetní technika leden 2008
ii
Poděkování Natomtomístěchcipoděkovatvšem,kteříměpodpořilivméprácivefázinávrhu, analýzy nebo implementace. Děkuji lidem z vedení dětského tábora za jejich připomínky anávrhy. Největší dík pak patří mému vedoucímu diplomové práce Ing. Martinu Molhancovi, CSc., který vždy rychle a ochotně odpovídal na moje dotazy. iii
iv
Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů(autorský zákon). VPrazedne17.1.2008... v
vi
Abstract This text is a documentation of the Information system for the summer children camp. The system provides an Internet presentation of the camp, it supports communication among camp participants and it affords event planning during the year. My diploma thesis is divided into several basic parts. The summary of the present state is mentioned in the first part. Used technologies are discussed in the second part, which is followed with the study and analysis of the system. Last chapters contain information on the system implementation and testing. The information system including documentation is available on the enclosed DVD. Abstrakt Tento text je dokumentací k projektu Informačního systému pro dětský tábor, který umožňuje táboru prezentaci na internetu, komunikaci mezi účastníky tábora a plánování akcí během celého roku. Diplomová práce je rozdělena do několika základních částí. V první části je provedeno shrnutí současného stavu problematiky, v druhé části popisuji použité technologie. Následuje studie a analýza. Závěrečné kapitoly jsou věnovány samotné implementaci a testování. Instalaci informačního systému včetně dokumentace najdete na přiloženém DVD. vii
viii
Obsah Seznam obrázků Seznam tabulek xvi xviii 1 Úvod 1 1.1 Úvod... 1 1.2 Cíldiplomovépráce.... 1 1.3 Současnýstavproblematiky... 2 1.3.1 Táborovéservery... 2 1.3.2 On-lineřešení... 2 1.3.2.1 estránky-anebaktuálnířešení... 3 1.3.2.2 Webgarden zone... 5 1.3.3 Redakčnísystémy... 6 1.3.3.1 Vlastnosti... 6 1.3.3.2 Možnévyužití.... 7 1.3.3.3 Praktickénasazenísystému... 7 1.3.3.4 Zhodnocení... 8 1.3.4 Shrnutí.... 9 2 Použité technologie a metodiky 10 2.1 HTML.... 10 2.2 CSS... 10 2.3 JavaScript... 11 2.4 Apache.... 11 2.5 PHP... 12 2.6 MySQL... 12 2.7 AJAX.... 13 2.7.1 Princip... 13 2.7.2 Používanétechniky.... 14 2.7.3 Výhody.... 14 2.7.4 Nevýhody... 15 2.8 Texy!aTexyla.... 16 2.8.1 Texy!.... 16 ix
2.8.2 Texyla.... 17 2.9 webhosting.... 18 3 Úvodní studie 19 3.1 Deklaracezáměru... 19 3.2 Odbornýčlánek... 19 3.3 Katalogpožadavků... 21 3.3.1 Uživatelskérole... 21 3.3.2 Funkcesystému... 21 3.3.2.1 Neregistrovanýuživatel.... 21 3.3.2.2 Dítě.... 22 3.3.2.3 Instruktor... 22 3.3.2.4 Rodič/bývalýúčastníktábora.... 22 3.3.2.5 Vedoucí.... 23 3.3.2.6 Správcestránek... 23 3.3.2.7 Administrátor.... 23 3.3.3 Nefunkčnípožadavky... 24 3.4 Návrharchitektury... 24 3.4.1 Požadavkynasoftwarovévybaveníklientů... 25 3.4.2 Požadavkynahardwarovévybaveníklientů... 25 3.4.3 Požadavkynawebovýserver... 25 3.5 Harmonogramprojektu... 25 3.6 UseCasenejvyššíúrovně.... 25 3.7 Analýzarizik.... 28 3.7.1 Rizikaprocesníaimplementační... 28 3.7.2 Rizikapersonální.... 28 3.7.3 Rizikaobchodní... 29 3.7.4 Rizikatechnologická... 29 3.7.5 Rizikabezpečnostní... 29 3.7.6 Analýzarizikvyvíjenéhoinformačníhosystému... 30 4 Analýza a návrh řešení 34 4.1 Popispřípadůužití... 34 4.1.1 Spuštěnísystému.... 35 x
4.1.2 Zobrazenístránekotáboře... 35 4.1.3 Prohlíženínovinek.... 36 4.1.4 Zobrazeníkalendářeakcí... 37 4.1.5 Prohlíženífotografií.... 39 4.1.6 Registracedosystému.... 40 4.1.7 Přihlášenídosystému.... 41 4.1.8 Odhlášenízesystému... 42 4.1.9 Změnahesla.... 43 4.1.10 Editaceaprohlíženíosobníchúdajů.... 44 4.1.11 Zobrazeníkontaktůostatníchregistrovanýchuživatelů... 44 4.1.12 Diskusnífórum-prohlížení.... 46 4.1.13 Diskusnífórum-vkládánípříspěvků... 47 4.1.14 Registracedítětedosystému.... 48 4.1.15 Změnaúdajůdítěte.... 50 4.1.16 Přihlášenídítětenatáboradalšíakce.... 51 4.1.17 Přihlášenínaakci... 52 4.1.18 Zobrazeníazměnapřihlášenýchakcí... 53 4.1.19 Vloženínovéakcedokalendáře.... 54 4.1.20 Vytvořenífotogalerie... 55 4.1.21 Vloženífotografií... 56 4.1.22 Zobrazeníinformacíoosobáchpřihlášenýchnaakci.... 59 4.1.23 Schváleníregistraceuživatelů... 60 4.1.24 Správaoff-linepřihlášek... 61 4.1.25 Zobrazeníseznamůpřihlášenýchdětínajednotlivéakce.... 63 4.1.26 Správastránek.... 63 4.1.27 Novástránka... 67 4.1.28 Úpravamenu... 67 4.1.29 Editacekalendářeakcí.... 69 4.1.30 Editacediskusníchpříspěvků... 70 4.1.31 Mazánífotografií... 70 4.1.32 Mazáníaeditacefotogalerií.... 71 4.1.33 Vytvořenídiskusníhotématu.... 72 4.1.34 Mazáníaeditacediskusníhotématu.... 73 xi
4.1.35 Vloženínovinek... 74 4.1.36 Editacenovinek... 75 4.1.37 Přidělenírolesprávce... 76 4.2 Konceptuálnídatovýmodel... 77 5 Implementace 80 5.1 Datovýmodel.... 80 5.2 Strukturaprogramu... 85 6 Testování 87 6.1 Testováníkódu... 87 6.1.1 white-boxtesty... 87 6.1.2 black-boxtesty... 87 6.2 Testydatabáze... 87 6.3 Testyprojektujakocelku.... 88 6.4 Usabilitytesty.... 88 7 Závěr 89 7.1 Zhodnoceníazávěr... 89 7.2 Budoucnostsystému.... 89 8 Literatura 91 A Seznam použitých zkratek 93 B Instalační příručka 95 B.1 InstalaceFTPklienta.... 95 B.2 Získáníwebovéhoprostoru... 95 B.3 Zavedenídatabáze... 95 B.4 Nahránískriptůnaserver... 96 B.5 Spuštěnísystému.... 97 C Uživatelská příručka 98 C.1 Základnínavigace.... 98 C.2 Registracedosystémuazměnaosobníchúdajů.... 98 C.3 Přhlášenínaakci.... 99 xii
C.4 Správadalšíchprvků... 100 C.5 Administračníprvkyprosprávcestránek... 100 D Obsah přiloženého DVD 102 xiii
xiv
Seznam obrázků 1.1 ZobrazeníinformacíotábořenastránkáchDětské-tábory.info... 2 1.2 Aktuální stav táborových www stránek vytvořených s pomocí služby estránky.cz... 5 1.3 Ukázka použití redakčního systému Drupal na stránkách věnovaných nástrojiphpmyadmin.... 8 2.1 PrincipvoláníAjaxu.[21].... 13 2.2 Vlevo editační okno Textyly s Texy! kódem. Vpravo pak náhled editovanéhotextu..... 18 3.1 Diagramnasazení..... 24 3.2 Harmonogramprojektu.... 26 3.3 Usenejvyššíúrovně.... 27 4.1 Zobrazenístránekotáboře.... 36 4.2 Kalendářakcí-tlačítkapropřihlášení..... 38 4.3 Prohlížení fotografií- základní informace o galerii s tlačítkem pro zobrazení náhledůfotek... 40 4.4 Registračníformulář.... 41 4.5 Přihlášenídosystému..... 42 4.6 Odhlášenízesystému..... 43 4.7 Editaceaprohlíženíosobníchúdajů.... 45 4.8 Zobrazeníkontaktůostatníchregistrovanýchuživatelů.... 46 4.9 Diskusnífórum-prohlíženíavkládánípříspěvku..... 48 4.10 Přihlášenídítětenatáboradalšíakce..... 52 4.11 Zobrazeníazměnapřihlášenýchakcí.... 53 4.12 Diagramaktivit:Zobrazeníazměnapřihlášenýchakcí.... 58 4.13 Vloženínovéakcedokalendáře.... 58 4.14 Vloženífotografií... 59 4.15 Zobrazeníakce-editačnítlačítka.... 60 4.16 Schváleníregistraceuživatelů..... 61 4.17 Částmenuurčenásprávcůmstránek.... 61 4.18 Správaoff-linepřihlášek.... 62 4.19 Seznamdětípřihlášenýchnaakce-formulářprojehogenerování.... 64 4.20 Správastránek-přehledstránekuloženýchvsystému.... 65 xv
4.21 Správastránek-varovánípředsmazánímstránky.... 65 4.22 Správastránek-editacevlastnostístránky... 66 4.23 Správastránek-editacestránkysčlánkem..... 66 4.24 Úpravamenu-přehledpoložekmenu..... 69 4.25 Vloženínovinek... 75 4.26 Formulářprovloženínovinky..... 77 4.27 Vazba1:Nmezientitami..... 78 4.28 Vazba1:1mezientitami..... 78 4.29 VazbaN:Nmezientitami.... 78 4.30 Konceptuálnídatovýmodel.... 79 5.1 Datovýmodel..... 81 5.2 Strukturačástíprogramu.... 85 C.1 Zobrazenístránekotáboře.... 99 C.2 Odhlášenízesystému.... 99 C.3 Správastránek.... 101 C.4 Úpravamenu..... 101 xvi
Seznam tabulek 3.1 Tabulkarizikvyvíjenéhoprojektu... 31 4.1 UseCaseSpuštěnísystému.... 35 4.2 UseCaseZobrazenístránekotáboře... 35 4.3 UseCaseProhlíženínovinek... 37 4.4 UseCaseZobrazeníkalendářeakcí.... 38 4.5 UseCaseProhlíženífotografií.... 39 4.6 UseCaseRegistracedosystému... 40 4.7 UseCasePřihlášenídosystému... 41 4.8 UseCaseOdhlášenízesystému... 42 4.9 UseCaseZměnahesla.... 43 4.10 UseCaseEditaceaprohlíženíosobníchúdajů.... 44 4.11 Use Case Zobrazení kontaktů ostatních registrovaných uživatelů... 45 4.12 UseCaseDiskusnífórum-prohlížení... 46 4.13 UseCaseDiskusnífórum-vkládánípříspěvků.... 47 4.14 UseCaseRegistracedítětedosystému.... 49 4.15 UseCaseZměnaúdajůdítěte.... 50 4.16 UseCasePřihlášenídítětenatáboradalšíakce... 51 4.17 UseCasePřihlášenínaakci... 53 4.18 UseCaseZobrazeníazměnapřihlášenýchakcí.... 54 4.19 UseCaseVloženínovéakcedokalendáře... 55 4.20 UseCaseVytvořenífotogalerie.... 56 4.21 UseCaseVloženífotografií.... 57 4.22 UseCaseZobrazeníinformacíoosobáchpřihlášenýchnaakci... 59 4.23 UseCaseSchváleníregistraceuživatelů.... 60 4.24 UseCaseSprávaoff-linepřihlášek... 62 4.25 UseCaseZobrazeníseznamůpřihlášenýchdětínajednotlivéakce.... 63 4.26 UseCaseSprávastránek... 65 4.27 UseCaseNovástránka.... 67 4.28 UseCaseÚpravamenu... 68 4.29 UseCaseEditacekalendářeakcí... 69 4.30 UseCaseEditacediskusníchpříspěvků.... 70 xvii
4.31 UseCaseMazánífotografií... 71 4.32 UseCaseMazáníaeditacefotogalerií.... 71 4.33 UseCaseVytvořenídiskusníhotématu... 73 4.34 UseCaseMazáníaeditacediskusníhotématu... 73 4.35 UseCaseVloženínovinek... 74 4.36 UseCaseEditacenovinek... 76 4.37 UseCasePřidělenírolesprávce... 76 5.1 Databázovátabulkastranka... 80 5.2 Databázovátabulkamenu... 80 5.3 Databázovátabulkaprvekstranky... 82 5.4 Databázovátabulkaclanek... 82 5.5 Databázovátabulkanovinka... 82 5.6 Databázovátabulkafotografie.... 83 5.7 Databázovátabulkadiskusniprispevek... 83 5.8 Databázovátabulkaakce... 83 5.9 Databázovátabulkauzivatel... 84 5.10 Databázovátabulkarole.... 84 5.11 Databázovátabulkaprihlaska.... 85 xviii
KAPITOLA 1. ÚVOD 1 1 Úvod 1.1 Úvod Jižodmýchprvníchsetkánísinternetemnastředníškolemězajímalo,jaksevytvářejí internetové stránky, jak je možné zpřístupňovat nejrůznější informace širokému okruhu uživatelů prostřednictvím celosvětové sítě. Během posledních let jsem zhotovil pro sebe či přátele několik internetových stránek, které splnily účel, pro nějž byly vytvořeny. Při jejich tvorbě jsem použil jen základních technologií využívaných pro tvorbu statických stránek- HTML a CSS. Když jsem začal přemýšlet o tématu mé diplomové práce, rozhodl jsem se, že bych se chtěl více ponořit do problematiky návrhu a tvorby internetových aplikací. Ve škole jsme se tímto tématem téměř nezabývali, a tak jsem práci na diplomové práci v oblasti webových projektů bral jako výbornou příležitost naučit se něčemu novému. Ještě více mě v tomto nápadu povzbudilo možné praktické využití výsledku mé práce. Se svými přáteli totiž již mnoho let spoluorganizuji dětský letní tábor. Pro vzájemnou komunikaci mezi vedoucími, rodiči i dětmi se využívá internetové prezentace. Současná aplikace má některé menší a několik větších nedostatků. Po konzultaci s kamarádem, který má táborové stránky na starosti, jsem učinil rozhodnutí, že vytvořím zcela novou táborovou webovou aplikaci, která vyřeší současné chyby a realizuje i nové funkčnosti. 1.2 Cíl diplomové práce Cílem mé diplomové práce je navrhnout a implementovat malý informační systém pro dětský tábor, který bude využíván organizátory letního tábora pořádaného každoročně v Heralticích na Třebíčsku. Využití vyvíjeného systému pro dětský tábor se bude odehrávat v několika oblastech. Poslouží jako prezentace dětského tábora navenek, tj. představí tábor rodičům a dětem, potenciálním účastníkům. Dále umožní jednoduchou komunikaci mezi vedoucími, resp. komunikaci vedoucích s dětmi, které se již některé táborové akce zúčastnili. To bude probíhat formou diskusích fór, publikováním fotografií z akcí, zveřejňováním kontaktů. Kalendář poslouží k informování o mimotáborových akcích, vedoucí i děti se budou moci přes systém přihlásit na tábor i jiné akce. Nový informační systém ulehčí též organizaci tábora samotným pořadatelům. Budou moci spravovat přihlášené účastníky, vytvářet automatizované seznamy účastníků tábora, které jsou potřebné k zajištění bezproblémového chodu tábora. Z výše uvedeného vyplývá jasný požadavek, že vyvíjený informační systém musí být přístupný z jakéhokoli počítače připojeného k internetu, a tudíž se bude jednat o internetovou aplikaci. Zdůrazním i přání organizátorů tábora na cenu. Protože peněz není nikdy dost, musí být výsledný systém finančně co nejméně náročný.
2 KAPITOLA 1. ÚVOD 1.3 Současný stav problematiky Organizace, které pořádají dětské tábory, mají mnoho možností, jak se prezentovat veřejnosti na internetu. Rád bych zde tyto možnosti trochu rozvedl, uvedl jejich charakteristiku, výhody, nevýhody a možnost aplikování na dětský tábor zmiňovaný v úvodu. Zaměřím se na tyto možnosti řešení problému: specializované táborové servery hotová on-line řešení redakční systémy statické www stránky 1.3.1 Táborové servery Servery specializované na informování zájemců o dětské tábory jsou nejjednodušší možností, jak dát o táboru vědět prostřednictvím internetu. Server Dětské-tábory.info [3] umožňuje po jednoduché registraci vložení informací o plánovaném dětském táboře. Vedle základních údajů(jako např. datum a místo pořádání, kapacita atd.) je možné vložit popis programu tábora, prostředí a ubytování, způsobu dopravy, kontaktní informace a několik fotografií. Diskusní forum je řešeno formou externí aplikace, která není zakomponována do vzhledu stránek. Obrázek 1.1: Zobrazení informací o táboře na stránkách Dětské-tábory.info Použití služby je bezplatné, umožňuje rychlé informování. Tento typ serveru má podle mě zejména inzertní charakter. Při vkládání informací o táboře uvedeme odkaz na táborové internetové stránky, na nichž jsou uvedeny podrobnější údaje. Závěr: Po vložení inzerátu splňují stránky informační funkci. Další požadované funkčnosti(rozsáhlejší fotogalerie, kalendář akcí, přihlášky atd.), nejsou přítomny nebo jsou výrazně omezené. 1.3.2 On-line řešení V poslední době se na internetu objevuje stále více aplikací, které umožňují běžným uživatelům publikovat on-line informace na internetu. Běžnými uživateli mám na mysli
KAPITOLA 1. ÚVOD 3 osoby, které používají e-mail či si umí vyhledávat potřebné informace, nemají ale žádné znalosti programování ani značkovacího jazyka HTML. Mezi nejoblíbenější patří blogy a fotogalerie, které jednoduše zpřístupňují čtenářovy názory na libovolná témata, resp. dovolují sdílet fotografie mezi přáteli nebo širokou veřejností. Blog 1 jewebováaplikaceobsahujícíperiodicképříspěvkynajednéwebovéstránce. Může se jednat jak o osobní deníky, tak i oficiální zpravodajství firem, sdělovacích prostředků atp. Do blogu může přispívat jediný autor, malá skupina přátel nebo i široké společenství. Řada weblogů umožňuje přidávání komentářů k jednotlivým příspěvkům, takže kolem nich vzniká čtenářská komunita. Pro vytvoření weblogů existuje na internetu řada systémů, s jejichž pomocí mohou zájemci po jednoduché registraci začít ihned zveřejňovat své články. Mezi nejznámější světové stránky pro tvorbu blogů patří server myspace.com, blog.com nebo blogger.com od společnosti Google. Z českých serverů je vhodné zmínit blog.cz, bloguje.cz či lide.cz největšího portálu Seznam.cz. Vytváření blogů dnes nabízí téměř každý větší server zabývající se zábavou a poskytováním informací v síti internet. I když některé weblogy umožňují i vkládání fotografií, přesto tyto systémy neobsahují všechny požadované funkce, které potřebuje využívat zmiňovaný dětský tábor. Rozhodneme-li se zveřejnit fotografie z dovolené, oslavy apod. svým přátelům přes internet, je nejjednodušší využít některého veřejného internetového fotoalba. Mají tu výhodu, že se nemusíme prakticky o nic starat. Musíme jen nahrát své fotky, odpadají nám starosti, kam fotoalbum umístit, nemusíme instalovat žádný software. Již delší dobu může český uživatel využít fotoalba firmy Volný.cz. Nejoblíbenější je Rajče.net portálu idnes.cz. Z celosvětových projektů zmiňme alespoň Flickr.com a webové album Picasa internetového giganta Google. Fotoalba se pochopitelně liší jak vzhledem, tak i počtem doplňkových funkcí(např. komentáře, hodnocení fotek). Velikost alb může být od desítek MB až po řádově jednotky GB u nejpopulárnějších služeb. Můžeme se setkat i s velikostí zcela neomezenými systémy. Vytváření a zveřejňování alb fotografií je mezi internetovými uživateli velmi populární, a proto se systémy pro jejich publikování neustále rozvíjejí, přidávají stále více možností, jak je využívat. Bohužel pro náš dětský tábor přinášejí opět jen řešení části problematiky, a tak jsou pro nás nevhodné. Určitou kombinací fotogalerie, weblogů a podobných systémů, jsou on-line produkty zaměřené na jednoduchou tvorbu internetových stránek. Uživatelé s jejich pomocí mohou jednoduše vytvářet stránky a články, nahrávat obrázky do fotogalerií, diskutovat prostřednictvímfór.zdáse,žebychomzdemohlinaléztněco,cobynámpomohlovytvořit odpovídající informační systém pro dětský tabor. Podívejme se tedy na ně blíže. 1.3.2.1 estránky- aneb aktuální řešení Koncem roku 2005 se na českém internetu objevila služba estránky[4]. Aplikace umožňuje i laikovi během několika minut vytvořit vlastní web, blog či fotoalbum. I když služba vznikla vlastně náhodou[24], získala si za dobu dvou let rychle velkou oblibu. V 1 Nebotéžweblog.
4 KAPITOLA 1. ÚVOD systému je již zaregistrováno více než 350 tisíc uživatelů. estránky umožňují registrovaným uživatelům vytvářet statické www stránky bez použití HTML kódu. Využívají k tomu integrovaný WYSIWYG editor, ve kterém se tvorba obsahu podobá vytváření běžného textového dokumentu v MS Word či OpenOffice. Výsledná stránka vzniká psaním textu a jeho formátováním pomocí různých funkčních tlačítek. Jednotlivé stránky lze sdružovat do rubrik, které lze koncovému uživateli zveřejnit v menu. Další důležitou funkcí je vytváření fotogalerií obrázků a fotografií. Fotky lze na server nahrávatpomocíformulářezadministračníhorozhranínebopomocíftppřístupu 2. Náhledy jsou vytvářeny automaticky. Galerie lze opět členit do rubrik. K článkům i fotogaleriím lze připojit diskusní příspěvky, které nejsou hierarchicky členěny, zobrazují se od nejnovějších reakcí. Jednotlivé stránky i alba obrázků lze zamknoutheslem 3,kteréjevšakprovšechnyuživatelestejné. V administračním rozhraní je možné nastavit grafický návrh, který bude použit a jeho barevné variace. Šablonu vzhledu lze upravovat. Stejně jako rozmístění jednotlivých prvků na stránce včetně jich zapnutí či vypnutí. Stránky mají adresu ve formátu jméno.estranky.cz. Zmiňme v krátkosti jednotlivé verze poskytované služby. Pro vyzkoušení je ideální verze zdarma, která obsahuje 30 MB prostoru, možnost zveřejnění max. 60 fotografií, přenos1gbdatzaměsíc,neníurčenafirmámajenutnézobrazovatvloženoureklamu. Nekomerčníverzeneníurčenáfirmám,platísezanípoplatek420Kčzarok.Uživateldostane1GBprostoru,můžezveřejnitaž2000fotografiíapřenéstaž5GBza měsíc. Fotografie můžeme nahrávat i přes FTP, jednotlivé stránky lze zamknout heslem. Nekomerční placená verze neobsahuje reklamu provozovatele a nelze do ní umístit cizí reklamu. Komerční verze stojí 1500 Kč za rok, má obdobné parametry jako nekomerční verze stím,želzevyžít5gbprostoru,mítdvojnásobnýpřenosdatadostránekumisťovat cizí reklamu. Táborový vedoucí zodpovědný za internetové stránky vytvořil před více než rokem prezentaci právě pomocí zde popsaného systému estránky. Kvůli možnosti zveřejnění většiny fotografií z tábora se rozhodl pro využití nekomerční prezentace, která poskytuje poměrně dost prostoru na jejich uložení za rozumnou cenu. Vedle tvorby obsahu a publikace obrázků jsou stránky využívány i pro komunikaci mezi vedoucími prostřednictvím diskuse. Během používání se časem začaly objevovat i nedostatky tohoto řešení. Základní funkce, které od stránek tábor požaduje, jsou sice splněny, bohužel ale není možné implementovat některé další funkčnosti, které by organizátorům akce pomohly. Zejména chybí vytváření interaktivního kalendáře akcí(i mimotáborových), možnosti přihlášení na ně a správa přihlášených účastníků. Přihlašování všech vedoucích do zamčených stránek pod jedním heslem je nevyhovující z hlediska bezpečnosti. Administrátor při tvorbě stránek často bojuje s WYSIWYG editorem, aby dosáhl ve výsledku opravdu toho, co 2 Neplatíproverzizdarma-viz.dále. 3 Neplatíproverzizdarma-viz.dále.
KAPITOLA 1. ÚVOD 5 Obrázek 1.2: Aktuální stav táborových www stránek vytvořených s pomocí služby estránky.cz mělvúmyslu.stáváse,ževeditoruseněcozobrazíjednímzpůsobemanavýsledné stránce jiným způsobem. Editor pak kolikrát místo ulehčení práci ztěžuje. Přepínání do HTMLmóduazpěttakéneníbezchybaněkdydocházízcelakrozhozeníkódu. Závěr: estránky pro začátek splňovaly funkce, které tábor od systému na tvorbu a publikaci stránek očekával. S postupným vývojem se ukázalo, že je třeba implementovat nové funkčnosti, hlavně kalendář akcí, možnost přihlašování na akce a autorizaci uživatelů stránek. Toto není v současném systému estránek možné, a proto bylo rozhodnuto o hledání jiného řešení. 1.3.2.2 Webgarden zone Webgarden zone[16] dává uživateli podobné možnosti jako estránky. On-line publikační systém umožňuje vytvoření a správu dynamických internetových stránek bez znalosti HTML a jiných webových technologií. Stránky se opět vytvářejí snadno a rychle, vše je zdarma. Do stránek lze vkládat články, galerie a odkazy, zakládat diskuze, vytvářet ankety a uploadovat soubory. K dispozici je více než sto předvolených vzhledů, které můžeme upravovat pomocí editoru či přímým zápisem do souboru CSS. Obsah stránek se dělí do rubrik. Stránky mají adresu jmenostranek.domena-od-webgardenu.cz, přičemž je k dispozici několik domén druhého řádu. Stránky se spravují pomocí rychlé a přehledné administrace. Chci zmínit několik výhod oproti estránkám. Nenároční uživatelé jistě ocení pěkné průvodce na vytvoření blogu, galerií, fór, magazínu či běžných www stránek. Přednasta-
6 KAPITOLA 1. ÚVOD vené vzhledy se mi osobně zdají být atraktivnější, stránky působí moderněji. Užitečným nástrojem jsou ankety, všechny druhy příspěvku mohou být řazeny abecedně, chronologicky i manuálně. Panel novinky zveřejňuje aktuální změny na stránkách. Jako nejzajímavější výhodu považuji zavedení systému práv a uživatelských skupin. Pomocí nich lze omezit přístup do jednotlivých sekcí stránek s tím, že každý uživatel má své uživatelské jméno a heslo. Díky čemuž jsou zabezpečené sekce výrazně bezpečnější než zamykání na estránkách. Závěr: Kdybychom se chtěli při tvorbě stránek pro tábor rozhodnout pro využití on-line systémů, bylo v současné době nejvhodnějším řešením použití právě Webgardenu kvůli lepší bezpečnosti nebo novým zajímavým funkcím v porovnání s estránkami. Problematika přihlašování dětí na tábor a jiné akce a jejich následná administrace není ani zdeřešena,ataksepodívámenadalšímožnosti,kterésenámnabízejí. 1.3.3 Redakční systémy Systém pro správu obsahu, často označovaný zkratkou CMS, je software spravující informace různého charakteru, který se zároveň stará i o jejich efektivní využití a zobrazení na některém z předpřipravených výstupů. V zásadě je jedno, jakým způsobem jsou data ve finále publikována, velmi často jsou tímto výstupem dynamicky generované HTML stránky. Uživatelé k nim přistupují prostřednictvím internetových prohlížečů. Můžeme zde pak hovořit o tzv. systému pro správu webového obsahu(wcm). Pro CMS sečastopoužívajíitermínypublikačníčiredakčnísystém 4. 1.3.3.1 Vlastnosti Redakční systém umožňuje lehce a rychle vkládat nový obsah a upravovat stávající. Stejně jako u dříve popsaných on-line řešení nemusíme mít technické znalosti potřebné pro tvorbu stránek. Veškerý obsah je většinou ukládán do databáze, ze které se informace při příchodu návštěvníka následně čtou. Vedle tvorby obsahu se systém zabývá i provázání jednotlivých článků, poskytuje různé kontroly a optimalizace. Pro potřeby neustálé aktuálnosti stránek můžeme využít krátkých textových zpráv ve formě novinek. Součástí bývá i možnost vytvoření fotografických alb. Velmi silnou stránkou některých RS je přístupový management, pomocí kterého je možno autorizovat uživatele. V některých případech jde uživateli přidělit i specifická přístupová práva k jednotlivým částem systému. Umožňuje to vytváření webu více lidmi najednou. Každý může spravovat svou sekci a administrátor vše korigovat. Redakční systém stránkám dodává i množství dynamických prvků. Obsahuje tvorbu a správu diskuzí, komentářů, anket, umožňuje tak získat zpětnou vazbu uživatele. Články se v redakčních systémech dají nastavit tak, aby se zobrazili jen v určitém časovém intervalu. Můžeme sipřipravitčlánek,kterývyjdenapř.aždalšídenráno.pouloženíčlánkudosystémuje článek pomocí šablon vzhledů, kterých bývá na výběr velké množství, zobrazován uživatelům společně s automaticky doplněnými anketami, možností vkládání komentářů či s dalšími funkcemi. Komentáře a ankety se administrují v jiné části systému. 4 ZkráceněRS.
KAPITOLA 1. ÚVOD 7 Některé CMS obsahují i pokročilé nástroje jako jsou statistiky, editor obrázků, správa verzí dokumentů, úkolování a interní komunikace mezi autory, centrální správu všech souborů určených ke stažení. 1.3.3.2 Možné využití Současné redakční systémy jsou natolik vyspělé a do značné míry i univerzální, že je lze využít při řešení téměř všech typů informačních webů kromě vysoce specializovaných zadání typu elektronický obchod. Tato univerzálnost nemění nic na skutečnosti, že existují zadání, pro jejichž řešení se publikační systémy hodí více, a zadání, ve kterých je použití minimálně sporné či zcela nevhodné. Nejklasičtější příklad vhodného využití redakčního systému je nasazení v rámci zpravodajského serveru. V případě využití aktualit, ankety a dalších součástí RS může vzniknout velmi zajímavý a dynamický firemní web malé či středně velké firmy. Prezentace státních, obecních a neziskových organizací funkčně a vzhledově většinou kombinuje vlastnosti zpravodajských a firemních serverů. Jako nevhodné nasazení publikačních systémů je použití v rámci elektronického obchodu. Je vždy lepší využít aplikaci, která je pro tento typ činnost navrhována již od samého počátku. Implementace v rámci RS může vést až k nepřekonatelným problémům s funkčností nebo vlastnostmi e-shopu. Velké firemní prezentace mají většinou složitou strukturu, kombinují statický a dynamický přístup k tvorbě stránek. Přistupuje se k nim na různých uživatelských úrovních, často je třeba je napojit na interní informační systémy. 1.3.3.3 Praktické nasazení systému Samostatnou kapitolou při zavádění redakčních systémů je jejich finanční stránka. Ve většině případů vychází jako levnější řešení nasazení CMS v porovnání s vývojem vlastního webu, kdy za méně peněz dostaneme stejnou nebo i lepší funkčnost. Vedle komerčních řešení je na internetu k dostání obrovské množství open source produktů. Je si z čeho vybírat, nalezneme i řadu velmi kvalitních programů. CMS se člení dle řady kritérií, například rozsahu řešení, použitého vývojového prostředí nebo cílové skupiny. Nejoblíbenější systémy, které jsou zdarma k dostání, bývají naprogramovány v PHP v kombinaci s databázovým systémem, často s MySQL(technologické podrobnosti jsou popsány v samostatné kapitole této práce). Webové publikační systémy obvykle vyžadují zkušeného programátora, který nastaví jednotlivé funkčnosti. Běžnou správu zvládají administrátoři bez velkých technických zkušeností. Rozhodneme-li se využít redakční systém, musíme si krom samotného systému zajistit i místo, kam jej na internetu umístíme. Obecně lze říci, že potřebujeme server, který umožňuje spouštění programů, v nichž je redakční systém implementován. Stejně tak musí zpřístupnit databázový stroj, se kterým se v systému počítá. Existuje velké množství poskytovatelů webového prostoru, kteří nabízejí služby PHP a MySQL svým zákazníkům. Rozsah služeb se samozřejmě liší, ať už jde o množství povoleného uložení dat, množství přenášených dat za měsíc atd. Tyto firmy provozují tzv. webhosting, v pří-
8 KAPITOLA 1. ÚVOD padě poskytnutí služeb zdarma se jedná o freehosting. Služby zdarma obvykle požadují jako protislužbu zobrazení reklamy či mohou být méně spolehlivé. Bezplatné redakční systémy lze provozovat i na řadě freehostingových serverech, kdy jsou náklady na zavedení a používání systému nulové(nepočítáme-li čas strávený seznámením s produktem, jeho instalací a nastavováním). Vždy je třeba zkontorolovat, zda daný hostingový server je nastaven tak, aby vyhovoval i zaváděnému systému. Požadavky jsou různé pro jednotlivé systémy. Na českém internetu lze zadarmo získat prostor o velikosti až jeden GB. Hlavně v případě, že máme např. velký objem uložených fotografií (a dat obecně), budeme muset pro získání prostoru o velikosti několika GB sáhnout po placenémhostingu.jehocenasevčeskérepublicepohybujeodcca75kčzaměsíc[20]. 1.3.3.4 Zhodnocení Jak již bylo řečeno, je na trhu dostupné velké množství redakčních systémů. S ohledem na co nejmenší finanční náročnost by bylo možné pro plánovaný táborový systém využít některý z bezplatných CMS. Mezi nejoblíbenější patří Joomla![7], Drupal[2], Wordpress[18] nebo PhpRS[13]. Obrázek 1.3: Ukázka použití redakčního systému Drupal na stránkách věnovaných nástroji phpmyadmin. Závěr: Při seznamování s možnostmi redakčních systémů je vhodné vyzkoušet online demo, které je v řadě případů přítomno na stránkách jednotlivých systémů. Lze si prohlédnout i reálné aplikace, které jsou na zkoumaných produktech postaveny. Prošel jsem si možnosti některých redakčních systémů. Jsou opravdu bohaté, pochopitelně se liší systém od systému. S jejich využitím by se dala implementovat většina
KAPITOLA 1. ÚVOD 9 funkčnosti, které požadujeme od táborových stránek. Bohužel jsem nenašel produkt, který by realizoval požadovaný způsob přihlašování na akce a jejich následné zpracování včetně různých reportů. Nelze ale vyloučit, že nějaký takový systém existuje. Obecným problém bezplatných systémů je, že často nejsou dostatečně zdokumentovány. Případné doprogramování neexistujících funkčností se tím stává poměrně obtížné. Výsledný systém pro dětský letní tábor nemá být nějak extrémně rozsáhlý. Použití RS by paradoxně mohlo vést k situaci, že budou zavedeny služby, které nebudou využívány, resp. svou rozsáhlostí bude výsledek na uživatele působit nepřehledně. Spolu s nutností dodělávání funkcí týkajících se přihlašování na akce a s tím spojenou potřebou proniknout alespoň částečně do složitých kódů redakčních systémů nepovažuji využití redakčního systému v našem případě za přínosné. 1.3.4 Shrnutí V úvodní kapitole jsme si představili možnosti, které vedou více či méně úspěšně k vytvoření informačního systému pro dětský tábor. Podle mého názoru bude nejjednodušší variantou vytvoření stránek zcela nových, bez využití nějakého existujícího produktu. Pochopitelně je při implementaci přínosné aplikovat již některé hotové komponenty, které jsou volně dostupné na internetu. Tyto budou zmíněny v následující kapitole týkající se použitých technologií. Chtěli-li bychom využít některého z popisovaných produktů, pak bych doporučil Webgarden zone. Museli bychom se smířit s tím, že neumožňuje vše, co je od systému očekáváno. Na druhou stranu toho poskytuje více než současný systém. V případě, že bychom od táborových stránek očekávali nějaké masivní rozšiřování záběru poskytovaných služeb, navrhuji využít pěkného českého redakčního systému Drupal, který má na svých stránkách i bohatou uživatelskou podporu.
10 KAPITOLA 2. POUŽITÉ TECHNOLOGIE A METODIKY 2 Použité technologie a metodiky 2.1 HTML HTML patří do skupiny tzv. značkovacích jazyků, je používáno pro tvorbu internetových stránek. Poskytuje prostředky, kterými můžeme popsat strukturu textového dokumentu, jenž má být publikován na internetu. Jazykjecharakterizovándefinovanoumnožinouznaček 1 ajejichatributů.meziznačky se uzavírají části textu dokumentu a tím se určuje význam obsaženého textu. Názvy jednotlivých značek se uzavírají mezi úhlové závorky( < a > ). Část dokumentu uzavřená mezi značkami tvoří element dokumentu. Součástí obsahu elementu mohou být další vnořené elementy. Atributy jsou doplňující informace, které upřesňují vlastnosti elementu. Normy a doporučení pro jazyk HTML schvaluje nezávislé mezinárodní standardizační konsorcium W3C. HTML prošlo rozsáhlým rozvojem, a tak se setkáváme s řadou verzí jazyka. Vývoj byl původně ukončen verzí 4.01, která je v současnosti při použití HTML standardem. Dle W3C mělo další publikování dokumentů v prostředí internetu patřit XHTML. Některým lidem se však vývoj okolo XHTML nezamlouval. W3C během roku 2007 založilo novou pracovní skupinu HTML, jejíž cílem je v roce 2010 uvolnit specifikaci nové HTML verze 5. 2.2 CSS CSS je jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML navržený organizací W3C. Byly vydány zatím dvě verze specifikace CSS1aCSS2(aopravnáverzeCSS2.1),jiždelšídobujevyvíjenaCSS3.Zkratka CSS znamená cascading style sheets, česky překládané jako kaskádové styly. Kaskádové, protože se na sebe mohou vrstvit definice stylu, ale platí jenom ta poslední. Hlavním smyslem použití je umožnit návrhářům oddělit vzhled dokumentu od jeho struktury a obsahu. Původně to měl umožnit už jazyk HTML, ale v důsledku nedostatečných standardů a konkurenčního boje výrobců prohlížečů se vyvinul jinak. Starší verze HTML obsahují celou řadu elementů, které nepopisují obsah a strukturu dokumentu, ale i způsob jeho zobrazení. Z hlediska zpracování dokumentů a vyhledávání informací není takový vývoj žádoucí. V současné době všechny moderní prohlížeče internetových stránek CSS podporují. Nelzejejužítvevelmistarýchprohlížečích(Explorer2aNavigator3),kterésevšakjiž nevyskytují. Textové prohlížeče a některá mobilní zařízení také nepodporují definice CSS k zobrazení, text se v nich nezformátuje, ale zůstává čitelný. 1 Častosejakosynonymapoužívátermínutag,kterýpocházízangličtiny.
KAPITOLA 2. POUŽITÉ TECHNOLOGIE A METODIKY 11 2.3 JavaScript JavaScript je multiplatformní programovací jazyk, jenž vyvinula společnost Netscape. Zpravidla se používá jako interpretovaný programovací jazyk pro www stránky, kterýjevkládanpřímodohtmlkódustránky.slovojavajesoučástíjehonázvupouze s marketingových důvodů, s programovacím jazykem Java jej však spojuje jen podobná syntaxe. Program v JavaScriptu se obvykle spouští až po stažení www stránky z internetu, tj. nastraněklienta 2 (klientskýskript).tojerozdílodjinýchinterpretovanýchprogramovacích jazyků(např. PHP), které se spouštějí na straně serveru(serverové skripty) ještě před stažením z internetu a které klientovi posílají už jen výsledky. Z toho plynou jistá bezpečností omezení, JavaScript např. nemůže pracovat se soubory, aby tím neohrozil soukromí uživatele. JavaScript se používá například při vstupní kontrole dat vkládaných do formulářů ještě před tím, než jsou vyplněné údaje odeslány na server. Kontrolu údajů nemusí provádětserveravýsledkemjerychlejšíodezvaprouživatele 3.JavaScriptpracujesjednotlivými komponentami prohlížeče a stránky pomocí objektového modelu dokumentu (DOM). JavaScript funguje ve všech moderních prohlížečích, často není podporován v mobilních zařízeních. Uživatel navíc může JavaScript ve svém prohlížeči zakázat. Proto je nutné při vývoji internetových aplikací s JavaScriptem buď zajistit podporu JavaScriptu v prohlížeči(což lze např. ve firmě) nebo je nutné umožnit uživateli použití stránek i s vypnutým JavaScriptem, byť by měl být snížen jeho uživatelský komfort při práci se stránkami. 2.4 Apache Webovým serverem rozumíme počítač připojený k počítačové síti s nainstalovaným softwarovým webovým serverem, který od klientů(internetových prohlížečů) přijímá požadavky ve tvaru HTTP a je zodpovědný za jejich vyřizování. Vyřízením požadavku se rozumí odeslání webové stránky počítači, který požadavek vznesl. Odpověď obvykle představuje nějaký HTML dokument. Může to být ale i dokument v jiném formátu(text, obrázekapod.). Server má v zásadě dvě možnosti, jak získávat informace, které vrací klientům. Jsou to buď předem připravené datové soubory(html stránky), které webový server bez změny poskytne klientovi. Hovoříme pak o tzv. statických www stránkách. Nebo může teprve na základě požadavku klienta shromáždit potřebná data(přečíst ze souboru, z databáze atp.), zformátovat je a připravit k prezentaci většinou formou HTML(či XHTML). takto připravený dokument je poskytnut internetovému prohlížeči, který zaslal požadavek. V tomto případě jde o tzv. dynamické stránky. K dynamickému vytváření obsahu se používá celá řada různých technologií(např. 2 JavaScriptjemožnépoužítinastraněserveru.PrvníimplementacíJavaScriptunastraněserveru byl LiveWire firmy Netscape vypuštěný roku 1996. 3 Totovyužitínemásnástupemrychléhointernetuvposledníchletechjižtakvelkýpřínosjakodříve.
12 KAPITOLA 2. POUŽITÉ TECHNOLOGIE A METODIKY Perl, PHP, ASP), v této práci bude použito PHP. Statický obsah je schopen server poskytnout významně rychleji než dynamický. Na druhé straně pomocí dynamického obsahu lze poskytovat mnohem větší obsah informací a lze reagovat i na různé dotazy klientů. Proto se v praxi v mnoha případech oba způsoby poskytování obsahu kombinují. Apache Server[1] je softwarový webový server s otevřeným kódem pro Linux, MS Windows a další platformy. V současné době dodává prohlížečům na celém světě většinu internetových stránek. Apache je dostupný zdarma, poměrně jednoduše se instaluje i na domácí počítač, čímž lze zdarma spolu se skriptovacím jazykem PHP a databází MySQL vytvořit velmi kvalitní vývojové prostředí internetových aplikací. Název Apache vznikl z anglického a patchy server, tedy záplatovaný server. Odvozuje z historie programu, kdy byl Apache mezi správci serverů používán s mnoha různými záplatami a úpravami. Jako indiánský symbol je ve znaku ptačí pero. 2.5 PHP PHP je skriptovací programovací jazyk určený především pro programování dynamických internetových stránek. Nejčastěji se začleňuje přímo do struktury jazyka HTML či XHTML, což je velmi výhodné pro tvorbu webových aplikací. PHP lze ovšem také použít i k tvorbě konzolových a desktopových aplikací. Skripty PHP jsou prováděny na straně serveru, k uživateli je přenášen až výsledek jejich činnosti a to stejným způsobem, jakým se odesílají běžné statické stránky. Syntaxe jazyka kombinuje hned několik programovacích jazyků(perl, C, Pascal a Java). PHP je nezávislé na platformě, skripty fungují bez úprav na mnoha různých operačních systémech. Obsahuje rozsáhlé knihovny funkcí pro zpracování textu, grafiky, práci se soubory, přístup k většině databázových serverů, podporu celé řady internetových protokolů. S verzí PHP 5 se výrazně zlepšil přístup k objektově orientovanému programování. Jazyk PHP se stal velmi oblíbeným především díky jednoduchosti použití a tomu, že kombinuje vlastnosti více programovacích jazyků. Nechává tak vývojáři částečnou svobodu v syntaxi. V kombinaci s databázovým serverem(nejčastěji s MySQL nebo PostgreSQL) a webovým serverem Apache je často využíváno k tvorbě webových aplikací. PHP je open source technologie, kterou můžeme volně stáhnout na oficiálním serveru projektu www.php.net, kde najdeme i výbornou on-line dokumentaci[25] s velkým množstvím příkladů použití. 2.6 MySQL MySQL[9] je databázový systém dostupný jak pod bezplatnou licencí GPL, tak pod komerční placenou licencí. MySQL je multiplatformní databáze. Komunikace s ní probíhá pomocí jazyka SQL. Podobně jako u ostatních SQL databází se jedná o dialekt tohoto jazyka s některými rozšířeními. Pro svou snadnou implementovatelnost v různých operačních systémech(ms WindowsaLinuxnevyjímaje),výkonapředevšímdíkytomu,žesejednáovolněšiřitelný
KAPITOLA 2. POUŽITÉ TECHNOLOGIE A METODIKY 13 software, má vysoký podíl trhu používaných databází v oblasti internetových aplikací. Jak již bylo dříve zmíněno, jako základní software webového serveru je velmi oblíbená a často nasazovaná kombinace MySQL, PHP a server Apache. Od počátku bylo MySQL optimalizováno především na rychlost, a to i za cenu některých zjednodušení: má jen jednoduché způsoby zálohování, a až donedávna nepodporovalopohledy,triggery,auloženéprocedury 4 MySQL nenabízí v základní instalaci pro práci s daty žádné grafické rozhraní, SQL dotazy lze provádět přes příkazový řádek. Pro jednoduché vytváření, spouštění a optimalizaci SQL dotazů je možné doinstalovat vizuální nástroj MySQL Query Browser, který je též dostupný na stránkách projektu. Velmi oblíbenou alternativou k tomuto nástroji je PHPMyAdmin[11]. Jedná se aplikaci napsanou v PHP, kterou lze provozovat na vývojové stanici a která dovoluje vytvářet a spravovat databáze na místním počítači. 2.7 AJAX 2.7.1 Princip Ajax je nová technologie používaná při vývoji internetových aplikací. Název je zkratkou pro Asynchronous JavaScript and XML a byl poprvé použit v únoru 2005. Samotné komponenty, jež Ajax využívá, existují již od roku 1998. Ajax umožňuje vytváření interaktivnějších webových stránek, které mohou okamžitě reagovat na uživatelovo chování. Děje se tak pomocí malých kousků dat, které jsou vyměňovány se serverem na pozadí. Pokynkvýměnědatjepředzrakemuživateleukryt,atakstránkanemusíbýtpřizměně vždy znovu celá načítána. Popsaný princip ukazuje obrázek 2.1. Obrázek 2.1: Princip volání Ajaxu.[21] Důvodem pro použití Ajaxu je zvýšení interaktivnosti stránky, rychlosti zobrazení nových informací, vytvoření nové funkcionality a uživatelské přívětivosti. 4 Objevilyseažodverze5.
14 KAPITOLA 2. POUŽITÉ TECHNOLOGIE A METODIKY 2.7.2 Používané techniky Ajax je metoda nezávislá na použité platformě, nezávisí na operačním systému ani použitém hardware. Je podporována všemi moderními prohlížeči ať už jde o Internet Explorer či Mozilla Firefox, tak i Operu. V krátkosti si uveďme, jakých technologií Ajax využívá: Pro zobrazování informací je použito standardního XHTML(popř. HTML) a CSS. Nezbytnou složkou pak je JavaScript, který umožňuje vytvářet funkcionalitu na straně klienta, k manipulaci s částmi HTML stránky používá DOM. Základní elementem je objekt XMLHttpRequest, který umožňuje JavaScriptu asynchronní výměnu dat s webovým serverem. Komunikace mezi klientem a serverem probíhá na pozadí, uživatel tak může nerušeně pokračovat v práci. Tato komunikace znamená vytvoření HTTP požadavku na soubor či skript, který je umístěný na serveru. VětšinoujepropřenosdatmeziserveremaklientemvyužitXMLformát,avšak lzepoužítiprostýtext,htmlčijson. Klasické webové stránky zobrazují data, která jsou uložena v databázových strojích na serveru, nejsou s nimi však pevně svázány. Před tím, než jsou informace z databáze dodány do uživatelova prohlížeče, je nutné je všechny zabalit do jednoho HTML kódu aodeslat,klientcelýkódpřijmeazobrazí.protovždy,kdyžsechceuživatelpodívatna byť jen trochu jinou množinu dat, musí být znovu načtena celá internetová stránka. Žádost o nová data a jejich příjem pomocí objektu XMLHttpRequest odstraňuje nutnost požadavku na server pro zaslání celé stránky. Pro zobrazení nových dat tedy nemusí být přenesena kompletní webová stránka. Pro porozumění si ještě vysvětleme, v jaké formě si během asynchronního přenosu klientská a serverová strana předávají svá data. Klientský skript, který přistupuje k serveru pomocí XMLHttpRequest může prostřednictvím metod GET a POST poslat dvojice jméno-hodnota. Tyto dvojice lze na straně serveru přečíst libovolným skriptem. Serverový skript zasílá odpověď zpět pomocí HTTP, ale na rozdíl od klasické internetové stránky je odpověď ve formátu, který je parsován JavaScriptem v klientovi. Jak již bylo poznamenáno, nejčastěji je tímto formátem XML a to kvůli velkému rozšíření a množství dostupných knihoven, pomocí nichž lze s daty v XML manipulovat. Využitím Ajaxové technologie posouvá běžnou internetovou stránku více na úroveň aplikace, protože stránka může být, obdobně jako běžná desktopová aplikace, velmi úzce svázána s daty uloženými v databázovém stroji na serveru. 2.7.3 Výhody Zmiňme si nyní výhody, které použití Ajaxu ve webových aplikacích přináší. Jak bylo zmíněno, patří mezi ně odstranění nutnosti znovunačtení a opětovného zobrazení celé stránky při každé operaci. Velmi vhodné využití je např. při bodovém hodnocení kvality
KAPITOLA 2. POUŽITÉ TECHNOLOGIE A METODIKY 15 fotografií, článků či při hlasování v anketách. Stránka zůstává většinou celá nezměněná a aktualizuje se jen výsledek hlasování. Jelikož není potřeba při každém požadavku sestavit celý HTML dokument, ale pouze provedené změny, je množství přenášených dat výrazně menší a nasazení Ajaxu může výrazně snížit vytížení sítě, popř. i zátěž webových serverů. Zároveň ale dochází ke zvýšení počtu vyměňovaných HTTP požadavků, které mohou způsobit, že při nevhodné implementaci zátěž neklesne. Ajax umožňuje vytvářet lepší a přístupnější webové aplikace, stránky, které jsou pro uživatele větším zážitkem než klasické internetové stránky. Protože používá stávající technologie, je možné Ajaxu využívat ihned v plném rozsahu, po vývojářích nevyžaduje velké množství zcela nových znalostí. Díky své popularitě podporuje tzv. vzory, které vývojářům pomáhají, aby se při běžných úkolech vyhnuli vynalézání již dávno známých věcí. 2.7.4 Nevýhody Mezi nevýhody patří hlavně změna náhledu na internetovou aplikaci jako takovou. Webové stránky již nejsou jen posloupností stránek, mezi kterými lze přepínat pomocí tlačítka zpět. Jedna stránka může procházet mnoha stavy, mění se na ní zobrazené informace, a tak použití tlačítka zpět může uživateli přinést zcela jiný výsledek než očekával. Ajaxové internetové aplikace se totiž svým chováním blíží plnohodnotným desktopovým aplikacím se složitou vnitřní logikou. Vývojáři se samozřejmě snaží problém s historií stránek řešit, a tak nejnovější aplikace jsou už schopny funkce tlačítek zpět a následující alespoňčástečněobnovit.využívajíktomunapř.neviditelných iframe 5. S tímto úzce souvisí i obtížnost bookmarkování konkrétního stavu webové aplikace. Ukládání stavu aplikace lze řešit s využitím textu za znakem # v URL stránky. Mnoho prohlížečů umožňuje JavaScriptu dynamicky upravovat část URL za #, a tak Ajaxové aplikace mohou tuto část měnit zároveň s tím, jak uživatel mění stav aplikace. Toto řešení též vylepšuje podporu tlačítka zpět. Typickou ukázkou popsaného je implementace mapového serveru Mapy.cz. Dalším problémem může být též doba síťové odezvy serveru na asynchronní požadavek klienta. Potřeba komunikace přes internet může mít negativní dopad na rychlost odezvy a interaktivitu uživatelského rozhraní. Pokud uživateli není jasně naznačeno, že aplikace zpracovává jeho požadavek, jediné, čeho si všimne, je zpožděná reakce aplikace. Tomůževéstiktomu,žesepokusíprovéstoperaciznovu,protožesedomnívá,žesystém jeho příkaz ignoroval. Pro vyhledávací roboty není jednoduché indexovat internetové stránky, které využívají Ajax. Vývojář proto nesmí spoléhat jen na to, že si vyhledávač jeho stránku najde a správně zaindexuje, ale musí mu speciálními technikami pomoci. Uživatelům, jež mají vypnutý JavaScript a tudíž nemohou využívat Ajaxových vymožeností, by se měly internetové stránky zobrazovat plnohodnotně co do informační hodnoty, byť třeba s menším uživatelským komfortem. Rozhodně by se vývojáři měli 5 IframejetagvHTMLaXHTML
16 KAPITOLA 2. POUŽITÉ TECHNOLOGIE A METODIKY vyvarovat situace, kdy s vypnutým JavaScriptem bude uživatel zcela odříznut od aplikace. Proto se doporučuje vytvořit aplikaci celou bez využítí technik Ajaxu a následně provést Ajaxová vylepšení. Ajax spoléhá na JavaScript, který bývá implementován rozdílně jak různými druhy prohlížečů, tak i různými verzemi jednoho prohlížeče. Kvůli tomu je potřeba aplikaci otestovat v několika různých internetových prohlížečích, abychom zajistili bezchybný chod internetové aplikace. Často se stávalo, že některé části JavaScriptového kódu musí být psány dvakrát, jednou pro Internet Explorer a podruhé pro Mozillu. S nejnovějšími verzemi prohlížečů se naštěstí tento problém stále zmenšuje, čemuž napomáhá i vznik abstraktních JavaScriptových knihoven. 2.8 Texy!aTexyla 2.8.1 Texy! Texy![14] je program, díky kterému můžeme snadno, bez odborných znalostí, psát texty do webových stránek. Umožňuje jednoduše zvýraznit písmo, vytvořit nadpis či odrážky, přidat obrázek nebo tabulku. Generuje vždy validní HTML nebo XHTML kód, podporuje CSS, rozumí všem obvyklým kódováním včetně Unicode, je dokonale konfigurovatelné a přizpůsobitelné. Původně vzniklo Texy! jako nástroj, který umožnil i uživatelům neznalým HTML snadno editovat obsah webových stránek. Záměrem bylo vytvořit silnou alternativu k WYSIWYG editorům, které se v praxi ukazují jako neefektivní. Běžný uživatel se může plně věnovat psaní čistého textu, který si formátuje velmi přirozeným způsobem. A nemusíseučittéměřnicnového. Zkušení tvůrci internetového obsahu, jakými jsou například bloggeři, často jazyk HTMLznají.Alepsátčlánkypřímovněmjenepříjemnéaprotosizjednodušujípráci používáním chytrých editorů. Jedním z nich je i Texy!. Je navíc dostupný i přes webové rozhraní a nabízí neobvykle vysoký komfort. Díky Texy! se autor může plně věnovat obsahu dokumentu a nemusí uvažovat nad HTML nebo typografickou úpravou. Texy! dokáže psaní výrazně zjednodušit, přitom pokročilého uživatele nijak neomezuje- lze vkládat i HTML značky a CSS formátování. Texy! počítá i s nasazením jako formátovač příspěvků v diskuzních fórech a komentářích. Přispěvatelé mohou používat jednotnou a intuitivní syntaxi a programátorům odpadne náročná práce na vlastním formátovači. Tato oblast použití je charakteristická tím, že vyžaduje mnohem přísnější kontrolu vstupů. Texy! proto obsahuje mechanismy, které zakáží nebo omezí použití určitých HTML značek(a jejich atributů), kaskádových stylů atd. Pisatel komentáře totiž může odeslat prakticky jakýkoliv shluk písmen a je jennaaplikaci,abysesnimivypořádalaavrátilavalidníaočekávatelnýhtmlkód. Komentář může být napsán se záměrem podvrhnout záškodnický kód např. ve formě JavaScriptu.