Využití mikroformátů při vývoji internetového magazínu
Transkript
Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Katedra informačního a znalostního inženýrství Využití mikroformátů při vývoji internetového magazínu Bakalářská práce Autor práce: Jan Pospíšil Vedoucí práce: Ing. David Chudán prosinec 2009, Praha Prohlášení Prohlašuji, že jsem vypracoval bakalářskou práci na téma Využití mikroformátů při vývoji internetového magazínu samostatně. Použitou literaturu a další podkladové materiály uvádím v přiloženém seznamu literatury. V Praze dne 1. prosince 2009 ........................ podpis autora Poděkování Tímto bych chtěl poděkovat Ing. Davidu Chudánovi za pomoc, připomínky a vedení této práce. Abstrakt Cílem této práce je nahlédnout do problému sémantiky na webu, vybrané sémantické prvky v podobě mikroformátů a HTML 5 elementů implementovat při vývoji nové verze redakčního systému a magazínu mobilenet.cz, a provést průzkum, jak jsou na tom s využíváním mikroformátů konkurenční magazíny a volně dostupné systémy pro správu obsahu na webu. Práce přináší praktický pohled na řešení implementace do systému internetového magazínu, popisuje problémy, které je potřeba při implementaci řešit a jejich možná řešení. Přináší také přehled reálných využití a benefitů, které implementace těchto technologií poskytuje. Průzkum využití mikroformátů pak přináší náhled do aktuální situace a způsobu využití mikroformátů na českém internetu a zároveň poskytuje cennou perspektivu pro vyvíjený magazín v oblasti získání možných konkurenčních výhod. Je také zkoumáno, jaké možnosti v oblasti sémantiky nabízejí volně dostupné systémy pro správu obsahu. Práce je rozčleněna na čtyři kapitoly, přičemž první, teoretická, se zabývá sémantikou na webu a konkrétně pak mikroformáty a HTML 5. Poté následuje základní popis vývoje magazínu mobilenet.cz, jenž je v třetí kapitole následován implementací sémantických prvků. Poslední část práce je pak věnována samotnému průzkumu a hodnocení. Klíčová slova mikroformáty, sémantika, internet, web, HTML, vývoj, magazín Abstract The aim of this work is to provide a look in a problem of semantics on the web, to implement the chosen semantic components (microformats and HTML 5) to the new version of internet magazine mobilenet.cz development and to make a research of microformats utilization by the competitive magazines and open source content management systems. This work shows the practical view in the microformats implementation into the system of the internet magazine, describes the implementation problems as well as their solutions. It also shows a review of real world usages and benefits, which these technologies provides. The utilization research also brings a look in the actual situation and the way of utilization on the Czech internet and provides valuable perspective of possible competitive advantages for the magazine too. It is also researched which solutions provide the open source content management systems. The work is divided into four chapters. First theoretic chapter deals with the semantics on the web, concretely with the microformats and HTML 5, followed by the basic description of the magazine’s development and semantic components’ implementation in chapter three. The last chapter is finally dedicated to the research itself. Key words microformats, semantics, internet, web, HTML, development, magazine Obsah Úvod ............................................................................................................................................... 9 1. Sémantika na webu .................................................................................................................. 10 1.1. Sémantický web ................................................................................................................. 10 1.2. Mikroformáty .................................................................................................................... 11 1.2.1. Historie....................................................................................................................... 11 1.2.2. Koncept mikroformátů ............................................................................................... 12 1.2.3. XMDP profily .............................................................................................................. 13 1.2.4. Návrhové vzory .......................................................................................................... 13 1.2.5. Jednotlivé mikroformáty ............................................................................................ 16 1.3. HTML 5 .............................................................................................................................. 16 1.3.1. Sémantické prvky HTML 5 .......................................................................................... 17 2. Internetový magazín mobilenet.cz ........................................................................................... 18 2.1. Historie a popis stávající verze ........................................................................................... 18 2.2. Design nové verze magazínu ............................................................................................. 19 2.2.1. Navigace..................................................................................................................... 20 2.3. Technické řešení nové verze magazínu .............................................................................. 20 2.3.1. Serverové zázemí ....................................................................................................... 21 2.3.2. PHP............................................................................................................................. 21 2.3.3. MySQL databáze ........................................................................................................ 27 2.3.4. JavaScript ................................................................................................................... 27 2.3.5. Optimalizace adres ..................................................................................................... 28 3. Implementace sémantických prvků do magazínu ..................................................................... 29 3.1. HTML 5 .............................................................................................................................. 29 3.1.1. HTML nebo XHTML?................................................................................................... 29 3.1.2. Struktura dokumentu ................................................................................................. 29 3.1.3. Problém s reálnou implementací ............................................................................... 30 3.1.4. Výhody použití sémantických prvků ........................................................................... 31 3.2. Implementace mikroformátů do systému ......................................................................... 31 3.3. Mikroformát hAtom .......................................................................................................... 32 3.3.1. Využití ........................................................................................................................ 33 3.4. Mikroformát hSlice (Web Slices) ........................................................................................ 34 3.4.1. Využití ........................................................................................................................ 35 3.5. Mikroformát hCard ............................................................................................................ 35 3.5.1. Problémy implementace ............................................................................................ 36 3.5.2. Využití ......................................................................................................................... 36 3.6. Mikroformát hReview ........................................................................................................ 37 3.6.1. Využití ......................................................................................................................... 37 3.7. Mikroformát hMedia ......................................................................................................... 38 3.7.1. Využití ......................................................................................................................... 39 3.7.2. Doplněk oomph .......................................................................................................... 39 3.8. Mikroformát XOXO ............................................................................................................ 39 3.9. Rel mikroformáty ............................................................................................................... 40 3.9.1. Rel-tag ........................................................................................................................ 40 3.9.2. Rel-home .................................................................................................................... 40 3.9.3. Rel-nofollow ............................................................................................................... 41 3.10. Další mikroformáty .......................................................................................................... 41 3.10.1. hProduct ................................................................................................................... 41 3.10.2. hNews....................................................................................................................... 41 3.11. Shrnutí přínosů implementace ......................................................................................... 41 4. Konkurenční řešení ................................................................................................................... 43 4.1. Mikroformáty v nejpoužívanějších CMS ............................................................................. 43 4.1.1. WordPress .................................................................................................................. 43 4.1.2. Drupal ......................................................................................................................... 43 4.1.3. Joomla! ....................................................................................................................... 43 4.1.4. MediaWiki .................................................................................................................. 43 4.1.5. Další systémy .............................................................................................................. 44 4.1.6. Shrnutí ........................................................................................................................ 44 4.2. Mikroformáty v českých magazínech ................................................................................. 44 4.2.1. Shrnutí ........................................................................................................................ 45 Závěr ............................................................................................................................................. 46 Citovaná literatura ........................................................................................................................ 47 Rejstřík výrazů............................................................................................................................... 49 Rejstřík obrázků ............................................................................................................................ 50 Rejstřík tabulek ............................................................................................................................. 51 Příloha A ...................................................................................... Chyba! Záložka není definována. Úvod Úvod Podnětem pro zpracování této bakalářské práce byl vývoj internetového magazínu o mobilních telefonech mobilenet.cz, jehož novou verzi vyvíjím s přestávkami už přes dva roky. I když je téma vývoje internetového magazínu a redakčního systému velice zajímavé, rozhodl jsem se tuto práci zaměřit na použité mikroformáty a okrajově další sémantické prvky, které se na webu dají použít. Je to totiž téma relativně nové a například v publikačním segmentu webu ne příliš rozšířené. Nejprve se tedy v práci budu zaobírat obecně sémantikou na webových stránkách, přičemž se zaměřím hlavně na zmíněné mikroformáty a stručněji též na nové sémantické značky v HTML 5. Dále se budu věnovat právě magazínu mobilenet.cz. Stručně popíšu jeho historii, tak aby dále popisovaná práce na nové verzi tohoto magazínu zapadala do kontextu. U popisu vyvíjené verze magazínu, která má za úkol nahradit stávající zastaralou verzi, se zaměřím především na technickou stránku věci a popíšu především jádro systému a další zajímavá řešení, jelikož v době plánovaného odevzdání této práce nebude magazín jako celek pravděpodobně dokončen a doladěn tak, aby byl nasazen do provozu. Dokončení, zprovoznění a nasazení kompletního internetového magazínu s redakčním systémem tedy není předmětem této práce. V další části se budu zabývat praktickou implementací mikroformátů a HTML prvků jeho páté verze do magazínu mobilenet.cz. Zmíním zde i možné využití nasazených mikroformátů a jejich výhody. V závěrečné části práce bych se pak chtěl zaměřit na průzkum toho, v jakém stavu jsou v současné době mikroformáty v reálném prostředí. Jak a v jaké míře je používají autoři internetových stránek a jaké služby s nimi na druhé straně pracují a využívají je pro prospěch jejich uživatelů. Pokusím se také zmapovat využití mikroformátů nejen u konkurence magazínu mobilenet.cz, ale také obecně na publicistických stránkách. Prozkoumám i možnosti a způsoby implementace mikroformátů ve volně dostupných CMS1 pro web. 1 CMS (Content Management Systém) – systém pro správu obsahu 9 Využití mikroformátů při vývoji internetového magazínu 1. Sémantika na webu Na internetu je dnes mnoho informací a drtivá většina z nich je uložena v HTML. [1] I když má tento jazyk za sebou poměrně dlouhou historii a od svého vzniku prošel výraznými změnami, myšlenku vyjadřovat význam a důležitost některých informací si nese už od svých prvopočátků. Už v návrhu HTML Internet Draft 1.2 z roku 1993 totiž najdeme značky, jako jsou <em>, <strong>, <h1> nebo například <address>. [2] Ty patří do kategorie takzvaných sémantických značek. Od té doby se toho dodnes v tomto směru v HTML moc nezměnilo. (Pokud bereme v úvahu aktuální poslední schválený W3C2 standard HTML 4.01.) S příchodem větší podpory kaskádových stylů v prohlížečích na konci devadesátých let [3] se začalo vývojářům webů doporučovat, aby ve svých dokumentech oddělovali obsah od formy a místo různých konstrukcí s tagem <font> nebo používání <b> a <i> tagů pro zvýrazňování, se více začaly postupně používat ony sémantické značky. Když se nad nimi ale nad těmito sémantickými značkami zamyslíme, moc konkrétního nám toho neřeknou. Stroj dokáže zjistit, že slovo <em>Praha</em> je v kontextu ostatního textu něčím důležitější, že <h2>Moje firma</h2> je nadpis druhé úrovně, nebo <code> echo $promenna;</code> je kus kódu. Vyhledávačům tyto značky umožní relevantnější určení klíčových slov pro indexaci dokumentu a nám většinou pomocí stylů poskytnou vizuální zpřehlednění. Stále ale nejsme schopni při kódování HTML dokumentu jasně, pro stroj čitelným způsobem, určit konkrétní význam daných informací. Člověk sice dokáže většinou sám z textu poznat, že se konkrétně jedná o adresu, něčí jméno nebo třeba komentář k nějakému produktu. Jak už jsem ale na začátku zmiňoval, na internetu se nachází nepřeberné kvantum informací, které ale člověk nikdy nedokáže sám zpracovat. Právě proto vznikla logická potřeba najít způsob, jak strojům sdělit o datech, která na internet vkládáme, jejich skutečný význam tak, aby nám pomohly s nimi později efektivně a pohodlně pracovat a hlavně získávat pouze ta relevantní. 1.1. Sémantický web Sémantický web (anglicky Semantic Web) v sobě spojuje několik technologií, za pomocí kterých definuje, jak na webu data popisovat tak, aby se dala sdílet, znovupoužít a hlavně, aby jejich význam byl pochopitelný pro počítač a byla tak interakce uživatelem, či jinými službami snadnější. [4] [5] Hlavními stavebními kameny jsou především RDF3, což je XML4 formát pro popis zdrojů na webu pomocí podmětu, vlastnosti a předmětu [6] a OWL5, což je jazyk pro zprostředkování významu některých dat přímo pro počítače, k čemuž se používají takzvané ontologie 6 . Vývoj a 2 W3C (World Wide Web Consortium) RDF (Resource Description Framework) – systém popisu zdrojů 4 XML (Extensible Markup Language) – rozšiřitelný značkovací jazyk 5 OWL (Web Ontology Language) – webový ontologický jazyk 6 „Ontologie je výslovný (explicitní) popis určité problematiky. Ontologie je slovníkem, který slouží k uchovávání a předávání znalosti týkající se určité problematiky.“ [25] 3 10 1. Sémantika na webu standardizaci Sémantického webu a všech těchto technologií zajišťuje World Wide Web Consortium. Idea Sémantického webu je opravdu zajímavá a potenciál navržených technologií je díky jejich robustnosti a univerzálnosti veliký. Ale právě přílišná rozsáhlost a náročnost Sémantického webu je pravděpodobně v současné době příčinou toho, že se v příliš velké míře nepoužívá. [7] Problém složitosti zápisu kódu a nutnosti publikovat data ve dvou formách – pro člověka a pro počítač – do určité míry řeší RDFa7, které dovoluje zapisovat RDF přímo do XHTML kódu za použití dalších jmenných prostorů. RDFa dokonce umí indexovat i vyhledávače jako jsou Google nebo Yahoo. To z něj dělá docela vhodného kandidáta k implementaci. 1.2. Mikroformáty Mikroformáty (anglicky Microformats) se snaží docílit téměř téhož, jako Sémantický web. Nabízí způsob, jak na webu označit dostupné informace tak, aby byly snadno zpracovatelné a srozumitelné i pro stroje. [8] Ale na rozdíl od Sémantického webu se to snaží dělat co nejjednodušším způsobem a za pomocí už dlouho zaužívaných a známých technik. Lidé propagující mikroformáty často zmiňují tento neoficiální slogan: „Navrženo v první řadě pro lidi, potom pro stroje.“ (V originále: „Designed for humans first and machines second”). [9] Ačkoliv tento krátký slogan zní na poslech přečtení dosti marketingově, opravdu vystihuje přístup mikroformátů k problému sémantiky na webu. Mikroformáty jsou snadné pro implementaci lidmi. Jsou zaměřené na konkrétní scénáře, které mohou přinést užitek běžným lidem. A zároveň nenabízí takový technologický a informační potenciál pro strojové zpracování, jako je tomu u konceptu Sémantického webu. Při rozhodování, zda pro zvýšení sémantiky v nové verzi magazínu použít RDFa (Sémantický web) nebo mikroformáty, jsem se nakonec přiklonil k té jednodušší variantě. Mikroformáty jsou totiž v současné době mnohem více propagovány a je k nim nabízeno mnohem více nástrojů a aplikací, které je využívají. Roli také hrálo rozhodnutí použít HTML místo XHTML, které je pro RDFa podmínkou. 1.2.1. Historie Hlavní postavou v historii mikroformátů je Tantek Çelik, který je považován za hlavního hybatele a zakladatele mikroformátů. Pracoval mimo jiné i pro firmy jako jsou Apple a Microsoft a spolupracoval také s W3C a Technorati. [1] Návrh prvního mikroformátu se objevil v roce 2003. Jednalo se o XFN8, který atributem rel s hodnotou friend označoval, že odkaz vede na stránku týkající se člověka, kterého autor první stránky zná. Jednoduchost toho návrhu inspirovala následně zformovanou komunitu kolem budoucích mikroformátů ke snaze dosažení, tehdy už formulovaných cílů, sémantického webu, pomocí již existujících a zavedených technologií. Jimi se staly HTML atributy class, rel a rev. [7] 7 8 RDFa (Resource Description Framework - in - attributes) - systém popisu zdrojů v atributech XFN (XHTML Friends Network) – mikroformát pro definici vztahů mezi osobami 11 Využití mikroformátů při vývoji internetového magazínu Vzniklá komunita se časem centralizovala kolem stránky microformats.org, kde kromě rozšíření zmíněného XFN vzniklo na základě veřejných debat mnoho dalších mikroformátů. 1.2.2. Koncept mikroformátů Základní koncept syntaxe mikroformátů je velice jednoduchý. Pomocí vkládání hodnot do atributů class, rel a rev přiřazujeme konkrétním HTML elementům metadata, díky kterým informace na stránce dostávají přesný sémantický význam, definovaný právě standardy jednotlivých mikroformátů. Mikroformáty se dají rozdělit na takzvané elementární a složené. [7] Elementární mikroformáty obsahují pouze jeden atribut a jednu hodnotu. Jedním ze zástupců této kategorie je první zmíněný – XFN. <a href="http://hudus.net/" rel="me">Jan Pospíšil</a> Přidáním atributu rel s hodnotou me do odkazu na mou osobní stránku, tak jednoduše podle XFN formátu říkáme, že odkazovaná stránka obsahuje informace o autorovi aktuální stránky. HTML a tím pádem i mikroformáty samozřejmě dovolují elementu i atributu definovat více hodnot, ať už v rámci jednoho mikroformátu, nebo při kombinací více mikroformátů. <a href="/uzivatel/smurfx/" rel="friend co-worker" class="fn url">Martin Pultzner</a> Tímto zápisem v rámci XFN sděluji, že Martin Pultzner je můj kamarád a spolupracovník (atribut rel) a že text elementu <a> je podle mikroformátu hCard jméno označené osoby a hodnota atributu href je stránkou obsahující více informací o této osobě (atribut class). S hCard, která popisuje kontaktní údaje osoby nebo organizace, se už ale dostáváme do kategorie složených mikroformátů. Ty už jsou složitější a vyžadují použití více do sebe vnořených hodnot a vlastností. Předchozí kód by sám o sobě jako hCard nefungoval. hCard totiž vyžaduje, aby informace o kontaktu byly zanořené do kořenového elementu označeného vcard. <p class="vcard"> <a href="http://hudus.net/" rel="me" class="fn url">Jan Pospíšil</a> (<span class="org">mobilenet.cz</span>, <span class="role">administrátor</span>) </p> Takto může vypadat jednoduchá vizitka složená z kořenového elementu označeného vcard a z několika subelementů (fn, url, org a role) podle formátu hCard, zkombinovaná se zápisem z XFN (rel="me"). 12 1. Sémantika na webu 1.2.3. XMDP profily Každý mikroformát má přiřazen XMDP9 profil, který definuje metadata a třídy specifikované v daném mikroformátu. Každý XMDP je reprezentovaný unikátním URI 10. Profily je doporučené na stránce podle použití jednotlivých mikroformátů definovat. Není to však povinné. [7] XMDP se definují vložením jejich URI do atributu profile elementu <head>. Pokud je použito více mikroformátů, jednotlivé URI se oddělují mezerou, což je v souladu s HTML standardy. Validátor od W3C to ale chybně vyhodnocuje jako chybu. Atribut profile ale nelze podle definice HTML 5 a XHTML 2 použít, takže se pro zachování validity doporučuje URI vkládat do odkazů (<a> nebo <link>) s atributem rel="profile". [10] Jednotlivé mikroformáty se rozdělují na formálně dokončené a ty ve vývoji. U mikroformátů ve vývoji je na rozdíl od těch dokončených pravděpodobné, že se jejich specifikace ještě mohou změnit. I přesto je již podpora pro mnoho nedokončených formátů implementována a používána v některých aplikacích. [7] Pro formálně dokončené mikroformáty je možné použít jednu společnou URI, díky čemuž lze zkrátit zápis profilů při použití více mikroformátů na jedné stránce. 1.2.4. Návrhové vzory Z příkladů, které jsem uvedl výše, je patrné, že se způsob zápisu různých částí mikroformátů liší. Proto jsou v oblasti mikroformátů zavedena jednotná pravidla pro řešení různých stylů zápisů – neboli návrhové vzory. Jako zdroj informací o následujících návrhových vzorech mi sloužila kniha E. Lewis – Microformats Made Simple [7]. Class návrhový vzor S tímto návrhovým vzorem jsme se už setkali. Dá se považovat za jádro v označování mikroformátů a je velice jednoduchý. Spočívá pouze v přiřazování definovaných hodnot HTML atributu class. Jak už jsem ukázal výše, je možné do class atributu vložit více hodnot oddělených mezerou. Rel návrhový vzor Rel návrhový vzor je taktéž jednoduchý a pracuje na stejném principu jako class návrhový vzor. Na rozdíl od něj má ale konkrétněji specifikovaný účel. Označuje význam odkazu, z čehož vyplývá, že ho lze logicky použít pouze pro tagy <a> nebo <link>. Abbr návrhový vzor Značka <abbr> v HTML obecně slouží k detailnějšímu popisu zkráceného výrazu – typicky zkratky. Mikroformáty využívají tento model k označování informací, které dávají ve své zkrácené 9 XMDP (XHTML MetaData Profile) – formát pro definici metadat pomocí XHTML URI (Uniform Resource Identifier) – jednotný identifikátor zdroje 10 13 Využití mikroformátů při vývoji internetového magazínu podobě smysl čtenáři a umožňují k němu vložit i informace v rozšířené podobě, které jsou relevantní pro stroj i pro člověka. Další možností využití je tímto způsobem popsat označená data více formálním způsobem, který je vhodný pro použití v mikroformátech. Zde je jeden takový příklad: Jmenuji se <abbr title="Jan Pospíšil">Honza</abbr>. Datetime návrhový vzor Některé mikroformáty mohou vyžadovat i definici data a času. Časové údaje se ale běžně na webu zapisují různými způsoby, které můžou být pro stroj těžko rozluštitelné. Vznikl tedy návrh používat pro označování časových údajů abbr návrhový vzor a do title atributu vkládat časový údaj formátovaný podle normy ISO 8601. <abbr class="dtstart" title="2009-11-01T12:30:00">1. listopadu 2009, 12.30</abbr> Později se ale přišlo na to, že tento zápis značně zhoršuje přístupnost stránek. Mnohé webové čtečky pro nevidomé totiž v případě přítomnosti <abbr> elementu čtou jen obsah jeho title atributu a ne obsah elementu samotného. Tím se datum označené tímto návrhovým vzorem stává pro uživatele těchto čteček nesrozumitelné. Je samozřejmě otázka, zda by nebylo výhodné podporu pro tento způsob označení do čteček zabudovat. Jejich uživatelé by si tak mohli časové údaje nechat předčítat ve formě, jaká jim nejvíce vyhovuje. Jednodušší ale bylo tento návrhový vzor zamítnout a použít pro zápis datetime hodnot jiné techniky. Value class vzor Tento návrhový vzor je jeden z novějších ve světě mikroformátů a umožňuje označit pouze část (nebo i více částí) z obsahu elementu, která má být zpracována stroji a považována za jeho hodnotu. Tato část je označena jednoduše libovolným HTML tagem s atributem class="value", který je vnořený do původního elementu. <p class="tel"> <span class="type">Fax</span>: <span class="value">+420 225 785 123</span> </p> Tento zápis tedy říká, že hodnota elementu označeného tel je pouze +420 225 785 123 a stroj zpracovávající tyto informace k ní nemá přiřazovat výraz Fax:. Navíc lze díky tomuto návrhovému vzoru podle mikroformátu hCard říci, že se jedná o faxové telefonní číslo. Value-title vzor Tento návrhový vzor je označován jako podmnožina value class vzoru, protože z něho vychází. Vznikl na popud problému s přístupností návrhového vzoru datetime. 14 1. Sémantika na webu Místo označení value, používá jako hodnotu atributu class value-title. To pro stroje znamená, že mají za hodnotu nadřazeného elementu považovat hodnotu atributu title z elementu označeného value-title. <p class="dtstart"> <span class="value-title" title="2009-11-01T12:30:00">1. listopadu 2009, 12.30</span> </p> Tímto zápisem se vyřeší problém se způsobem zpracování textu některými čtečkami a zároveň dostanou stroje datum ve srozumitelné podobě. Některé webdesignery by mohlo znepokojovat, že se po najetí myší na datum stále objevuje vysvětlivka, která běžnému návštěvníkovi nic neříká. Proto je možné použít i tento způsob zápisu: <p class="dtstart"> <span class="value-title" title="2009-11-01T12:30:00"> </span>1. listopadu 2009, 12.30 </p> Value-title návrhový vzor může být užitečný i v situacích, kdy při návrhu některých zápisů mikroformátů bylo počítáno hlavně s použitím ve Spojených státech amerických. Týká se to například výše uvedeného příkladu ve value class vzoru. Mikroformát hCard totiž v označení typu telefonního kontaktu počítá s použitím hodnot, které se používají v USA, což je pro tamní webdesignery velice výhodné. Méně už například pro ty v České republice. Pro označení čísla například na mobilní telefon hCard používá výraz cell, který lze na amerických stránkách krásně použít v textu. V jiných zemích je potřeba kvůli srozumitelnosti použít lokalizované popisky, což je díky value-title vzoru možné. <p class="tel"> <span class="type"> <span class="value-title" title="cell">mobil</span> </span>: <span class="value">+420 777 785 123</span> </p> Osobně si myslím, že by bylo mnohem jednodušší používat pro tyto úlohy abbr návrhový vzor s tou změnou, že by se místo tagu <abbr> mohl použít libovolný jiný tag a předešlo se tak konfliktu s přístupností. Takový postup však není komunitou schválený a proto se nedá spoléhat na jeho podporu v aplikacích. Předchozí kód by tak šel velice výrazně zkrátit: <p class="tel"> <span class="type" title="cell">mobil</span>: <span class="value">+420 777 785 123</span> </p> 15 Využití mikroformátů při vývoji internetového magazínu 1.2.5. Jednotlivé mikroformáty To, jak mikroformáty obecně fungují a jak se zapisují, jsem zmínil v předešlé kapitole. Nebudu se zde zabývat konkrétní specifikací každého mikroformátu, jelikož by to bylo nad rozsah této práce a aktuální informace lze jednoduše nalézt na wiki stránce microformats.org [11]. hCard a hCalendar Oba tyto mikroformáty mají společné to, že jejich specifikace byly napsány podle už existujících a používaných standardů. To z nich učinilo asi v aplikacích nejimplementovanější mikroformáty ze všech. Je možné je totiž jednoduše konvertovat do formátů, z nichž původně vychází, a snadno je pak použít ve spoustě jiných aplikací. hCard vychází z formátu vCard, jenž slouží pro ukládání kontaktních informací. Podporují ho běžní emailoví klenti, jako je MS Outlook nebo Thunderbird a také většina mobilních telefonů. hCalendar potom vychází z iCalendar, jenž pro změnu slouží pro výměnu kalendářových dat a je opět podporován širokou škálou aplikací. hAtom a hSlice Mikroformát hAtom je odvozen od XML syndikačního formátu Atom. Jeho účel je tedy opět odvozen od svého „vzoru“. Konkrétně je doporučováno ho používat k sémantickému označení článků, příspěvků na blozích a podobně. Mikroformát hSlice (nazývaný též Web Slices) je od hAtom odvozen. Jako jediný, který v této práci zmiňuji, nevzniknul a není udržován komunitou microformats.org, ale vyvinul ho Microsoft pro svůj internetový prohlížeč Internet Explorer 8. Web Slices slouží k označení kusu HTML kódu, který se celý, podobně jako například RSS11 či Atom, odebírá a je možné sledovat jeho aktuální podobu, aniž by uživatel musel původní stránku navštěvovat. Jeho poslední specifikaci lze nalézt na stránkách Microsoft Developer Network [12]. Další mikroformáty Ostatní mikroformáty už nevznikaly „přepisem“ existujících standardů, ale byly navrženy od začátku, pro svůj konkrétní účel. Z těch nejpoužívanějších pak zmíním XFN pro označení vztahu mezi lidmi, hReview pro označení recenzí, hProduct pro katalogový popis konkrétních produktů, hMedia pro označování videí, obrázků a zvukových souborů nebo například rel-tag pro tagovaní obsahu na stránkách. Všemi v magazínu použitými mikroformáty se budu více zabývat v popisu jejich implementace, bylo by tedy zbytečné je více rozebírat dvakrát. 1.3. HTML 5 Na HTML ve verzi 5 se pod hlavičkou W3C pracuje už od roku 2004. [13] Nová verze má přinést mnoho nových funkcí v práci s multimédii a formuláři, spolupráci s JavaScriptem, a také novinky v oblasti sémantiky. [14] 11 RSS (Rich Site Summary, Really Simple Syndication) – XML formát pro syndikaci obsahu 16 1. Sémantika na webu Ačkoliv návrh HTML 5 ještě nebyl prohlášen za finální a je tedy teoreticky možné, že se v jeho doporučeních něco změní, začali tvůrci hlavních prohlížečů (kromě Internet Exploreru) podporu nových technologií postupně implementovat. 1.3.1. Sémantické prvky HTML 5 Zatímco všechny ostatní vyjmenované oblasti novinek v HTML 5 do značné míry souvisí s funkčností webu a jeho zobrazením, nové sémantické prvky se dají bezpečně zavést, i když jejich podpora není všude implementována. V případě, že prohlížeč, či jiná aplikace (například indexovací robot) nové sémantické elementy nepodporuje, pro web, který je používá, to nepřinese žádnou zásadní nevýhodu. (Ve skutečnosti zde existuje několik problémů. Ty se ale dají odstranit. Tomu se budu věnovat později v této práci.) Na druhou stranu platí, že až začnou indexovací roboti tyto prvky zohledňovat, web používající HTML 5 už na to bude připravený a může z toho začít okamžitě těžit, zatímco konkurence bude složitě implementovat nové technologie do stávajícího systému. Mimoto také zavedení nových značek přispívá k přehlednosti při kódování webu. Strukturování HTML jde na sémantiku trochu jinak, než Sémantický web nebo mikroformáty. Nesnaží se konkrétním datům přiřazovat konkrétní významy ve stylu například „toto je jméno osoby, která je mým spolupracovníkem“. Snaží se totiž logicky popsat strukturu stránky, tak aby bylo jasné, kde je hlavička, patička, navigace nebo obsah stránky. S použitými mikroformáty se tak může skvěle doplňovat. Popis jednotlivých značek Nové značky, které sémanticky popisují strukturu stránky, jsou <header>, <nav>, <article>, <section>, <aside> a <footer>. Z názvu jednotlivých značek je celkem jasné, k čemu slouží. Element <header> označuje hlavičku stránky nebo článku. Typicky tak obsahuje například nadpis a nějaké doplňující informace. Obrázek 1 - Znázornění layoutu stránky pomocí nových HTML 5 značek [13] Tag <nav> jednoduše označuje oblast navigace stránky, pro kterou je typicky použit seznam. <article> vymezuje část dokumentu, která je nezávislá a její použití se tak nejvíce hodí na označení hlavních částí obsahu stránky. Například článku, blogového příspěvku nebo příspěvku v diskuzi. <section> má za úkol reprezentovat přirozené části obsahu dokumentu, jako jsou například kapitoly. Značka <aside> je určena pro doplňující informace týkající se obsahu stránky a už z jeho názvu vyplývá, že své využití najde nejčastěji v postranním sloupci. A poslední <footer> označuje typicky patičku stránky. [13] 17 Využití mikroformátů při vývoji internetového magazínu 2. Internetový magazín mobilenet.cz Mobilenet.cz je internetový magazín zaměřující se především na tématiku mobilních telefonů, sítí a dalších technologií s tím souvisejících. Magazín jsem sám vyvinul a společně s Martinem Pultznerem v roli šéfredaktora jsme ho v říjnu roku 2005 spustili. Od té doby neprošel žádnou významnější technologickou změnou, ale už přibližně v roce 2007 začala vznikat potřeba přijít s novou, technologicky lépe provedenou verzí, která se bude snažit držet krok s trendy rychle se vyvíjejícího prostředí internetu. Právě vývoj nové verze magazínu mobilenet.cz a jeho redakčního systému se stal podnětem pro tuto bakalářskou práci. 2.1. Historie a popis stávající verze Magazínu mobilenet.cz původně předcházel ještě amatérský web Techbox.wz.cz. Přibližně v březnu 2005 jsem začal pracovat na redakčním systému a na magazínu pod novým jménem mobilenet.cz. K vývoji jsem použil strukturovaně psané PHP12 4 a databázi v MySQL 4. Dá se říci, že jsem se hlouběji naučil programovat v PHP teprve na tomto projektu a tomu bohužel odpovídá i kvalita a zabezpečení řešení. Obrázek 2 – Administrace stávající verze Obrázek 3 - Úvodní stránka stávající verze Z administračního systému se dá poměrně jednoduše ovlivňovat podoba výpisu článku v magazínu. Už se ale nedá manipulovat se sekcemi a rubrikami přímo v magazínu, nedá se moderovat diskuze pod články a pro moderování diskusního fóra, pro které je použito phpBB13, se musí přihlašovat do jiného systému. Zkrátka systém postrádá mnoho funkcí a jeho jádro je dost zastaralé, nejednotné a tudíž je celá aplikace velice těžko rozšířitelná. Dalším velice omezujícím prvkem magazínu je jeho design. Nejde tak ani o to, že působí po designové stránce trochu zastarale (i když pro návštěvníka to může být jeden z rozhodujících faktorů), ale o způsob navržení layoutu, který neodpovídá požadavkům na moderní a flexibilní internetový magazín. Omezujícím faktorem je zde především šířka, která počítá ještě s rozlišením monitorů 800 × 600 bodů, které v době vzniku webu zaujímaly nezanedbatelnou část v návštěvnických statistikách. Při použitém vertikálním menu na levé části stránky tak nezůstává žádný další informační prostor vedle hlavního obsahu, což je důležité jednak z pohledu 12 PHP (Hypertext Preprocessor) – Hypertextový preprocesor „phpBB je oblíbený, bezplatný a open source systém pro vytvoření interaktivního fóra používající serverový skript PHP a podporující širokou škálu databázových systémů.“ [26] 13 18 2. Internetový magazín mobilenet.cz umisťování inzerce, ale i z pohledu udržení návštěvníka po co nejdelší dobu na stránkách, nabídnutím mu dalších relevantních a zajímavých informací. 2.2. Design nové verze magazínu Právě nedostatek informačního prostoru v layoutu magazínu byl hlavním podnětem pro práci na nové verzi magazínu mobilenet.cz. Podle statistik Google Analytics, jenž je použit pro měření návštěvnosti, dosahuje podíl návštěvníků v říjnu 2009, používajících rozlišení 800×600 bodů, necelé jedno procento. Přičemž při pohledu na předešlé roky je trend pro používání tohoto rozlišení jasně klesající (viz tabulka 1). Rozlišení obrazovky 1024×768 1280×1024 1280×800 1680×1050 1440×900 1152×864 1366×768 1920×1200 1280×960 1920×1080 1024×600 1280×768 800×600 Rok 2009 1. 21,65% 2. 20,03% 3. 19,46% 4. 9,90% 5. 7,29% 6. 3,15% 7. 2,50% 8. 1,64% 9. 1,63% 10. 1,34% 11. 1,34% 12. 1,12% 13. 0,93% Návštěvy v říjnu Rok 2008 1. 32,72% 2. 23,97% 3. 16,34% 4. 6,56% 5. 5,84% 6. 4,50% 15. 0,20% 9. 1,03% 7. 2,06% 24. 0,05% 16. 0,16% 12. 0,84% 8. 1,67% Rok 2007 1. 40,51% 2. 26,85% 3. 10,89% 5. 3,17% 6. 2,76% 4. 5,07% 14. 0,18% 13. 0,47% 8. 1,76% 63. 0,00% 35. 0,01% 12. 0,58% 7. 2,74% Tabulka 1 - Přehled používaných rozlišení obrazovky návštěvníků monilenet.cz podle Google Analytics [15] Nový layout tak sice pro plnohodnotné zobrazení počítá s šířkou obrazovky alespoň 1024 pixelů, ale ani pro minoritní návštěvníky nebude problém stránky navštěvovat, protože hlavní obsah, tedy hlavní výpis, případně text článku, se vždy do 800 pixelů vejde. Obrázek 4 - Úvodní strana nového designu Obrázek 5 - Zobrazení článku v novém designu Širší hlavní sloupec by ani pro magazín nebyl vhodný, protože text se na dlouhých řádcích stává více nepřehledný a hůře se čte. [16] V bližších několika letech navíc ani nepředpokládám, že by bylo možné stránku ještě rozšiřovat, jednak z důvodu toho, že monitory s XGA 19 Využití mikroformátů při vývoji internetového magazínu (1024×768) rozlišením tak rychle ze stolů návštěvníků nezmizí a také díky stále narůstající popularitě mobilních zařízení (ať už netbooků nebo telefonů) s menšími displeji. Pro mobilní zařízení navíc je a i v nové verzi bude k dispozici čistě textová verze magazínu. 2.2.1. Navigace Zásadní změnu kromě omlazení vzhledu prodělala také navigace. Ta se nyní kompletně přesunula do horizontálního menu na začátku stránky. To je oproti rozdělené navigaci stávající verze, kdy je jedna část nahoře v horizontálním menu a druhá část v levém sloupci ve vertikálním menu, určitě krokem ke zpřehlednění. Celý web má jasně danou stromovou strukturu, která je dostupná a znázorněná v jedné nabídce, jenž obsahuje dva řádky. To s sebou přináší i omezený prostor pro počet stránek v nabídce oproti vertikálnímu menu. Tento fakt jsem ale pojal jako podnět ke zjednodušení webu a počet rubrik se jednoduše zmenšil. I ze statistik Google Analytics dlouhodobě vyplývá, že lidé navštěvují hlavně vybrané stránky první a druhé úrovně a ze stránek té třetí se jich naprostá většina koncentruje v pár oblíbených rubrikách. Pořadí 1. 2. 3. 4. 6. 7. 9. 12. 20. URL stránky /clanky/ /clanky/mobily/nokia/ /clanky/mobily/sony-ericsson/ /clanky/mobily/samsung/ /clanky/recenze/ /clanky/mobily/lg/ /clanky/aktuality/ /clanky/mobily/htc/ /clanky/mobily/apple/ Popis stránky Úvodní – výpis všech článků Mobilní telefony Nokia Mobilní telefony Sony Ericsson Mobilní telefony Samsung Recenze Mobilní telefony LG Aktuality Mobilní telefony HTC Mobilní telefony Apple Zobrazení 7,13% 2,80% 1,79% 1,24% 1,03% 0,96% 0,69% 0,60% 0,42% Tabulka 2 - Přehled návštěvnosti jednotlivých stránek v období 1. 1. 2009 - 6. 11. 2009 [15] V tabulce 2 je zobrazena statistika návštěvnosti jednotlivých stránek na mobilenet.cz v období 1. 1. 2009 - 6. 11. 2009, přičemž adresy jsou převedeny do podoby odpovídající struktuře nového magazínu. Vynechané pozice odpovídají jednotlivým článkům, které svou návštěvností zasáhly i do téměř celoroční statistiky. Minoritnější rubriky a především různé aktuální trendy bude mnohem flexibilněji pokrývat systém tagů, který bude fungovat na stejném principu, jako je obvyklé na ostatních webech. 2.3. Technické řešení nové verze magazínu Jak už jsem zmiňoval, hlavním podnětem pro práci na nové verzi byla potřeba předělat layout. Jelikož ale ani funkční background magazínu moc neodpovídal nárokům a byl dost nevhodně navržen, bylo potřeba nový systém napsat úplně od začátku. Od roku 2007, kdy jsem na nové verzi začal pracovat, se samozřejmě jádro systému několikrát změnilo s tím, jak jsem získával nové zkušenosti s objektovým programováním v PHP a s návrhem relačních databází. 20 2. Internetový magazín mobilenet.cz 2.3.1. Serverové zázemí Co se týče zázemí projektu, novou verzi magazínu v současné době provozuji a testuji na zakoupeném virtuálním serveru od Angel-hosting.cz. Ten nabízí finančně zajímavé programy, které v sobě spojují výhody virtuálního serveru a klasického hostingu. Virtuální server nabízí v základu jako operační systém Debian GNU/Linux 5.0 s webovým serverem Apache 2.2, databází MySQL 5.0 a samozřejmě PHP 5.2. 2.3.2. PHP Celá aplikace, co se týče programování, stojí hlavně na PHP ve verzi 5. Volba tohoto jazyka byla ovlivněna hlavně tím, že jsem s ním měl největší zkušenosti a také obrovskou dostupností a tedy i finančně výhodnou pozicí při výběru hostingu. Celá aplikace je rozdělena na dvě hlavní logické části. Část magazínu a část administrační. Jakýkoliv požadavek na server začíná vždy na souboru index.php v kořenové složce pro každou logickou část zvlášť. To je zajištěno modulem Mod_rewrite serveru Apache, který překládá požadavky z pěkných adres typu /clanky/recenze/ do podoby /index.php?gui=normal &lvl1=clanky&lvl2=recenze. Návštěvníkovi, tedy i například indexovacímu robotovi, však zůstává zobrazena ona „pěkná“ adresa. Výchozí soubor index.php je tak využíván ke zpracování naprosté většiny požadavků od zobrazení jakékoliv běžné stránky až po načtení obrázku nebo RSS kanálu. Při načtení index.php se nastaví vlastní handler chyb a varování, který má na starosti nezávislá třída Report a poté se spustí instance hlavní třídy aplikace, nazvané klasicky Main. Konstruktor třídy Main naváže spojení s MySQL databází a zkontroluje, zda je přihlášen nějaký uživatel. Poté, pokud je přítomna GET proměnná script, spustí se instance třídy Script, jinak se načítá některá z tříd typu GUI. Třída Script Třída Script zpracovává typicky data odeslaná z formuláře, nebo jiné požadavky, u kterých se primárně očekává provedení nějaké operace, která sama o sobě není spojená s výstupem zpět do prohlížeče. Po provedení takového úkonu se samozřejmě typicky aplikace přesměrovává zpět na soubor index.php, která podá uživateli zprávu o výsledku operace skrze třídu GUI. Tím se zajistí jednak jakési oddělení ryze funkčních částí kódů od těch, které se starají a jsou spouštěny za účelem grafického výstupu uživateli a také se předejde například vícenásobnému odesílání dat z formuláře při znovunačtení stránky uživatelem. Přes Script se typicky zpracovávají i požadavky typu zobrazení obrázku a podobných souborů, kde opět není potřeba práce s HTML výstupem a požaduje se co nejrychlejší zpracování dat. Samotná třída Script obsahuje seznam platných skriptů, které smějí spouštět nepřihlášení a přihlášení uživatelé a po následné validaci spouští samotné skripty, které jsou uloženy v samostatných třídách. Všechny tyto třídy implementují rozhraní, podle kterého se v konstruktoru provádí požadovaná operace a následně se volá metoda getBack() sloužící vždy pro zpracování informací o výsledku operace pro uživatele, které se předávají především 21 Využití mikroformátů při vývoji internetového magazínu v session třídy Report. Po uložení všech informací do session se provádí přesměrování provedením nového požadavku na index.php s výstupem pomocí GUI. Znázornění základní struktury tříd PHP kódu Obrázek 6 - Stručný Class diagram základních PHP tříd (neobsahuje všechny metody a parametry) Třída typu GUI Třída GUI, jak její název napovídá, má na starosti vše, co se týká grafického výstupu v HTML. Tříd GUI může být více. Vždy záleží, jaký typ výstupu je očekáván. Většinou se načítá ta ze souboru GUI.php, která slouží pro běžné zobrazení stránek magazínu. Dále se například používá třída GUI ze souboru GUI_text.php pro zobrazení stránek v textové verzi nebo ze souboru GUI_hslice.php pro zobrazení obsahu Web Slices (těm se budu věnovat později v této práci). Konstruktor třídy GUI vždy nejprve pomocí tříd Menu a Page ověří, že požadovaná stránka existuje a případně, zda je pro konkrétního uživatele přístupná. Celá struktura stránek je uložena v databázi tak, jak je popsána výše v kapitole Navigace. Na základě ověření požadavku v databázi a načtení dodatečných informací o stránce se vždy načte příslušná třída pro stránku první úrovně (např.: články, fórum, katalog). Ta by měla obsahovat metody nutné pro fungování podstaty této sekce. Třída pro sekci články má například veřejnou metodu getArticleList(), sloužící pro veškerý výpis článků. Pokud je to v databázi definováno, konstruktor GUI dále načítá i soubory s objekty pro stránky nižších kategorií. Důležitým pravidlem, kterým se všechny objekty spojené s GUI musí řídit, je dodržování toho, že veškeré operace, které mají samozřejmě za výstup nějaký HTML kód (nacházíme se v GUI sekci), 22 2. Internetový magazín mobilenet.cz tento kód neposílají rovnou na výstup klientovi, ale vše se ukládá do paměti. Až na konci procesu se pak spustí metoda init() v instanci GUI, která celý obsah stránky pošle klientovi. To má velkou výhodu v tom, že se dá obsah celé stránky měnit kdykoliv v průběhu výkonu skriptu. Pokud by aplikace fungovala tak, že by postupně podle toho, jak jde kód v hierarchii HTML stránky, zpracovávala jednotlivé dílčí operace a jejich výstupy rovnou posílala klientovi, chod aplikace by byl značně neflexibilní. Například pokud bychom hned na začátku poslali do výstupu HTML hlavičky, které obsahují i titulku stránky, ale kdykoliv později by nastala situace, kdy by bylo potřeba na základě jakékoliv události titulku změnit, už by to nebylo možné. Navíc při běžném nastavení Apache serveru nelze odesílat HTTP14 hlavičky poté, co jsme už poslali nějaký výstup klientovi. Tvorba prostředí pomocí objektů Box Další výraznou novinkou oproti předchozí verzi je možnost podobu magazínu plně ovlivňovat z administrace. Tím nemyslím přímo design, ale složení a obsah jednotlivých stránek. Každá stránka v magazínu se totiž skládá z objektů, které jsem nazval jednoduše Box. Ty ve výsledku odpovídají logickým blokům zapsaných v HTML stránky. Například oblast vypisující aktuality na úvodní stránce je reprezentována jedním Boxem. Stálé jsou tedy pouze hlavička a patička stránky. Zbytek stránky je vždy definován uspořádaným seznamem Boxů. Každý objekt Box má svůj základ v PHP kódu, kde je popsána jeho funkčnost. Princip Boxů je ale hlavně v tom, že je jejich reprezentace v PHP pouze jakousi šablonou dané operace. Všechny údaje o poloze, velikosti, umístění, chování a další důležité proměnné jsou uložené v databázi. Po naprogramování základních Boxů a zavedení popisu jejich funkčnosti do databáze je už potom „skládání“ stránek skrze administraci celkem jednoduché. Stačí pouze přiřadit jednotlivé Boxy k jednotlivým stránkám a nadefinovat jim jejich parametry. Boxy samotné jsou ovlivňovány jednak zadanými parametry v databázi, které z nich vytváří rozdílné instance a také proměnnými v celém systému. Vezmeme jednoduchý příklad Boxu regularArticles, jenž slouží pro umístění standardního výpisu článků. V administraci ho přiřadíme do layoutu úvodní stránky, kde mu nastavíme mimo jiné nadpis, velikost a kolik článků má na jednu stránku vypisovat. (Editaci této instance regularArticles je vidět na obrázku 7.) Potom vytvoříme další instanci tohoto Boxu a přiřadíme ho do layoutu pro výpis článků v konkrétní rubrice. Opět nastavíme stejné parametry, jako předtím, jen v jiných hodnotách. Nikde se však nenastavuje, jaké kategorie chceme do výpisu článků zahrnout. To si právě Box zajišťuje sám zjištěním, kde se v hierarchii magazínu právě nachází. Z obrázku číslo 7 je vidět, že obsluha Boxu z administrace zatím není práce vhodná pro kohokoliv a vyžaduje určité znalosti o fungování tohoto systému. Pro vyškoleného administrátora to je ale poměrně snadný nástroj, jak z naprogramovaných Boxů sestavit celý web a případně během minuty změnit za běhu layout celé úvodní strany. 14 HTTP (Hypertext Transfer Protocol) – Protokol pro přenos hypertextu 23 Využití mikroformátů při vývoji internetového magazínu V budoucnu by bylo možné k tomuto systému vyvinout natolik intuitivní uživatelské prostředí, aby případné změny v layoutu magazínu mohl provádět například i oprávněný redaktor. Obrázek 7 - Znázornění postupu editace Boxu v administraci Layouty Systém layoutů jsem už několikrát zmínil v předchozích odstavcích. Layouty slouží v administračním systému jako určité kolekce Boxů, které se mohou aplikovat na různé stránky. Bylo by totiž zbytečně složité sestavovat pro každou stránku novou množinu instancí jednotlivých Boxů. V administraci je tak například vytvořen jednotný layout pro zobrazení podrubrik ve výpisu článků. Stránka s výpisem článků o Nokiích a Sony Ericssonech může být koncepčně stejná, jen bude vypisovat články z jiné podrubriky. Proč tedy definovat více stejných layoutů, když můžeme na všechny aplikovat jeden vzorový? Administrace Administrace je vystavěna na podobném principu fungování, jako magazín samotný. Jen se spouští přes jiný soubor a jádro aplikace načítá jiné třídy ekvivalentní Main a GUI (viz. obrázek 6 výše). Rozdílné třídy hAdminMain a hAdminGUI ale stejně většinu funkčnosti dědí od svých předků Main a GUI a pouze mění některé parametry specifické pro požadavky administrace. Řízení přístupu v administraci Pro přihlášení do administrace je samozřejmě zapotřebí se nejdříve autentifikovat. Kontrolu zaslaných autentifikačních údajů kontroluje jednotná třída pro celý systém. V administraci je ale zapotřebí kromě rozlišování toho, zda je návštěvník přihlášený nebo nepřihlášený pod platným uživatelským účtem, i jeho případné oprávnění k různým úkonům. To je v administraci řešeno způsobem přidělování rolí jednotlivým uživatelům. Každý uživatel oprávněný k přístupu do administrace tak má přidělenu jednu nebo více rolí. Základní rolí, která odděluje uživatele oprávněného k přístupu do administrace od běžného zaregistrovaného čtenáře, je role uzivatel. Každá stránka v administraci, která je definována stejným způsobem jako stránka v magazínu, má potom přidělený seznam nutných rolí, které musí uživatel vlastnit, aby na ni mohl přistupovat. 24 2. Internetový magazín mobilenet.cz Například stránka s editorem vlastních článků požaduje minimálně role uzivatel a redaktor a stránka pro zadávání nových Boxů do systému požaduje uzivatel a sysAdmin. Jednotlivé skripty pro ukládání informací potom mají úplně stejný systém ověřování rolí, jako stránky administrace. Tím se dá předejít případnému zneužití, kdy by uživatel mohl zjistit, například jaký skript slouží pro změnu cizích uživatelských údajů a v jakém tvaru tento skript předpokládá data, aniž by disponoval požadovaným oprávněním admin pro přístup na stránku s editačním formulářem cizích údajů. Framework pro zobrazování a editaci údajů v databázi Jelikož se naprostá většina úkonů v administraci skládá hlavně z editace údajů uložených v databázi, vyvinul jsem vlastní framework 15 pro zobrazování a editaci údajů z jednotlivých tabulek databáze. Díky tomuto návrhu je nyní mnohem snadnější a rychlejší doplňovat další funkčnost administrace. Výpis tabulek Předtím, než chceme data editovat, potřebujeme si je nejprve přehledně zobrazit. K tomu slouží třída Table, která vypisuje v přehledné HTML tabulce data z požadovaných databázových tabulek. Nejprve je potřeba si připravit seznam instancí tříd TableColumn, které reprezentují jednotlivé sloupečky. U nich si můžeme nastavit různé formátování podle datového typu nebo i toto pole seskládat z více položek z databáze a libovolně si ho naformátovat. Pokud tak chceme mít v tabulce přehledu uživatelů vypsané například jejich ICQ kontakty a to, zda jsou členy redakce, stačí napsat tento kód: $columns = array( new TableColumn("ICQ", "ICQ", "special", '<img src="http://web.icq. com/whitepages/online?icq={str{ICQ}}&img=5" /> {str{ICQ}}'), new TableColumn("staff", "zaměstnanec", "bin") ); Vedle každého ICQ kontaktu se pak zobrazí i stavová ikonka a ve sloupci zaměstnanec se nebude vypisovat binární 1 nebo 0, ale barevně vyznačené ano nebo ne. Třída Table také nabízí možnost nechat data třídit podle libovolného sloupce, přidat jednoduchý stránkovací formulář nebo filtr. Pokud do výše definovaného pole přidáme instance dalších řádků a doplníme následující kód, získáme plnohodnotný a lehce ovladatelný tabulkový výpis uživatelů, jako je vidět na obrázku 8. $filters = array("staff:typ uživatele" => array(1 => "zaměstnanec", 0 => "čtenář")); $tableFilter = new TableFilter("staff", 1); $tableFilter->setFilters($filters); 15 „Cílem frameworku je převzetí typických problémů dané oblasti, čímž se usnadní vývoj tak, aby se návrháři a vývojáři mohli soustředit pouze na své zadání.“ [27] 25 Využití mikroformátů při vývoji internetového magazínu $table = new Table($columns, $this->mysql, "user", "name", 30, true, null, "ASC", $tableFilter); return '<h2>přehled uživatelů</h2>'.$table->returnTable(); Tímto jednoduchým a celkem krátkým zápisem získáme tabulku, kterou si můžeme filtrovat podle toho, zda je uživatel zaměstnanec nebo čtenář, dynamicky řadit podle jakéhokoliv parametru a určovat si délku jejího výpisu. Obrázek 8 - Administrace - přehled dat v tabulce Obrázek 9 - Administrace - editace dat ve formuláři Editační formuláře Pro editaci dat z databáze slouží druhý návrhový vzor, který je kvůli různorodým požadavkům na funkčnost a podobu editačních formulářů mnohem komplexnější a rozsáhlejší, a proto se nespoléhá pouze na zápis několika parametrů do PHP kódu, jako framework pro tabulky, ale načítá většinu dat z databáze. Právě díky využití databáze se používaní a definice formulářů stává, navzdory své komplexnosti, mnohem jednodušší a flexibilnější. V PHP opět existuje hlavní třída Form a několik dalších podpůrných, které zajišťují funkčnost formulářů. Podrobná definice parametrů formulářů a jednotlivých jejich polí je uložena v databázi, takže se skrze administraci dají všechny formuláře jednoduše ovládat. Na obrázku 9 je zachycena úprava jednoho pole samotného formuláře pro úpravu formulářů. To myslím jasně demonstruje univerzálnost tohoto frameworku – pomocí jeho nástrojů jde přímo ovlivňovat i jeho podoba. Co se týče schopností editačních formulářů, lze samozřejmě editovat libovolné MySQL tabulky. Mnohdy je ale potřeba v jednom formuláři editovat data zároveň z více tabulek, které jsou spojeny různými relacemi. Tento problém se řeší tak, že se vytvoří obě tabulky zvlášť a jedna se potom definuje jako vložená do jednoho z polí té druhé tabulky. Takto lze postihnout všechny běžné vztahy v relačních databázích (1:N, N:1 a N:M). Příklad vztahu 1:N je vidět na obrázku 9, kde je do pole položky výběru vložena další tabulka s možnými 0 až N záznamy. 26 2. Internetový magazín mobilenet.cz Co se týče možností jednotlivých polí formuláře, je možné k nim definovat mnoho parametrů, jak mají vypadat, jak se mají chovat a jaká data mají akceptovat. Zde uvedu popis několika klíčových definovatelných vlastností: Nápověda – podrobnější sdělení uživateli, zobrazí se automaticky Typ pole – definuje základní podobu a funkčnost formulářového políčka o Textové pole – klasické zadávaní textu Délka pole Maximální délka textu Datový typ vloženého řetězce (text, číslo, e-mail, …) – kvůli validaci o Výběr – zobrazí <select> výběr hodnot Zdroj výběru – jaká data se výběru zobrazí Výběr ano / ne Z níže definovaného statického seznamu hodnot Dynamicky generován pomocí AJAX16 o Datum – zobrazí sérii <select> výběrů pro definici data o Vnořený formulář – vloží další tabulku Povinné pole – zda je vyžadováno vyplnění toho pole Jednotlivým polím jde také nastavit, jaké činnosti mají provést po změně své hodnoty. Díky tomu tak je možné dynamicky pomocí AJAXu měnit obsah na sobě závislých polí. Například, pokud při editaci údajů stránky změním, že nepatří v navigační hierarchii do třetí, ale do druhé úrovně, automaticky se také načte nový obsah možných hierarchických předků této stránky. Framework samozřejmě také zajišťuje validaci odeslaných dat. Jako první se kontroluje, zda je formulářové pole povinné. U textových polí se potom podle definovaného datového typu kontroluje odpovídající forma zadaných dat a u výběrových polí se odeslaná data kontrolují oproti seznamu možných hodnot v tomto výběru. Zápis pro zobrazení editačního formuláře v PHP je už velmi stručný. Předá se pouze ID tabulky, definující podobu formuláře, a primární klíč záznamu, který chceme v databázi editovat, případně, zda chceme vkládat záznam nový. Následující kód zajistí zobrazení editačního formuláře, jako je vidět na obrázku 9. $form = new Form(7, $this->mysql, $formRowID); return '<h2>upravit řádek formuláře "'.$row->title.'"</h2>'.$form->getForm(); 2.3.3. MySQL databáze MySQL databázi ve verzi 5.0 jsem podobně jako PHP zvolil kvůli její snadné dostupnosti, rozšířenosti a kvůli tomu, že s ní také mám největší zkušenosti. Fyzický model databáze je k nahlédnutí až na konci práce v příloze A. 2.3.4. JavaScript JavaScript byl při vývoji magazínu použit pouze na několik oddělených a méně významných úkolů. Chtěl jsem se ho vyvarovat především v klíčových oblastech webu, jako je navigace, zobrazování obsahu a podobně. 16 AJAX (Asynchronous JavaScript and XML) – asynchronní JavaScript a XML 27 Využití mikroformátů při vývoji internetového magazínu Za zmínku stojí dvě externí JavaScriptové knihovny, které jsou dostupné pod open source licencemi. Knihovna Hyphenator slouží, jak název napovídá, pro automatické rozdělování slov na koncích řádků. Vše navíc probíhá v souladu s pravidly českého pravopisu. Knihovna IE PNG Fix 2.0 slouží pro zavedení podpory průhledných PNG obrázků do starších prohlížečů Internet Explorer společnosti Microsoft. 2.3.5. Optimalizace adres Optimalizace stránek pro vyhledávače neboli SEO 17 je pro projekt, jako je internetový magazín, klíčová. Podle statistik totiž 75,95% návštěvníků přichází na stránky mobilenet.cz právě z vyhledávačů. [15] Oproti stávající verzi mobilenetu, verze nová přináší zlepšení především v podobě optimalizace URL18 adres a lepší využívání sémantických značek v layoutu stránky. Základní vlastnosti, které se snažím dodržet při generování URL jednotlivých stránek, jsou výstižnost (použití klíčových slov), stručnost a přehlednost. To je velice snadné díky použití Mod_rewrite rozšíření webového servu Apache, který jsem už zmiňoval. Adresa recenze telefonu LG GD900 Crystal s podtitulem průhledný krasavec tak například v nové verzi vypadá takto: /clanek/4916-lg-gd900-crystal-pruhledny-krasavec/. Adresa ve stávající verzi potom vypadá takto: /recenze/clanek.php?id=r254&lg-gd900-crystal-pruhlednykrasavec. 17 18 SEO (Search Engine Optimization) – optimalizace pro vyhledávače URL (Uniform Resource Locator) - jednotný lokátor zdrojů 28 3. Implementace sémantických prvků do magazínu 3. Implementace sémantických prvků do magazínu Základ technického řešení magazínu mobilenet.cz jsem nastínil v předchozí kapitole. Nyní se budu věnovat praktické implementaci HTML 5 a mikroformátů do tohoto systému a tomu, jaké problémy a výhody implementace jednotlivých technologií přináší. 3.1. HTML 5 3.1.1. HTML nebo XHTML? Ačkoliv je současná verze mobilenetu napsaná v XHTML, rozhodl jsem se v nové verzi přejít na klasickou HTML notaci. HTML 5 samozřejmě umožňuje využít i XHTML způsobu zápisu. Podle doporučení W3C by ale měl být XHTML dokument zpracováván jako XML soubor a odesílán s MIME hlavičkou application/xhtml+xml. [17] To bohužel v praxi není moc vhodné řešení ze dvou důvodů. Některé prohlížeče (například Internet Explorer) neumějí s tímto typem souboru pracovat, a pokud dostanou stránku s uvedeným MIME typem, nabídnou obsah ke stažení místo toho, aby ho zobrazily. Navíc, jelikož se jedná o XML soubor, je vyžadováno, aby byl takzvaně Well-formed, neboli zjednodušeně validní. To je v praxi internetového magazínu velmi těžko dodržitelné, jelikož jeho obsah tvoří mnoho autorů a tak je nemožné zajistit validitu veškerého obsahu, který je na stránkách publikován. Prohlížeče před zobrazením XML dokumentu celý jeho obsah kontrolují a v případě chyby zobrazí chybovou hlášku místo obsahu stránky, což je samozřejmě pro jakoukoliv veřejně prezentovanou stránku nepřípustné. Výhodou použití XHTML by jistě byla možnost dokument kombinovat s jinými XML formáty, jako jsou například SVG19 nebo MathML20. Ale vzhledem k tomu, že tyto formáty stejně nejsou standardně podporovány ve všech prohlížečích, postrádá tato teoretická výhoda XHTML zápisu význam. 3.1.2. Struktura dokumentu Strukturu modelového zápisu HTML zobrazujícího článek v magazínu mobilenet.cz jsem pomocí HTML 5 navrhnul takto: <!DOCTYPE html> <html lang="cs"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ... </head> <body> <header> (obsah hlavičky, grafika) <nav> 19 20 SVG (Scalable Vector Graphics) – škálovatelná vektorová grafika MathML (Mathematical Markup Language) – matematický značkovací jazyk 29 Využití mikroformátů při vývoji internetového magazínu <ul> <li><a href="/clanky/">články</a></li> ... </ul> </nav> </header> <article> <h1>Název článku</h1> (obsah článku) </article> <aside> <h3>obsah článku</h3> <nav> <ol> <li><a href="#nadpis-v-clanku">Nadpis v článku</a></li> ... </ol> </nav> </aside> <aside> <h3>související články</h3> (výpis článků) </aside> <footer> (obsah patičky) <nav>...</nav> </footer> </body> </html> 3.1.3. Problém s reálnou implementací Z HTML 5 jsem se rozhodl využít zatím hlavně jeho nové sémantické značky označující strukturu dokumentu. Především z toho důvodu, že jsem předpokládal, že bude jejich implementace bezproblémová. Tento předpoklad se ale velmi záhy ukázal být mylným. Některé prohlížeče (např. Internet Explorer nebo Firefox 2) totiž s novými HTML elementy vůbec nepočítají a není možné je tak pomocí CSS selektorů přímo stylovat, což je velmi zásadní problém z hlediska designu. Pro prohlížeč Internet Explorer se záhy přišlo na způsob, jak tento problém obejít. Stačí pomocí JavaScriptu nové HTML 5 elementy jednou vytvořit a CSS selektory fungují bez problémů. [18] <script type="text/javascript"> document.createElement('header'); document.createElement('nav'); ... </script> Tento postup bohužel nezabírá na starou verzi Firefoxu. Pro něj existuje ovšem jiné řešení – mít stránku zapsanou v XHTML a odesílat ji s MIME typem application /xhtml+xml. To ale z důvodů, které jsem zmínil dříve, není přípustné řešení. 30 3. Implementace sémantických prvků do magazínu Firefox ve verzi 2 má sice na mobilenet.cz zastoupení jen 0,75%, ale různé mobilní prohlížeče, kterých je nepřeberné množství, zaujímají přibližně další 1% z návštěvnosti magazínu mobilenet.cz. [15] Muselo se tak přistoupit k ne zrovna čistému řešení. Každý nový prvek z HTML 5 byl obalen do dalšího <div> elementu, který už jde stylovat bez problémů. Výsledkem je větší a nepřehledný kód. Bohužel zatím asi jediné řešení pro použití HTML 5 a zachování kompatibility s naprostou většinou používaných prohlížečů. <div class="header"> <header> (obsah hlavičky, grafika) <div class="nav"> <nav> <ul> <li><a href="/clanky/">články</a></li> ... </ul> </nav> </div> </header> </div> Dá se ale předpokládat, že stará verze Firefoxu v blízkém časovém horizontu ze statistik úplně vymizí a v mobilních telefonech také časem převládnou modernější prohlížeče, takže bude v budoucnu možné kód od těchto duplicitních značek očistit. Opera Mini 4 (podle statistik nejpoužívanější mobilní prohlížeč [15]) elementy z HTML 5 podporuje, takže doba, kdy se bude dát spolehnout pouze na nové sémantické značky, není podle mého odhadu moc vzdálená. 3.1.4. Výhody použití sémantických prvků Výhody jsou myslím zcela zřejmé. Kvalitní popis struktury webové stránky pomůže strojům se v ní lépe orientovat a vybírat tak relevantní obsah. Dnes totiž musí indexovací stroje prohledávat celý kód stránky a odhadovat, zda se jedná o navigaci, hlavičku nebo hlavní obsah stránky. Až vyhledávací nástroje tyto značky začnou podporovat, je velice pravděpodobné, že při kvalitním označení struktury může stránka získat cenné body v SEO, tak jako získává dnes při správném použití existujících sémantických HTML 4 elementů (např.: <h1>, <strong>, <title>). 3.2. Implementace mikroformátů do systému Jelikož jsou mikroformáty už od své podstaty velice jednoduché, nevyžaduje jejich implementace do systému žádné rozsáhlé úpravy. Jediné, co je potřeba na úrovni celého sytému implementovat, je vypisování jednotlivých profilů podle použitých mikroformátů. K tomu slouží tři metody a jedna proměnná v třídě typu GUI. V soukromé proměnné mFProfiles jsou do pole ukládány URI jednotlivých profilů. Dvě veřejné metody potom slouží k zadávání těchto URI. Jedna z nich slouží pro zadávání celých URI a druhá 31 Využití mikroformátů při vývoji internetového magazínu obsahuje seznam URI těch nejpoužívanějších mikroformátů, takže stačí metodě předávat pouze název mikroformátu. Obě metody před vložením URI kontrolují případné duplicity. Soukromá metoda getmFProfiles() pak logicky vrátí všechny URI zapsaná v HTML elementu <link>. Zápis do atributu profile elemetu head není v HTML 5 možný. Jako zdroj informací o specifikacích v této kapitole zmíněných mikroformátů (pokud není uvedeno jinak) mi sloužila wiki stránka http://microformats.org/wiki/Main_Page [11]. 3.3. Mikroformát hAtom Tento mikroformát odvozený od syndikačního XML formátu Atom je používán v nové verzi magazínu pravděpodobně v největší míře ze všech mikroformátů. Je používán k označení všech článků vypisujících se v rubrikách, obsahu článků samotných nebo například k označování jednotlivých příspěvků v diskuzích pod články. V případě označování výpisu článků a obsahu jednotlivých článků není použit kořenový element označený hfeed. Ten je totiž nepovinný, a pokud není na stránce přítomen, považuje stroj celou stránku za jeden feed obsahující všechny položky hentry označené v této stránce. Implementace hAtom pro výpis článků tak může probíhat pouze v rámci metody getArticleList(), která slouží pro obecný výpis článků, ať už v klasické podobě s velkými ikonkami, nebo jen v podobě nadpisů, případně pak i v jakékoliv jiné formě. Kód v cyklu generující klasický výpis článků s velkými ikonkami vypadá takto: $return .= ' <div class="vypis_clanku hentry" id="clanek-'.$article->articleID.'"> <a href="/clanky/'.$article->url.'-'.$article->articleID.'/" class="vypis_clanku_nadpis entry-title" rel="bookmark"> <img src="/media/ikonka-'.$article->mediaID.'/" alt="'.$article->title.'" width="80" height="80">'.$article->title.' </a> <div> '.$highlight.'vydáno '.$this->strFnc->formatDate($article->publishDate, false, "updated").' | '.$this->getAuthors($article->articleID, true, true).' | <a href="/clanky/'.$article->url.'-'. $article->articleID.'/#">diskuze</a>'.$this->discSize($article->articleID).' </div> <span class="entry-summary">'.$article->perex.'</span> </div>'; Každý záznam s článkem je obalen v <div> tagu označeném povinnou hodnotou hentry. Tím je označen každý jednotlivý záznam. Další povinnou hodnotou k označení je titulek každé položky (entry-title). Na ukázce je dále vidět zápis rel="bookmark", který slouží k označení stálého odkazu na článek a entry-summary, jenž označuje text shrnující obsah článku. Každá položka má navíc ještě dvě povinné hodnoty, které nejsou na ukázkovém kódu přímo vidět. Jsou jimi updated pro označení času, kdy byla položka naposledy upravena a author pro označení autora této položky. Tyto hodnoty jsou vyplňovány jinými funkcemi, které jsou v kódu označeny kurzívou. 32 3. Implementace sémantických prvků do magazínu Metoda formatDate() slouží pro formátování časových značek z databáze do přívětivější podoby. Pokud tato metoda dostane nějakou hodnotu v třetím parametru (zde updated), vrací naformátované datum v souladu s value-title návrhovým vzorem, aby bylo použitelné v mikroformátech. public function formatDate($input, $time = false, $mFormat = null, $dateFormat = null) { if($mFormat) { return '<span class="'.$mFormat.'"><span class="value-title" title="'. $this->formatDate($input, true, null, DATE_ATOM).'"> </span>'. $this->formatDate($input).'</span>'; } ... } Podobně i metoda getAuthors() vypisuje autory jednotlivých článků podle specifikace hCard. Podle specifikace hAtom má být totiž autor položky označen hodnotou author a v souladu s hCard mikroformátem. $authors .= '<address class="vcard author'.$addClass.'"><a href="/uzivatele/'.$author->login.'/" title="profil autora" class="url fn">'.$author->name.'</a></address>'; Ke článkům se tak vkládají i stručné vizitky se jménem autora a adresou jeho profilu, kde je o něm dostupných více informací. Podobným stylem se potom tvoří i výpis obsahu článku nebo diskuzí pod články. Ve výpisu obsahu článku je navíc označen i text článku k tomu definovanou hodnotou entry-content a tagy týkající se článku (rel-tag mikroformátem), vše podle specifikací hAtom. 3.3.1. Využití Výhody využití mikroformátu hAtom bych rozdělil na teoretické a praktické. Ty „teoretické“ výhody spočívají v přiřazení struktury a významu hlavnímu obsahu. Možných využití je velké množství, zmínil bych ale hlavně další potenciální plusové body v SEO. Praktické využití pak spočívá v možnosti si pomocí nepřeberného množství nástrojů, obsah označený v hAtom převést na XML dokument Atom nebo RSS. Ten si potom uživatel může vyexportovat do vlastní čtečky zpráv nebo přímo využít v nějaké webové službě. Obrázek 10 - Přehled článků označených pomocí hAtom ve Firefoxu Rozšíření Operator do prohlížeče Firefox v základu sice nabízí pouze možnost si odkaz na každý článek přidat do oblíbených záložek, ale dal by se udělat i jednoduchý doplňující skript, který by nabízel například publikování odkazu na Facebooku nebo na Twitteru, což je dnes oblíbená funkce. 33 Využití mikroformátů při vývoji internetového magazínu 3.4. Mikroformát hSlice (Web Slices) Tento mikroformát vyvinutý v Microsoftu a implementovaný v jejich posledním prohlížeči Internet Explorer 8 je do velké míry ve svém značení odvozený od hAtom. Na rozdíl od něj se ale pomocí hSlice označují konkrétní bloky kódu na stránce a ne například do seznamu uspořádané nejnovější články. Web Slices byly vyvinuty speciálně pro účel možnosti označení a následného odebírání pouze jednoho kusu stránky. Uživatel tak místo čistých informací, o jejichž prezentační stránku se stará sama aplikace, v případě klasických XML feedů Atom a RSS, odebírá přímo kusy stránky i s designem, tak jak ji navrhnul vývojář. Obrázek 11 - Zápis pro odebírání boxu aktualit ve Firefoxu Obrázek 12 - Zobrazení samostatně odebíraného výpisu recenzí v Internet Exploreru Prohlížeč se potom stejně jako jakákoliv RSS čtečka stará o kontrolu odebíraných kusů stránky a o upozorňování na novinky. To může být trochu nevýhodné, protože kvůli kontrole, zda jsou nějaké změny v malém kusu stránky, se musí vždy načítat stránka celá. Naštěstí Web Slices nabízejí i možnost jako zdroj aktualizací uvést i jinou adresu. Místo označení obsahu celého Web Slice zápisem class="entry-content" je možné jako obsah tohoto výřezu označit libovolnou odkazovanou stránku. Prohlížeč podporující hSlice tak obsah aktualizuje ze stránky spouštěné s proměnnou gui = hslice. Stránka se tak načte s jinou GUI třídou, která zajistí načtení pouze odpovídajícího Boxu. Díky univerzálnímu PHP jádru magazínu tak není potřeba vytvářet jakýkoliv nový kód. Načítá se úplně stejný Box objekt jako na běžné stránce. Jediný rozdíl je v tom, že pokud je Box podporující Web Slices načten ve stránce s parametrem gui = hslice, vloží se do kódu klasický zápis class="entry-content" pro označení obsahu výřezu. [12] if($_GET["gui"] == "mikroformát:hSlice“) { $this->cssClass .= " hslice entry-content"; } else { $this->cssClass .= " mikroformát:hSlice“; $hsliceURL = '<a rel="entry-content" href="?gui=hslice&id='. $this->attributes["mikroformát:hSlice“].'" class="preload">Web Slice Feed</a>'; } 34 3. Implementace sémantických prvků do magazínu 3.4.1. Využití Přínos tohoto mikroformátu je spíše v oblasti reálné prezentace dat novým způsobem, než v oblasti zvýšené sémantičnosti. Je to sice oproti hAtom trochu jiný přístup k problematice, za použití stejný prostředků, ale myslím, že je v pořádku. Přináší totiž mnoha uživatelům reálnou funkčnost bez toho, aniž by se museli o mikroformáty jakkoliv zajímat a hledat nástroje, jak jejich potenciál využít. Web Slices je možné navíc využít i v druhém nejpoužívanějším prohlížeči – Firefoxu. Stačí k tomu doplněk Webchunks, který nabídne totožnou funkčnost jako původní implementace v Internet Exploreru 8. Přidávání nového výřezu pomocí Webchunks je vidět výše na obrázku 12. 3.5. Mikroformát hCard Mikroformát hCard je dobrým příkladem znuvupoužitelnosti a jednoduchosti mikroformátů. Jedná se o celkem robusní formát pro popis kontaktních informací, ale přitom poskytuje dostatečnou flexibilitu. Ostatní mikroformáty ho tak velice často využívají pro popis jakýchkoliv kontaktních informací. Například ve výše zmíněném hAtom ho používám pro označení jména a adresy profilu autora článku. hCard je používán i na zobrazování kontaktních informací o registrovaných uživatelích v systému magazínu. V tuto chvíli to jsou pouze redaktoři, ale kvůli diskuzím a možnostem personalizace se budou moci v budoucnu registrovat i obyčejní čtenáři. U redaktorů je zapotřebí v kontaktních údajích zobrazovat pouze jméno, post v redakci a emailovou adresu. Pomocí hCard ale samozřejmě lze označit mnohem více informací, takže budoucí uživatelé budou mít možnost o sobě nechat zobrazovat mnohem více údajů, pokud budou chtít. Implementace hCard tak v profilech redaktorů zatím vypadá velice stručně, ale kromě telefonního čísla nabízí všechny údaje, které se běžně uvádí na tištěných vizitkách. $content = '<img src="/media/ikonka-uzivatele-'.$this->user->icon.'" alt="'.$this->user->name.'" width="100" height="100" class="photo"> <h2 class="fn">'.$this->user->name.'</h2> <div class="title">'.$this->user->position.'</div> <p>email: '.$strFnc->handleMail($this->user->email).'</p> <p class="hide"> společnost: <span class="org">mobilenet.cz</span> web: <a href="http://mobilenet.cz/uzivatele/'.$this->user->login.'/" class="url" rel="me">http://mobilenet.cz/uzivatele/'.$this->user->login.'/</a> </p>'; Z viditelných informací je pomocí hCard mikroformátu označena fotografie, jméno, pozice a emailová adresa redaktora. Dále pro úplnost je ještě uváděn název společnosti a webová stránka uživatele. Emailová adresa je opět zpracovávána externí funkcí, která znak zavináče nahrazuje řetězcem, který zabraňuje načtení adresy robotem, který je z internetových stránek sbírá pro účely zasílání spamů. 35 Využití mikroformátů při vývoji internetového magazínu 3.5.1. Problémy implementace Co se týče dalších informací, které by si mohli chtít čtenáři na svých profilech publikovat, jsou problémové především kontaktní údaje na různé Instant messaging služby. Formát vCard, ze kterého hCard vychází, je totiž hodně starý a s tímto typem kontaktu nepočítá. U většiny z nich to ale lze velice elegantně vyřešit pomocí hCard hodnoty url. Do URL odkazu tak stačí přidat identifikaci protokolu. Pro Skype například takto: Skype: <a href="skype:muj_skype_kontakt?call" class="url">muj_skype_kontakt</a> Obdobný postup je možné použít na všechny běžně používané komunikační služby, kromě ICQ. To totiž nemá vlastní URL schéma, podle kterého by šel protokol identifikovat. Na microformats.org je sice doporučováno následující označení: <a class="url" type="application/x-icq" href="http://www.icq.com/people/cmd.php? uin=icq_cislo&action=message">icq_cislo</a> V praxi je ale uživateli, který nemá nainstalován originální ICQ klient, po kliknutí na odkaz nabídnut ke stažení soubor cmd.php místo očekávaného dialogového okna příslušného chatovacího programu. 3.5.2. Využití Praktických využití je pro hCard společně s hCalendar asi nejvíce. První příklad využití je možnost pomocí nepřeberné škály doplňků v prohlížečích označené kontakty procházet, vyhledávat uvedené adresy, nebo si například kontakt přímo uložit do svého online adresáře. Jelikož hCard vychází ze zavedeného standardu vCard, je možné si také nechat kontakty do tohoto formátu exportovat a následně vložit do adresáře například v Outlooku nebo mobilním telefonu. Pro doplněk Operator například existuje skript, který dokáže kontakt ve vCard poslat přes Bluetooth rovnou do telefonu. Běžné možnosti doplňku Operator jsou vidět na obrázku 14. Pokud by u kontaktu byla vyplněna i adresa, bylo by možné ji přímo zobrazit i na několika mapových službách. Obrázek 13 - Exportování kontaktu do formátu vcard Obrázek 14 - Zobrazení vyexportovaného kontaktu v prohlížeči kontaktů Microsoft Windows Aplikací, které dokážou kontakt zapsaný v hCard různě zpracovat a nějak využít, je opravdu mnoho, avšak pracují na stejném principu. Další výhoda hCard totiž opět souvisí s vyhledávači. 36 3. Implementace sémantických prvků do magazínu Vyhledávací služby Googlu, Yahoo nebo i českého Seznamu totiž s kontakty označenými tímto mikroformátem umí pracovat. Pokud je ve výsledku hledání nějaké osoby anglického Googlu stránka s hCard označením, zobrazí Google pomocí svých tzv. Rich Snippets doplňující informace o této osobě. Obrázek 15 - Zobrazení dodatečných informací o hledané osobě na Googlu 3.6. Mikroformát hReview Jelikož mikroformáty nabízí i formát hReview pro označení recenzí, rozhodl jsem se ho k tomuto účelu použít i v magazínu, přestože články jsou už celkem podrobně označeny mikroformátem hAtom. Pomocí hReview totiž lze navíc označit název konkrétního produktu a hlavně stroj pozná, že se opravdu jedná o recenzi a ne o běžný článek. Mikroformát hReview navíc samozřejmě podporuje označení dalších hodnot, jako je například bodové ohodnocení produktu, které potom většinou aplikace převádějí na přehlednou vizualizaci v podobě hvězdiček, ale tento systém hodnocení se na mobilenetu nepoužívá a je nesmyslné jej kvůli podpoře v hReview zavádět. Co se týče implementace, označuje hReview formát téměř ty samé informace jako dříve popsaný hAtom. Název článku je tak kromě entry-tile označen kvůli hReview ještě hodnotou summary, autor článku je označen hodnotami author a reviewer a stejně bych mohl pokračovat u každé společné položky. Zde se nabízí jasná otázka, zda by nestálo za úvahu značení hReview sjednotit podle hAtom a tím ušetřit zbytečné dvojité značení. hReview navíc nabízí i nepovinný zápis verze své specifikace, takže by v budoucnu nemusel být velký problém, pokud by se značení v nové revizi změnilo. Stroj zpracovávající hReview by obsah interpretoval podle uvedené verze formátu. Pomocí hReview je navíc oproti standardnímu značení hAtom označen i typ a název recenzovaného produktu: <span class="type">product</span> <span class="item"><span class="fn">'.implode(", ", $models).'</span></span> 3.6.1. Využití Recenze označené hReview jsou ve světě využívány v různých agregačních a vyhledávacích službách. V Česku jsou sice dosti populární různé srovnávací a vyhledávací služby výrobků, které k nim nabízejí i recenze, ale je nutné je buďto ručně napsat nebo na nějakou externí recenzi ručně zadat odkaz. 37 Využití mikroformátů při vývoji internetového magazínu V současnosti tak pro český magazín zatím vidím výhodu jen v podpoře od Google, který díky Rich Snippets může odkaz na naši recenzi obohatit o další informace. Obrázek 16 - Zobrazení doplňujících informací o recenzi díky Google Rich Snippets 3.7. Mikroformát hMedia Mikroformát hMedia patří mezi mikroformáty, které zatím nejsou v centru dění a moc služeb s nimi nepracuje. I přesto byl implementován, protože díky němu lze u médií, která jsou obsažena ve článcích, sémanticky označit dodatečné informace, které jsou o nich v systému evidována. Veškeré obrázky a videa (videa zatím nejsou implementována) týkající se článků jsou totiž vedena v databázi v takzvané galerii médií. Galerie tak obsahuje dodatečné meta informace o všech obrázcích a videích, které můžeme využít skrz celý portál. Předejde se tím tak zbytečné duplicitě dat, kdy se nahrávají totožné obrázky k různým článkům týkajících se stejných témat. Bude také možné tvořit galerie, které bude možné procházet v rámci článku nebo i jednotlivých rubrik, do kterých jsou média rozřazena. Navíc bych chtěl zkusit na obrázky použít určitou formu SEO, o které se moc nemluví a je tady teoretická šance, jak získat další návštěvníky. Kromě optimalizovaných URL obrázků se tak k nim z databáze přidává co nejvíce meta informací, k čemuž se mikroformát hMedia hodí. $replace = '<span class="hmedia"> <a href="/galerie/'.$this->strFnc->makeURL($media->name).''.$link[1].'/clanek-'.$articleID.'/" title="zvětšit obrázek" rel="enclosure" type="image/jpeg"><img src="/media/'.$this->strFnc->makeURL($media->name).''.$link[1].'/nahled/" alt="'.$media->name.'" width="'.$media->widthThumb.'" height="'.$media->heightThumb.'"'.$additional.' class="photo"></a> <span class="fn">'.$media->name.'</span> </span>'; Pomocí mikroformátu hMedia je tak u každého obrázku označen samotný obrázek (class="photo"), odkaz kde je k zobrazení jeho větší verze (rel="enclosure") a název obrázku (class="fn"). Ve stránce s větším náhledem obrázku je navíc zobrazen vlastník daného obrázku. U fotografií v recenzi jím je tedy mobilenet.cz, v případě, že použijeme fotografie například ze zahraničního portálu, bude jako vlastník uveden on. K tomu v hMedia slouží volitelná hodnota contributor, pro kterou se může použít mikroformát hCard. 38 3. Implementace sémantických prvků do magazínu if($image->copyright) { $copyright = ', <span class="contributor vcard">© <span class="fn org">'.$image->copyright.'</span></span>'; } 3.7.1. Využití Jak už jsem zmiňoval, tento mikroformát by mohl pomoci magazínu se více prosadit ve vyhledávačích obrázků. Navíc je hMedia podporován i velice zajímavým doplňkem oomph. 3.7.2. Doplněk oomph Oomph je dostupný jako instalovatelný doplněk do Internet Exploreru nebo jako open source Java Scriptová knihovna, vložitelná do kódu stránky. Oomph kromě hMedia podporuje i mikroformáty hCard a hCalendar. Obrázek 17 - Zobrazení kontaktu a obrázků z článku v doplňku oomph Díky tomu, že je oomph použitelný i jako vložitelná knihovna, může autor webu návštěvníkům nabídnout konkrétní výhody plynoucí z použití mikroformátů v jakémkoliv prohlížeči, bez toho, aniž by si návštěvník cokoliv instaloval. V nové verzi mobilenet.cz ale oomph v běžném nasazení použit nebude. Pravděpodobně bude později nabídnut jako volitelná funkce registrovaným uživatelům. Důvody pro to jsou dva: a) Běžní návštěvníci nic o mikroformátech ani tomto doplňku nevědí a jeho zobrazování v levém horním rohu stránky by je mohlo mást. b) Procházení HTML kódu delšího článku JavaScriptovou knihovnou může být pro slabší počítače náročné a zdržovat tak od pohodlného načtení stránky. 3.8. Mikroformát XOXO Mikroformát XOXO je v magazínu využit pro označení mapy stránek. Ta je generována z databáze, jelikož je celá struktura webu uložena tam. Implementace XOXO je pak velice jednoduchá. Vygenerovaný netříděný HTML seznam <ul> stačí označit jako kořenový element zápisem class="xoxo" a všechny jeho položky <li> a další vnořené seznamy <ul> jsou součástí přehledu podle specifikací XOXO. V každé položce seznamu je tak definován text položky, odkaz a rozšiřující informace v atributu title. Není tedy potřeba přidávat žádný další kód. Takto označená mapa stránek by potom měla jednoduše jít pomocí obecného programu překonvertovat do formátu Google Sitemaps, který je možné pomocí Google nástrojů pro 39 Využití mikroformátů při vývoji internetového magazínu webmastery uploadovat a pomoci tak idexovacímu robotu Googlu lépe procházet stránky magazínu, což může pomoci k efektivnější indexaci stránce a se SEO. [7] 3.9. Rel mikroformáty Mikroformáty založené na atributu HTML rel jsou velice jednoduché a používají Rel návrhový vzor. 3.9.1. Rel-tag Sytém tagů je oproti stávající verzi mobilenet.cz také novinkou. Tagovat se dají články a média v galerii a do budoucna se dá tento systém rozšířit na další objekty v magazínu. Tagy dovolují flexibilní označovaní obsahu podle různých témat, kterých se obsah týká a pružně tak reagovat na různé trendy a umožnit jednoduše čtenářům hledat související obsah. Mikroformát rel-tag nabízí jednoduchý způsob, jak odkazy s jednolitými tagy označit. Na konci každého článku je výpis tagů týkajících se toho článku. Každé zobrazení tagu v článku mu připočte jedno zobrazení v databázi. $tags[] = '<a href="/tag/'.str_replace(" ", "+", $value->tag).'/" rel="tag" class="tag"><sub>#</sub>'.$value->tag.'</a>'; Odkaz z tagu vede vždy na stránku v podobě /tag/Název+tagu/. Na této stránce se pak vypisuje veškerý obsah týkající se tohoto tagu, tedy zatím články a média z galerie. Každé zobrazení této stránky připočte do databáze 10 zobrazení k příslušnému tagu. Tímto systémem chci zachytit určitou oblíbenost jednotlivých témat. Připočítávané hodnoty samozřejmě bude potřeba odladit až v reálném provozu. Na základě takového ohodnocení tagů se potom například na úvodní stránku vkládá seznam aktuálních témat. Obrázek 18 - Vyhledávání tagů z článku pomocí doplňku Operator Pomocí doplňků, jako je například Operator, lze jednoduše označené tagy vyhledávat na známých vyhledávacích službách. 3.9.2. Rel-home Mikroformát rel-home je implementován v navigaci a layoutu stránky. Veškeré odkazy vedoucí na úvodní stránku jsou označeny kódem rel="home". Tak stroje jasně rozpoznají základní strukturu stránky. Prohlížeč Opera v základu a prohlížeč Firefox díky rozšířením, dokáže na základě atributu rel nabízet uživateli rozšířenou navigaci v rámci stránky. 40 3. Implementace sémantických prvků do magazínu 3.9.3. Rel-nofollow Mikroformát rel-nofollow slouží k označení odkazu, který by indexovací roboti neměly brát v potaz a přiřazovat mu tak pagerank. Tento mikroformát bude využit například v diskuzích, kde se tak zamezí různým spammerům v přiživování se na pageranku mobilenet.cz. 3.10. Další mikroformáty 3.10.1. hProduct Tento mikroformát slouží k popisu vlastností nějakého produktu a je tak ideální k popisu informací v katalogu mobilních telefonů, který je v plánu na mobilenet.cz spustit později. Není tedy zatím implementován, ale přišlo mi vhodné ho zmínit jako dalšího ideálního kandidáta pro implementaci hodící se pro jednu z budoucích oblastí magazínu. 3.10.2. hNews hNews je mikroformát navržený speciálně pro publikování článků na internetu a navíc využívá z velké části formát hAtom. Bohužel je koncipován spíše pro klasické žurnalistické zprávy a novinky a označuje informace, jako místo sepsání článku nebo zpravodajskou agenturu, ze které bylo čerpáno. To se pro technické články o mobilních telefonech nehodí, takže je tento jinak činnosti magazínu velmi příbuzný mikroformát vypuštěn. 3.11. Shrnutí přínosů implementace U mnoha mikroformátů a také u HTML 5 jsou výše mnohokrát zmíněny přínosy v optimalizaci pro vyhledávače, což je pro internetový magazín z technické stránky skutečně klíčový problém. Jelikož ale žádný z vyhledávačů logicky nikdy přesné postupy, které ovlivňují hodnocení relevantnosti stránek, nezpřístupní, je obor SEO těžko uchopitelnou disciplínou, ve které nikdo nemůže poskytnout zaručeně správné postupy a pravidla, která zaručí stránkám vrchní pozice v organickém vyhledávači. Existují samozřejmě obecně stanovená a fungující pravidla, která ale používají téměř všichni, takže je potřeba ve snaze být lepší než ostatní vždy jít trochu dál a zkoušet nové potupy. Celý problém SEO se dá shrnout v tom smyslu, že vyhledávače se snaží nabídnout co nejvíce relevantní výsledky, odkazující na opravdu relevantní a kvalitní data a vývojáři webů se je o kvalitě svého obsahu snaží přesvědčit, ať už čistými, či nečistými praktikami. Sémantika je myslím jednou z cest, jak indexovacího robota o kvalitě svých stránek přesvědčit. Sémanticky označené informace na webu totiž pomohou strojům lépe pochopit jejich skutečný význam. SEO pomocí mikroformátů skýtá podle mého pro internetový magazín opravdový potenciál. Skutečnost však ukáže až čas a reálné nasazení. Druhou výhodou mikroformátů je samozřejmě zvýšení komfortu práce se stránkami. To ovšem vyžaduje buďto výchozí implementaci do nástrojů, které využívá většina čtenářů, nebo lepší informování čtenářů o nepřeberných možnostech některých nástrojů, ať už v podobě webových služeb nebo doplňků do prohlížečů. 41 Využití mikroformátů při vývoji internetového magazínu Co se týče první skupiny, několik příkladů mezi běžně používanými nástroji existuje. Je to například zmiňovaný Internet Explorer 8 nebo poskytování doplňkových informací o výsledcích ve vyhledávačích, jako jsou Google, Yahoo nebo i Seznam. [19] Velmi rozšířený prohlížeč Firefox od své třetí verze například nativní podporu mikroformátů ve svém API nabízí, k jejich reálnému využití je ale stále potřeba instalace doplňků třetích stran, o kterých běžní uživatelé nevědí. [20] Zde je tedy stále prostor ke zlepšování, vyvíjení a prosazovaní aplikací, které budou pro běžné uživatele užitečné a nebudou přitom vyžadovat nějaké zvláštní znalostí, angažovanost, nebo že vůbec nějaké mikroformáty existují. 42 4. Konkurenční řešení 4. Konkurenční řešení V této kapitole se pokusím zmapovat, jaké možnosti nabízejí nejpoužívanější volně dostupné CMS a jiné publikační systémy v oblasti využití mikfrofomátů a zda mikroformáty používají některé české internetové magazíny. 4.1. Mikroformáty v nejpoužívanějších CMS Mnoho internetových projektů si nemůže dovolit nechat vyrobit systém na míru. Pro ně se tak stávají volně dostupné systémy pro správu obsahu ideálním řešením. Open source CMS ale samozřejmě využívá i mnoho velkých a úspěšných projektů, protože řada z nich nabízí pokročilé funkce a rozsáhlou možnost customizace. Jaké možnosti nabízí tyto systémy svým uživatelům, co se týče označování publikovaných informací pomocí mikroformátu? 4.1.1. WordPress Pravděpodobně nejpokročilejším publikačním systémem v implementaci mikroformátů je WordPress. Přímo v základu nabízí označování odkazů pomocí XFN. Pomocí velkého množství témat je do WordPressu možné implementovat podporu mikroformátů jako jsou hAtom, hCard a XOXO. Pomocí dalších plug-inů lze potom implementovat mnoho dalších mikroformátů (např. hCalendar). [21] Většina z těchto doplňků se nezaměřuje přímo pouze na podporu mikroformátů, ale doplňuje je jako přirozenou součást svých funkcí. Tyto doplňky lze velice snadno dohledat na oficiálních stránkách WordPress i v jiných zdrojích, čímž se WordPress systém stává ideálním kandidátem při výběru CMS systému podporujícího mikroformáty. 4.1.2. Drupal Systém Drupal na tom je, co se týče podpory mikroformátu, o poznání hůře. Z oficiálních doplňků Drupal nabízí podporu pouze hCard a hCalendar opět jako součást příbuzné funkčnosti. Dále lze poměrně složitě dohledat mnoho návrhů a uživatelských patchů doplňující podporu dalších mikroformátů. Zlepšení by v oblasti sémantiky měla přinést příští, sedmá, verze Drupalu. V něm se plánuje přímo systémová podpora RDFa. [22] 4.1.3. Joomla! Tento CMS podporu pro mikroformáty v podstatě vůbec nenabízí. K nalezení je pouze několik málo uživatelských neoficiálních patchů, které přidají podporu například pro hCard do stávajícího systému. Na microformtas.org je zmínka o několika dalších implementacích, ty ale probíhaly přímou úpravou kódu Joomly a nejsou tedy v podobě snadno instalovatelného doplňku dostupné všem uživatelům. 4.1.4. MediaWiki Na systému MediaWiki je postavena například velice známá encyklopedie Wikipedia.org. Do Wikipedie lze samozřejmě ručně zadávat HTML, které tak lze označit i podle libovolného mikroformátu. 43 Využití mikroformátů při vývoji internetového magazínu Vzniknul ale i projekt nazvaný WikiProject Microformats, pod kterým se sdružují různé šablony (templates), které zajišťují převod informací zapsaných v MediWiki syntaxi do výsledného HTML s mikroformáty. Tyto šablony sice také vyžadují naučení se nových postupů při zápisu kódu, aby převod do mikroformátů fungoval, ale staví na stejné syntaxi, jakou už umí uživatelé MediaWiki používat. Navíc se tak zajistí jednotný a korektní převod do mikroformátů. Za pomocí šablon tak lze v MediaWiki publikovat obsah označený libovolným mikroformátem. Jejich podpora je opravdu široká. [23] 4.1.5. Další systémy Celkem solidní podporu nabízí i mnoho méně rozšířených publikačních systémů, jako je například Movable Type, LiveJournal, Textpattern, Postunuke, Plone a další. 4.1.6. Shrnutí Jako jasná volba se tak v případě, že bychom chtěli použít rozšířený CMS s dobrou a snadno doplnitelnou podporou mikroformátů, jeví WordPress. Mnoho tvůrců webů ale po open source CMS sahá i z toho důvodu, že na jejich základu chce postavit vlastní, upravený portál. V tomto případě pak není moc velký problém sáhnout i po jiném zmíněném systému s tím, že si vývojář bude muset mikroformáty implementovat sám nebo využít některé návody a patche dostupné na internetu. Pozitivní je, že nejrozšířenější nástroj pro vytváření internetových wiki stránek, MediaWiki, určitou podporu také nabízí. Myslím, že u projektu, jako je internetová encyklopedie, je využití sémantiky velice přínosné a důležité. 4.2. Mikroformáty v českých magazínech V mezinárodních službách lze používání mikroformátů vysledovat u mnoha z nich. Za ty největší uvedu například Google Maps, Twitter, Last.fm, Facebook, LinkedIn a mnoho dalších. Jak jsou na tom ale české stránky, především potom magazíny? I mezi českými službami lze najít několik příkladů používajících mikroformáty. Z nich zmíním například ZlatéStránky.cz nebo Firmy.cz od Seznamu. Vyhledávač Yahoo, stejně jako Google, umí při indexování využít i mikroformáty. Yahoo ale nabízí velice zajímavý nástroj pojmenovaný SearchMonkey, pomocí kterého lze například zjistit, které všechny stránky mikroformáty používají. Pokud tak chceme vyhledat všechny indexováne stránky v doméně cz používajících hCard, stačí vložit do Yahoo vyhledávání tento řetězec: searchmonkey:com.yahoo.page.uf.hcard site:cz. V indexu Yahoo tak lze v doméně cz najít 1 100 000 stránek používajících hCard, 65 000 stránek používajících hCalendar, 3 120 stránek používajících hReview, 87 200 stránek používajících hAtom a 186 000 stránek používajících XFN. Po namátkovém projití těchto výsledků tak zjistíme, že většinu z nich tvoří menší stránky obsahující profily osob nebo firem, případně blogy nebo jiné stránky postavené na WordPress. Co se týče konkrétně magazínů na českém internetu, je podpora mikroformátů velice špatná. 44 4. Konkurenční řešení Z velkých a navštěvovaných magazínů tak lze zmínit pouze projekty vydavatelství Computer Press Živě.cz a MobilMania.cz. U obou magazínů ale za použitím mikroformátů stojí opět WordPress, který tyto magazíny používají pro čtenářské blogy integrované do jejich stránek. Konkrétně se jedná o podporu pouze rel-tag formátu. Živě.cz má navíc na svých stránkách implementovány ještě Web Slices. Z menších projektů jsem dohledal ještě magazín ITBIZ.cz (postaveno na Drupalu) a ExtraWindows.cz, používající opět pouze rel-tag. Zajímavé je, že sesterské projekty těchto magazínů, které vydávají jejich vydavatelví, mikroformáty neimplementují. Pomocí SearchMonkey jsem našel ještě magazíny jako Buzzmag.cz, magazin.softimage.cz, ideje.cz nebo například pcmagazin.cz. Vesměs je implementován pouze rel-tag, u některých i XFN nebo hAtom. 4.2.1. Shrnutí Podle Yahoo je stránek na české doméně používajících mikroformáty docela dost. Za velkou částí této podpory ale stojí WordPress, takže se dá jen spekulovat, do jaké míry je používaní mikroformátů intencionální. U zpravodajských webů a magazínů obecně je pak penetrace mikroformáty ještě mnohem nižší. Tato situace pro magazín, jako je mobilenet.cz, implementující mikroformáty, přináší jedno pozitivum i jedno negativum. Negativním aspektem je minimální seznámenost a zkušenost českého uživatele internetu s mikroformáty, což znamená horší výchozí pozici magazínu, pro snahu jeho návštěvníky přesvědčit o výhodách mikroformátů a získání si tak větší obliby. Na druhou stranu nízká penetrace mezi potencionální konkurencí znamená právě vyšší možnost zaujmout něčím novým a bezesporu také další výhody v optimalizaci pro vyhledávače. 45 Využití mikroformátů při vývoji internetového magazínu Závěr Hlavními cíly této práce bylo nahlédnout do problému sémantiky na webu, vybrané sémantické prvky (mikroformáty a HTML 5) začlenit do vývoje nové verze redakčního systému a magazínu mobilenet.cz, a provést průzkum, jak jsou na tom s využíváním mikroformátů konkurenční magazíny a volně dostupné systémy pro správu obsahu na webu. V práci bylo popsáno, proč je sémantika na webu důležitá a jaké výhody může přinést. Jelikož způsobů, jak sémanticky obohatit obsah webu je více, bylo potřeba vybrat vhodné technologie, kterými se staly mikroformáty a sémantické značky z HTML 5. Ačkoliv je implementace mikroformátů ze své podstaty celkem jednoduchá, v praxi je možné se setkat s několika problémy a otázkami způsobu implementace. Popis implementace mikroformátů tak může sloužit jako náhled do těchto problémů a jako možný návod řešení. Mikroformátů je navíc velké množství a stále se vyvíjí a vznikají nové. Ještě více je potom možných způsobů jejich využití. Bylo tedy důležité vybrat pouze ty, které přinesou internetovému magazínu užitek a využít je na správných místech a vhodným způsobem. Reálná implementace také v případě HTML 5 ukázala, že ne všechny technologie je možné bezproblémově použít už v dnešní době a je potřeba činit určité kompromisy pro zachování větší kompatibility. Každá technologie by při vývoji měla být implementována s vědomím jasných přínosů a případných nevýhod. U každého mikroformátu jsem se tak zaměřil i na možnosti využití a výhod, které jejich použití přinese pro magazín a jeho čtenáře. Jelikož je možné pro provozování internetového magazínu, případně jiného projektu, použít i volně dostupné CMS, provedl jsem průzkum, jaké možnosti tyto systémy nabízejí svým uživatelům v oblasti mikroformátů. Výsledek příliš dobře nedopadl a z hlediska snadnosti použití mikroformátů lze doporučit pouze systém WordPress. To ale neznamená, že by podpora u jiných systémů nebyla žádná. Rovněž jsem provedl průzkum, jak si v použití mikroformátů stojí české weby a hlavně konkurence. Za pomocí SearchMonkey se mi podařilo zjistit konkrétnější čísla o využívání mikroformátů a také to, že využití mikroformátů v českých zpravodajských serverech a hlavně u přímé konkurence (zaměření na mobilní telefony) není v podstatě žádné. To by pro vyvíjený magazín mobilenet.cz mohlo znamenat určitou konkurenční výhodu. Je ale potřeba říci, že žádná z popsaných výhod nebyla ještě ověřena v praxi v běžném provozu. Určitě by tedy stálo za to, se po spuštění nové verze magazínu k těmto věcem vrátit a pokusit se dopady nových technologií zanalyzovat v reálném provozu s reálnými návštěvníky. 46 <Citovaná literatura Citovaná literatura 1. ALLSOPP, John. Microformats: Empowering Your Markup for Web 2.0. 1. vydání. New York : Springer-Verlag New York, Inc., 2007. str. 345. ISBN: 1-59059-814-8. 2. BERNERS-LEE, Tim a CONNOLLY, Daniel. Hypertext Markup Language (HTML). XHTML2 Working Group Home Page. *Online+ Červen 1993. *Citace: 31. října 2009.+ http://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt. 3. HTML. Wikipedia, the free encyclopedia. [Online] Wikimedia Foundation, Inc., 30. října 2009. *Citace: 31. října 2009.+ http://en.wikipedia.org/wiki/HTML#Semantic_HTML. 4. W3C Semantic Web Activity. World Wide Web Consortium (W3C). [Online] World Wide Web Consortium, 16. října 2009. *Citace: 31. října 2009.] http://www.w3.org/2001/sw/. 5. Semantic Web. Wikipedia, the free encyclopedia. [Online] Wikimedia Foundation, Inc., 28. října 2009. *Citace: 31. října 2009.+ http://en.wikipedia.org/wiki/Semantic_Web. 6. MANOLA, Frank a MILLER, Eric. RDF Primer. World Wide Web Consortium (W3C). [Online] World Wide Web Consortium, 10. února 2004. *Citace: 31. října 2009.+ http://www.w3.org/TR/rdf-primer/. 7. LEWIS, Emily P. Microformats Made Simple. 1. vydání. Berkley : New Riders Press, 2010. str. 301. ISBN: 0-32166-077-3. 8. Microformats.cz - mikroformáty pro sémantický web. Microformats.cz. [Online] [Citace: 2. listopadu 2009.] http://microformats.cz/. 9. About Microformats. Microformats. [Online] [Citace: 2. listopadu 2009.] http://microformats.org/about. 10. profile-uris. Microformats Wiki. [Online] microformats.org, 6. dubna 2009. [Citace: 16. listopadu 2009.] http://microformats.org/wiki/profile-uris. 11. Microformats Wiki. [Online] microformats.org, 19. listopadu 2009. [Citace: 20. listopadu 2009.] http://microformats.org/wiki/Main_Page. 12. Web Slice Format Specification - Version 0.9. MSDN Library. [Online] Microsoft Corporation, 2009. [Citace: 20. listopadu 2009.] http://msdn.microsoft.com/enus/library/cc304073(VS.85).aspx. 13. HUNT, Lachlan. Seznámení s HTML 5. Interval.cz. [Online] ZONER software, a.s., 24. prosince 2007. [Citace: 16. listopadu 2009.] http://interval.cz/clanky/seznameni-s-html-5/. 14. SALVET, Pavel. HTML 5 a sémantika. Interval.cz. [Online] ZONER software, a.s., 4. dubna 2009. [Citace: 16. listopadu 2009.] http://interval.cz/clanky/html5-a-semantika/. 15. Google Analytics | Official Website. [Online] Google Inc., 5. listopadu 2009. [Citace: 5. listopadu 2009.] http://www.google.com/analytics/. 47 Využití mikroformátů při vývoji internetového magazínu 16. PROKOP, Marek. Jak zvolit šířku stránky. Sova v síti. *Online+ 6. října 2003. *Citace: 6. listopadu 2009.] http://sovavsiti.cz/c01051.html. 17. W3C Working Group. XHTML Media Types - Second Edition. World Wide Web Consortium (W3C). [Online] World Wide Web Consortium, 16. ledna 2009. [Citace: 19. listopadu 2009.] http://www.w3.org/TR/xhtml-media-types/. 18. HAGENBURGER, Nico. HTML5 / XHTML5 with CSS for Safari, Firefox, Opera & IE. Nico Hagenburger. *Online+ 9. března 2009. *Citace: 19. listopadu 2009.+ http://www.hagenburger.net/2009/03/html5-xhtml5-with-css-for-safari-firefox-opera-ie. 19. Mikroformáty. Seznam Nápověda. [Online] Seznam.cz, a.s. [Citace: 22. listopadu 2009.] http://napoveda.seznam.cz/cz/fulltext-hledani-v-internetu/hledani-fulltext-mikroformaty/. 20. KAPLY, Michael. Where are the microformats in Firefox 3? Mike’s Musings. [Online] 20. května 2008. *Citace: 22. listopadu 2009.+ http://www.kaply.com/weblog/2008/05/20/whereare-the-microformat-in-firefox-3/. 21. WordPress. Microformats Wiki. [Online] Microformats.org, 19. sprna 2009. [Citace: 25. listopadu 2009.] http://microformats.org/wiki/wordpress. 22. A roadmap for RDFa in Drupal 7. groups.drupal.org. [Online] 8. listopadu 2008. [Citace: 25. listopadu 2009.] http://groups.drupal.org/node/16597. 23. Wikipedia:WikiProject Microformats. Wikipedia, the free encyclopedia. [Online] Wikimedia Foundation, Inc., 14. listopadu 2009. [Citace: 25. listopadu 2009.] http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Microformats. 24. Semantic Web Case Studies and Use Cases. World Wide Web Consortium (W3C). [Online] World Wide Web Consortium, 29. července 2009. *Citace: 31. října 2009.+ http://www.w3.org/2001/sw/sweo/public/UseCases/. 25. Ontologie (výpočetní technika). Wikipedie, otevřená encyklopedie. [Online] Wikimedia Foundation, Inc., 2. září 2009. *Citace: října. 31 2009.+ http://cs.wikipedia.org/wiki/Ontologie_(v%C3%BDpo%C4%8Detn%C3%AD_technika). 26. phpBB. Wikipedie, otevřená encyklopedie. *Online+ Wikimedia Foundation, Inc., 11. září 2009. [Citace: 6. listopadu 2009.] http://cs.wikipedia.org/wiki/PhpBB. 27. Framework. Wikipedie, otevřená encyklopedie. *Online+ Wikimedia Foundation, Inc., 10. září 2009. [Citace: 13. listopadu 2009.] http://cs.wikipedia.org/wiki/Framework. 28. DUBOIS, Paul. MySQL profesionálně. 2. vydání. Praha : Mobil Media a.s., 2003. str. 1071. ISBN 80-86593-41-X. 48 Rejstřík výrazů Rejstřík výrazů A AJAX, 27 Atom, 16, 32, 33, 34 C CMS, 9, 43, 44, 46 Drupal, 43 Joomla!, 43 MediaWiki, 43, 44 WordPress, 43, 44, 45, 46 rel-nofollow, 41 rel-tag, 16, 33, 40, 45 složené, 12 Web Slices, 16, 22, 34, 35, 45 XOXO, 39, 43 MySQL, 18, 21, 26, 27 O F ontologie, 10 oomph, 39 Operator, 33, 36, 40 OWL, 10 framework, 25, 26, 27 P H PHP, 18, 20, 21, 22, 23, 26, 27, 34 HTML, 9, 10, 11, 12, 13, 14, 16, 17, 21, 22, 23, 25, 29, 30, 31, 32, 39, 40, 41, 43, 44, 46 HTTP, 23 R JavaScript, 27 RDF, 10, 11 RDFa, 11, 43 Rich Snippets, 37, 38 RSS, 16, 21, 33, 34 M S MathML, 29 metadata, 12, 13 mikroformát, 9, 11, 12, 13, 14, 16, 17, 31, 35, 37, 38, 39, 42, 43, 44, 45, 46 elementární, 12 hAtom, 16, 32, 33, 34, 35, 37, 41, 43, 44, 45 hCalendar, 16, 36, 39, 43, 44 hCard, 12, 14, 15, 16, 33, 35, 36, 37, 38, 39, 43, 44 hMedia, 16, 38, 39 hNews, 41 hProduct, 16 hReview, 16, 37, 44 hSlice, 16, 34 mikroformát hAtom, 16 rel-home, 40 SearchMonkey, 44, 45, 46 Sémantický web, 10, 11, 17 SEO, 28, 31, 33, 38, 40, 41 SVG, 29 J U URI, 13, 31, 32 URL, 20, 28, 36, 38 W W3C, 10, 11, 13, 16, 29 X XFN, 11, 12, 16, 43, 44, 45 XHTML, 11, 13, 29, 30 XMDP, 13 XML, 10, 16, 29, 32, 33, 34 49 Využití mikroformátů při vývoji internetového magazínu Rejstřík obrázků Obrázek 1 - Znázornění layoutu stránky pomocí nových HTML 5 značek *13+ .............................. 17 Obrázek 2 – Administrace stávající verze ...................................................................................... 18 Obrázek 3 - Úvodní stránka stávající verze ................................................................................... 18 Obrázek 4 - Úvodní strana nového designu .................................................................................. 19 Obrázek 5 - Zobrazení článku v novém designu ............................................................................ 19 Obrázek 6 - Stručný Class diagram základních PHP tříd (neobsahuje všechny metody a parametry) ...................................................................................................................................................... 22 Obrázek 7 - Znázornění postupu editace Boxu v administraci ...................................................... 24 Obrázek 8 - Administrace - přehled dat v tabulce ......................................................................... 26 Obrázek 9 - Administrace - editace dat ve formuláři .................................................................... 26 Obrázek 10 - Přehled článků označených pomocí hAtom ve Firefoxu .......................................... 33 Obrázek 11 - Zápis pro odebírání boxu aktualit ve Firefoxu .......................................................... 34 Obrázek 12 - Zobrazení samostatně odebíraného výpisu recenzí v Internet Exploreru ................ 34 Obrázek 13 - Exportování kontaktu do formátu vcard .................................................................. 36 Obrázek 14 - Zobrazení vyexportovaného kontaktu v prohlížeči kontaktů Microsoft Windows ... 36 Obrázek 15 - Zobrazení dodatečných informací o hledané osobě na Googlu ............................... 37 Obrázek 16 - Zobrazení doplňujících informací o recenzi díky Google Rich Snippets.................... 38 Obrázek 17 - Zobrazení kontaktu a obrázků z článku v doplňku oomph ....................................... 39 Obrázek 18 - Vyhledávání tagů z článku pomocí doplňku Operator ............................................. 40 50 Rejstřík tabulek Rejstřík tabulek Tabulka 1 - Přehled používaných rozlišení obrazovky návštěvníků monilenet.cz podle Google Analytics [15] ................................................................................................................................ 19 Tabulka 2 - Přehled návštěvnosti jednotlivých stránek v období 1. 1. 2009 - 6. 11. 2009 [15] ..... 20 51
Podobné dokumenty
Geo mikroformát - Vysoká škola báňská
1 - Mikroformáty
• Mikroformáty (anglicky microformats,
zkratka μF) jsou strojově čitelné informace
• Používají se v kódu webových stránek
• Vychází z principu sémantického WEBu 3.0
• K zápisu se ...
Vyhledávání na internetu
V roce 1991 byly spuštěny první webové stránky na adrese
http://info.cern.ch. Jsou stále funkční. V následující prezentaci se dozvíte,
jak vznikl internet, na jakém principu je postaven, jak je def...
Sestava 1 - rock for people
rád, jsou uvolněnější, spontánnější.
Zmínil jste další album. Poslední
je Junk of the Heart z minulého
roku. Už spřádáte plány na další?
Rozhodně, na další album se těšíme.
Připadá mi, jako by to m...
ZEMĚ ŽIVITELKA České Budějovice STYL a KABO Brno
živitelce tato vína pre−
zentovala.
Do prodeje byla za−
řazena i vína ročníková,
pozdní sběry, sekty a jako další novinka i výběry z hroznů. Dále
nechběla vína z Astrology kolekce, která jsou věnov...
dokumentografické informační systémy osnova předmětu (2016
průběžných znalostních testů, jejichž výsledky se stanou součástí výsledného hodnocení. -Posluchači kombinované formy si praktické dovednosti nacvičují sami, povinná je návštěva
společných konzulta...