MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Webová aplikace redakčního systému pro správu a vytváření dokumentů BAKALÁŘSKÉ PRÁCE
Ivo Drgáč Brno, podzim 2012
Prohlášení
Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Vedoucí práce: Ing. Mgr. Zdeněk Říha, Ph.D.
Poděkování Rád bych tímto poděkoval Ing. Mgr. Zdeňku Říhovi, Ph.D. za vedení mé práce. Dále bych chtěl poděkovat externímu zadavateli, především Mgr. Haně Vystavělové, za odborné rady, konzultace a především lidský přístup.
Shrnutí Práce se zabývá studií systémů pro tvorbu a správu dokumentů. Praktická část práce je zaměřena na implemantaci webové aplikace pro parsování klíčových částí dokumentu.
Abstract The aim of this thesis is study of systems for creating and managing documents. The practical part is focused on the implementation of web application for parsing key parts of the document.
Klíčová slova Správa obsahu, redakční systém, CMS, WCMS, ECMS, PHP, parsování, zranitelnost
Keywords Content Management, Content Management System, CMS, WCMS, ECMS, PHP, parsing, vulnerability
Obsah 1. Úvod.....................................................................................................................5 2. Informační systémy ke správě webového obsahu............................................6 2.1. Content management...................................................................................6 2.2. Content management system.......................................................................6 2.3. Typy CMS....................................................................................................8 2.3.1.Mobile CMS.................................................................................8 2.3.2.Enterprise CMS.............................................................................8 2.3.3.Web CMS...................................................................................10 3. Redakční systém ke správě webového obsahu...............................................12 3.1. Charakteristika redakčních systémů..........................................................12 3.2. Modulárnost redakčních systémů..............................................................13 3.3. Přístup k redakčním systémům..................................................................13 3.4. Výhody užití redakčního systému..............................................................13 3.5. Přehled dostupných redakčních systémů...................................................14 3.5.1.Nejvíce využívané redakční systémy..........................................15 3.5.1.1.WordPress............................................................................15 3.5.1.2.Joomla! ................................................................................17 3.5.1.3.Drupal...................................................................................18 4. Analýza a návrh systému.................................................................................20 4.1. Charakteristika systému.............................................................................20
4.2. Datový model systému...............................................................................20 4.3. UML model systému..................................................................................23 4.3.1.Diagram funkcionality systému..................................................24 4.3.2.Správa dokumentací....................................................................25 4.3.3.Správa zranitelností.....................................................................26 4.3.4.Správa poznámek........................................................................27 4.3.5.Správa uživatelů..........................................................................28 5. Implementace aplikace.....................................................................................29 5.1. Použité nástroje pro implementaci.............................................................29 5.1.1.Jazyk PHP...................................................................................29 5.1.2.MySQL ......................................................................................29 5.1.3.Nette............................................................................................30 5.1.4.PHPdocX....................................................................................31 5.1.5.Twitter Bootstrap........................................................................31 5.2. Seznam klíčových funkcí implementováného systému.............................31 6. Závěr...................................................................................................................33 7. Seznam literatury................................................................................................34 8. Přílohy...............................................................................................................37
1Úvod
Cílem této bakalářské práce je seznámit uživatele se základními principy content management systémů. Teoretická část je zaměřena na vysvětlení hlavních pojmů z oblasti CMS, jejich rozčlenění a popis základních funkcí jednotlivých systémů. Další část práce je věnována seznámení čtenáře s redakčními systémy. Důsledně jsem popsal hlavní funkce redakčních systémů a zaměřil se také na seznam výhod, které uživatelům poskytuje jejich používání. Za podstatné považuji i seznámení čtenáře se současně nejúspěšnějšími redakčními systémy. Praktická část bakalářské práce je zaměřena na využití nastudovaných informací pro tvorbu webové aplikace redakčního systému se zaměřením na parsování částí dokumentu. Navržený systém má sloužit k vnitřním potřebám firmy AEC, a tudíž bylo potřeba brát ohledy na jejich specifické potřeby a požadavky. Návrh systému je popsán prostřednictvím datového modelu aplikace, který je reprezentován ERD diagramem. Dbal jsem také na popsání klíčových entit, jejich atributů a jednotlivými vazbami mezi nimi. Funkce systému jsou znázorněny pomocí UML diagramů. Implementační část systému tvoří seznam použitých technologií včetně jejich stručného popisu. Všechny použité technologie jsou volně dostupné. V poslední části své práce jsem znázornil, jakým způsobem byly implementovány jednotlivé klíčové funkce systému.
2Informační systémy ke správě webového obsahu Následující kapitola se zaměřuje na vysvětlení základních pojmů z oblasti správy digitálního obsahu.
2.1.Content management Content management (CM) je množina procesů a technologií sloužících ke tvorbě a správě digitálních informací. Tyto informace nesou často označení „digitální obsah“ případně jen „obsah“ a mohou mít podobu textového dokumentu, multimediálního souboru nebo datového typu, jehož životní cyklus je potřeba spravovat. Cyklus dokumentu můžeme rozčlenit do základních etap podle vývoje: vytvoření, aktualizace, publikace, předvedení, archivace a destrukce. Správa obsahu se řídí propojenými pracovními postupy kde každý účastník má přidělenu svou roli a povinnosti: •
Autor – Vytváří a upravuje digitální obsah.
•
Editor – Provádí překlad a lokalizaci dokumentu a upravuje jejich styl.
•
Vydavatel – Uvolňuje publikace a dbá na jejich zveřejnění.
•
Administrátor – Spravuje uživatelské účty, určuje jejich práva podle funkce. Administrátor má také možnost úpravy přístupových práv pro určité složky a soubory.
•
Host – Uživatel, který používá publikace po jejich uvedení na Internet. CM umožňuje správu více verzí daného obsahu dat pro dokumenty v určitých fázích jejich vývoje. Tato funkce je vhodná pro autory a editory, kteří se při tvorbě dokumentů často potřebují vrátit k předchozím verzím dokumentů.Content management. Wikipedia, the free encyclopedia [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://en.wikipedia.org/wiki/Content_management
1.1.Content management system Content management system (CMS) je označení pro systém, který usnadňuje uživatelům publikaci, editaci a údržbu obsahu pomocí centrálního rozhraní (nejčastěji webové). Systémy správy obsahu poskytují možnost řídit a ovládat pracovní procesy ve vývojovém prostředí. Tyto procedury mohou být automatizované případně manuální.
Funkce CMS (Content Managment System) můžou být rozděleny do následujících skupin:ROBERTSON, James. So, what is a CMS?. Step Two DESINGS [online]. 2003 [cit. 2013-01-01]. Dostupné z: http://www.steptwo.com.au/papers/kmc_what/index.html
Tvorba a modifikace obsahu Klíčem k tvorbě obsahu CMS je jednoduché prostředí, které je podobné různým textovým editorům. To umožňuje vytváření a aktualizaci obsahu bez potřeby širší znalosti programovacích jazyků jako je HTML. CMS také slouží jako nástroj pro správu struktury webových stránek, především jejich umístění a provázanost mezi sebou. Tuto strukturu je možné měnit bez narušení odkazů mezi stránkami. Převážná část CMS poskytuje pro tvorbu digitálního obsahu on-linové prostředí. Obsah tam lze tvořit a aktualizovat odkudkoliv, kde je internetové připojení.ROBERTSON, James. So, what is a CMS?. Step Two DESINGS [online]. 2003 [cit. 2013-01-01]. Dostupné z: http://www.steptwo.com.au/papers/kmc_what/index.htmlCMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/cms.html Správa obsahu Pro správu obsahu slouží centrální úložiště CMS systému, kde je uchován veškerý obsah. Díky tomu lze evidovat změny, které nastaly a uživatele, kteří je provedli. Každý uživatel tak může spravovat pouze stránky, ke kterým má přístup. Funkce CMS umožňují taky propojení se stávajícími informačními systémy.ROBERTSON, James. So, what is a CMS?. Step Two DESINGS [online]. 2003 [cit. 2013-01-01]. Dostupné z: http://www.steptwo.com.au/papers/kmc_what/index.htmlCMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/cms.html Publikování Vzhled CMS je aplikován nezávisle na obsahu. Data sloužící k publikaci jsou upravována prostřednictvím navržených šablon, čímž je zajištěn jednotný vzhled systému. To umožňuje autorům soustředit se hlavně na tvorbu a úpravu digitálního obsahu. U těch nejlepších systémů je takzvaný koncept "single source publishing" (publikování z jednoho zdroje), kdy je obsah automaticky převáděn do různých formátů. To znamená vygenerování obsahu do různých tisknutelných formátů (PDF, RTF) nebo například do univerzálního datového formátu XML. ROBERTSON, James. So, what is a CMS?. Step Two DESINGS [online]. 2003 [cit. 2013-01-01]. Dostupné z: http://www.steptwo.com.au/papers/kmc_what/index.htmlCMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/cms.html Prezentace CMS dokážou poskytnout celou řadu nástrojů pro zlepšení kvality a efektivnosti stránek. Stejně tak usnadňují zajištění podpory pro nejrůznější prohlížeče nebo návštěvníky s omezenou schopností vnímání (zrakově postižení). ROBERTSON, James. So, what is a
CMS?. Step Two DESINGS [online]. 2003 [cit. 2013-01-01]. Dostupné z: http://www.steptwo.com.au/papers/kmc_what/index.htmlCMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/cms.html
1.2.Typy CMS Každý CMS nabízí specifické množství funkcí. Systémy tedy můžeme rozdělit do několika kategorií podle obsahu, se kterým pracují. Types of CMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/types/ •
Web CMS
•
Enterprise CMS
•
Mobile CMS
1.1.1.Mobile CMS Mobile content management system (MCMS) je CMS systémem zaměřujícím se na zpracování a prezentaci digitálního obsahu pro mobilní zařízení jako jsou mobilní telefony, smartphony nebo PDA. MCMS mohou existovat samostatně, nicméně často jsou součástí větších CMS nebo je jejich funkcionalita přidána prostřednictvím modulů. MCMS se soustřeďuje především na tyto funkceMobile CMS. CMS.co.uk [online]. 2012 [cit. 201301-01]. Dostupné z: http://www.cms.co.uk/types/mobile-cms.html: Multi-channel content Multi-channel content umožňuje uživatelům spravovat obsah a zároveň jej poskytovat webovým prohlížečům, mobilní telefonům a dalším zařízením.Mobile content management system. Wikipedia, the free encyclopedia [online]. 2010 [cit. 2013-01-01]. Dostupné z: http://en.wikipedia.org/wiki/Mobile_content_management_system Templating Zatímco u tradičních content management systémů jsou vzhledové šablony navrhovány a optimalizovány pro několik webových prohlížečů, musí Mobile CMS šablony přizpůsobit velmi širokému spektru cílových zařízení s různými kapacitami a omezeními. Existují dva přístupy k přizpůsobení šablon: multi-client a multi-site. Multi-klientský přístup umožňuje vidět všechny verze webu na stejné doméně (např. sitename.com), šablony jsou prezentovány na základě zařízení, které uživatel používá pro prohlížení. Multi-site přístup zobrazuje mobilní web na cílené sub-doméně (např. mobile.sitename.com).Mobile content management system. Wikipedia, the free encyclopedia [online]. 2010 [cit. 2013-01-01]. Do stupné z: http://en.wikipedia.org/wiki/Mobile_content_management_system Location-based content
Tato funkce poskytuje uživateli cílené informace, reklamy, mapy a novinky do mobilního zařízení v závislosti na jeho současné poloze.Mobile content management system. Wikipedia, the free encyclopedia [online]. 2010 [cit. 2013-01-01]. Dostupné z: http://en.wikipedia.org/wiki/Mobile_content_management_system
1.1.2.Enterprise Content Management Enterprise Content management systém (ECMS) je navržen pro správu podnikových informací. Ty existují v mnoha digitálních podobách: textové dokumenty, tabulky, obrázky, fotky, audio, video soubory apod. ECM pomáhá vytvářet obsah pomocí běžných aplikací jako je Microsoft Word a jednoduchých šablon pro vytváření obsahu. Může rovněž uchovat a zahrnout stávající obsah z mnoha různých zdrojů. BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 201301-01]. Dostupné z: http://www.systemonline.cz/clanky/jste-pripraveni-na-enterprisecontent-management.htm ECMS zajišťuje správu obsahu z jiných podnikových aplikací a portálů, zefektivňuje vyhledávání použitím kategorizačních schémat (atibuty, metada, tagy)BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.systemonline.cz/clanky/jste-pripraveni-na-enterprise-content-management.htm. Rovněž slouží ke správě vztahů mezi dokumenty. Systém také podporuje tvorbu dokumentace ve více podobách a uchovávání různých verzí. BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 201301-01]. Dostupné z: http://www.systemonline.cz/clanky/jste-pripraveni-na-enterprisecontent-management.htm ECMS rovněž zajišťuje publikaci digitálního obsahu skrze vícečetné kanály. Potřebná informace může být zároveň poslána jako fax, tištěna jako dokument nebo publikována na webových stránkách.BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.systemonline.cz/clanky/jste-pripraveni-na-enterprise-content-management.htm Kompletní ECM systém v sobě zahrnuje následující oblasti: •
Enterprise Document Management (EDM)
•
Web Content Management (WCM)
•
Digital Asset Management (DAM)
Enterprise Document Management EDM nebo také Document Management (DM, DMS) slouží ke správě podnikové dokumentace a usnadňuje práci s dokumenty ve všech fázích jejich životního cyklu. DMS zajišťuje uchovávání a sledování odlišných verzí dokumentu. Definuje a poskytuje automatickou obsluhu procesů, které jsou spojeny s tvorbou a distribucí dokumentace.
Poskytuje systému funkce pro vyhledávání ať už fulltextového nebo dle atributů. Uživatel tak může najít informace bez potřeby znalosti jejich organizace nebo místa úložiště.BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.systemonline.cz/clanky/jste-pripraveni-na-enterprise-content-management.htmE nterprise CMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/types/enterprise-cms.html Web Content Management System Jedná se o systém pro podporu tvorby webového obsahu. Tomuto druhu CMS a jeho podrobnému popisu je věnována kapitola 2.3.3. Digital Asset Management Jedná se o nástroj sloužící k efektivní správě a zpracování grafických souborů, ke kontinuálnímu zpracování audio a video a jiných mediálních dat hledají marketingové organizace softwarové aplikace vytvořené speciálně pro správu digitálních informací. BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.systemonline.cz/clanky/jstepripraveni-na-enterprise-content-management.htmSpráva digitálních informací1 poskytuje obchodní přínos a návratnost investic pomocí inovačních metod organizace, distribuce a sledování digitálních i fyzických médií po vícečetných kanálech. BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 201301-01]. Dostupné z: http://www.systemonline.cz/clanky/jste-pripraveni-na-enterprisecontent-management.htm Navíc DAM poskytuje firmám schopnost přesunovat digitální obsah efektivně přes dodavatelský řetězec k procesům produkce, postprodukce a distribuce.BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.systemonline.cz/clanky/jste-pripraveni-na-enterprise-content-management.htm
1
Správa digitálních informací - Digital Asset Management (DAM)
1.1.1.WEB CMS Jedná se o jeden z nejvíce používaných druhů CMS. Umožňuje uživateli vytvářet, editovat, publikovat a také udržovat obsah webových stránek. Hlavní výhodou správy WCMS je, že je určen pro uživatele bez rozsáhlých znalostí. Přesun tvorby obsahu se tak přesunuje z IT na odborná oddělení, kde uživatelé mohou uploadovat, upravovat a odstraňovat obsah stránek pomocí předem definovaných šablon systému.Web CMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/types/web-cms/ Jednou z klíčových funkcí webů je navigace a vyhledávání. Vzhled konkrétních stránek nebo částí webu je definován prezentačními šablonami, ve kterých je rovněž určeno, jaké typy navigačních menu se budou používat a kde budou umístěny. Kvalita vyhledávacích komponent a použité mechanismy vyhledávání se liší systém od systému. Obvykle jsou možné kombinace fulltextového vyhledávání s prohledáváním klíčových slov a kategorií, řazením podle relevance nalezených záznamů apod. Aby vyhledávání skutečně fungovalo, je potřeba připravit koncepci rozdělení částí obsahu do kategorií a při vytváření dbát na to, aby každá část obsahu byla označena potřebnými metadaty a klíčovými slovy. S přibývajícím množstvím informací na webu se význam vyhledávání zvyšuje a stává se opravdu klíčovým. Špatně fungující vyhledávání na rozsáhlém webu významně degraduje jeho užitnou hodnotu pro uživatele a měnit koncepci kategorií, metadata a klíčová slova stovek či tisíců obsahových částí za běhu je velmi obtížné a nákladné. WCMS můžeme rozdělit podle toho, jakým způsobem systém zpracovává obsahWeb CMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/types/web-cms/: Offline processing systems Tento typ WCMS zpracovává obsah dříve, než je publikován na server. Uživatel může manipulovat s obsahem i v případě internetového výpadku. Jakýkoliv obsah, který byl uploadován do WCMS, není zveřejněn, dokud autor nebo editor nedá svolení k jeho publikaci. Ve výsledku je tento druh systému vhodný spíše pro menší skupinu uživatelů, kde jen omezené množství z nich má přístup k síti a stará se o publikaci webového obsahu. Mezi nejznámější offline WCMS patří Bricolage, CityDesk, Vignette a Adobe Contribute. Online processing systems Pokud se na správě digitálního obsahu podílí více uživatelů, je vhodnější vybrat online WCMS, který umožňuje přístup z libovolné lokality, kde je dostupné internetové připojení. Jednou z výhod online zpracování CMS je jeho rozšiřitelnost funkcionality v podobě doplňků, jako jsou galerie obrázků, fórum, wiki ablogy. Příkladem takovéhoto WCMS jsou Joomla, Drupal, Plone a Mambo.
Hybrid systems Systémy, které vznikly jako kombinace obou typů zmíněných WCMS. Předností toho systému je možnost využívat výhody offline i online zpracování obsahu.
2Redakční systémy Tato kapitola se zaměřuje na vysvětlení základních pojmů z oblasti redakčních systémů.
2.1.Charakteristika redakčních systémů Redakční systémy (RS) jsou součástí skupiny systémů pro správu webového obsahu. Hlavním rozdílem je jejich konkrétní zaměření a menší rozsah funkcí ve srovnání s robustními WCMS systémy. Funkce redakčních systémů slouží k jednoduchému publikování a pohodlnou editaci již existujících webových prezentací a jejich webového obsahu. Některé systémy však disponují takovými funkcemi, že je lze využít i při samotné tvorbě webových stránek. Redakční systém. ARTIC STUDIO [online]. 2011 [cit. 2013-0101]. Dostupné z: http://www.artic-studio.net/webove-stranky/redakcni-system/ V dnešní době je pod pojmem RS obvykle myšlen systém, který je dostupný skrz web rozhraní a umožní jednoduše spravovat články, fotografie, hudbu nebo video a další multimediální obsah. Systém má obvykle dvě části, které nazýváme uživatelská a správcovská. Podle odbornosti uživatele můžeme zajistit přístup k jedné nebo druhé části rozhraní a umožnit tak správu a úpravu obsahu našich stránek. Hlavním prvkem u redakčních systémů je jednoduchá ovladatelnost pro uživatele. Stejně jako u WCMS i RS poskytují a umožňují správu webového obsahu bez znalosti skriptovacích jazyků jako jsou PHP a ASP. Využívány jsou především pro tvorbu webových stránek, portálů, galerií, blogů, ale také pro tvorbu intranetových stránek firem. Redakční systémy se liší v počtu funkcí, které poskytují. Spousta z nich se programuje firmám dle jejich specifických potřeb a požadavků. Avšak je zde několik jasných prvků, které má většina společnéRedakční systémy. C4 [online]. 2012 [cit. 201301-01]. Dostupné z: http://navody.c4.cz/redakcni-systemy10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/Content Management System - CMS. JNetPublish [online]. 2010 [cit. 2013-01-01]. Dostupné z: http://www.jnetpublish.cz/cz/content-management-system/index.html: •
Decentralizovaná správa obsahu umožňuje prostřednictvím internetu nebo firemní sítě.
•
Tvorba a editace článků ve WYSIWYG editorech - uživatel pro tvorbu webového obsahu využívá WYSIWYG editory, u kterých není potřeba znát programovací jazyky.
•
Náhled umožňuje nahlížet na vytvořené stránky a vyprodukovaný obsah.
více
uživatelům
spravovat
web
•
Správa přístupových práv přiděluje práva, díky kterým má uživatel jasně daný seznam funkcí, které může v systému vykonávat (úprava dokumentů apod).
•
Přístup přes webový prohlížeč - údržba a internetové prezentace se dá provádět prostřednictvím internetu.
•
Provázanost příbuzných stránek umožňuje jednoduše provázat příbuzné stránky a tím usnadnit orientaci.
•
Publikace růných formátů dokumentů - uživatel může publikovat obsah ve formátu PDF, Docx, Excel apod.
•
Oddělení logické struktury, vzhledu a obsahu - obsah je strukturován do předem navržených šablon, které zajišťují jednotný vzhled celého webu.
•
Uchovávání verzí obsahu - v případě potřeby dává uživateli možnost vrátit se předchozí verzi obsahu.
•
Standartizace - při používání šablon pro tvorbu webové prezentace je dbáno na stejnorodé promítnutí stránek u různých typů prohlížeče.
1.1.Modulárnost redakčních systémů Převážná část redakčních systémů je navržena modulárně. To zaručuje možnost rozšiřování funkcí redakčního systému prostřednictvím dalších přídavných prvků. Přídavné moduly jsou navrženy většinou výrobcem RS a záleží jen na něm, jestli jsou zpoplatněny. Příkladem takového modulu může být diskusní fórum, chatovací místnost aj.
Obrázek 3.1 : Znázornění modularity redakčního systému
1.2.Přístup k redakčním systémům Provoz redakčních systémů je zajišťován prostřednictvím webových serverů. Uživatelé se přihlašují skrze webové aplikace a mají definovaná přístupová práva. Nahrávání
digitálního obsahu probíhá s pomocí webového prohlížeče nebo FTP. Obsah a všechny informace, které souvisejí s webovým obsahem, jsou ukládány v relačním databázovém systému.
1.3.Výhody užití redakčních systémů Redakční systémy přinášejí širokou škálu výhod v závislosti na výběru typu RS. V dnešní době rozlišujeme systémy freewarové, které jsou založené na platformě OpenSource. Jejich předností je dostupnost a možnost samostatné úpravy kódu podle potřeb uživatele. Další možností jsou komerční redakční systémy, které za určitý poplatek poskytují RS s předem daným množstvím funkcí.Redakční systém. ARTIC STUDIO [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.artic-studio.net/webove-stranky/redakcnisystem/ V případě rozšíření funkcionality RS je potřeba si zakoupit příslušný modul s požadovanou funkcí. Poslední populární variantou jsou proprietální redakční systémy navržené podle potřeb konkrétní společnosti.Správa webu - základní informace. Web 4 company [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.web4company.cz/sprava-webu-zakladni-informace/ V případě vhodně zvoleného RS si firma zajistí prostředek pro jednoduché spravování webových prezentací, který se jednoduše obsluhuje prostřednictvím webového prohlížeče. Dokumenty tak můžou editovat uživatelé z jakéhokoliv místa, kde je možnost připojení k internetu. K samotné tvorbě obsahu se využívají WYSIWYG 2Správa webu základní informace. Web 4 company [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.web4company.cz/sprava-webu-zakladni-informace/Redakční systém. ARTIC STUDIO [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.articstudio.net/webove-stranky/redakcni-system/editory, které nevyžadují po uživateli znalost značkovacích jazyků. Díky tomu odpadá často zdlouhavé přepisování HTML kódu. Stačí nahrát potřebný obsah prostřednictvím systému, který jej dále zobrazuje podle předem definovaných šablon. Odpadá taky nutnost odstavení celé webové prezentace při její editaci. Nespornou výhodou je i fakt, že řada redakčních systémů umožňuje sledování statistických dat, jako je návštěvnost stránek a statistika prodeje, které jsou nezbytností pro provoz internetových obchodů. Ve výsledku je tedy jasné, že dobře vybraný RS vede nejenom ke zvýšení efektivity práce, ale také k úspoře financí.Správa webu - základní informace. Web 4 company [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.web4company.cz/sprava-webu-zakladni-informace/Redakční systém. ARTIC STUDIO [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.articstudio.net/webove-stranky/redakcni-system/
1.4.Přehled dostupných redakčních systémů 2
Zkratka označuje způsob editace, při kterém je verze zobrazená na obrazovce vzhledově totožná s výslednou verzí dokumentu.
V této podkapitole se zaměřím na představení nejznámějších a nejpoužívanějších redakčních systémů. V následující tabulce (obrázek 3.2.) je uveden přehled základních volně dostupných redakčních systémů.
Obrázek 3.2. : Přehled volně dostupných redakčních systémůList of content management systems. Wikipedia, the free encyclopedia [online]. 2012 [cit. 2013-01-02]. Dostupné z: http://en.wikipedia.org/wiki/List_of_content_management_systems
1.4.1.Nejvíce využívané redakční systémy V dnešní době existuje celá řada redakčních systémů. Bez ohledu na to jaký druh webu uživatel tvoří, pravděpodobně už pro něj je vyvinut vhodný systém. Problémem většiny vývojářů a designérů je neochota učit se větší množství redakčním systémů. Dávají raději přednost flexibilním a výkonným systémům, které mohou používat na všechny své webové prezentace. 10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 201301-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/
1.4.1.1.WordPress
Obrázek 3.3. : WordPressWordPress. WORDPRESS - ČESKÁ PODPORA [online]. 2013 [cit. 2013-01-02]. Dostupné z: http://www.cwordpress.cz/ WordPress (WP) redakční systém je vyvíjen jako opensource projekt.10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/ Programátor tak má možnost upravovat jeho části a přizpůsobit si ho podle svých potřeb. Ve výsledku je WordPress mocným nástrojem pro tvorbu téměř jakéhokoliv webu. Toho také využívají stovky lidí a podílí se na jeho vývoji. Právě díky vysoce aktivní komunitě je velice snadné najít návody a informace o každé části vývoje WP. 10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/ Dříve se začlenění WordPress mezi redakční systémy považovalo za diskutabilní především kvůli jednoznačnému zaměření na tvorbu blogů. V dnešní době, kdy se WP může pomocí různých rozšiřujících modulů proměnit v internetový obchod či sociální síť, je tato debata zcela bezpředmětná.10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsichredakcnich-systemu-cms/
Silné stránky10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/ •
Rozsáhlá komunita vývojářů s velkým množstvím dokumentace a návodů k dispozici
•
Bezplatné a placené pluginy a specializovaná témata sloužící ke tvorbě různorodých webů.
•
Uživatelsky přívětivá nástěnka pro správu obsahu Slabé stránky10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/
•
Pro tvorbě jednoduchých webových prezentací je WP zbytečně složitý.
•
Instalace přináší bezpečnostní rizika. Bez dalších bezpečnostních opatření je WP zranitelný vůči útokům.
•
Slabá oficiální podpora 1.1.1.1.Joomla!
Obrázek 3.4. : Joomla!Co je Joomla!?. JOOMLAPORTAL ČESKÁ KOMUNITA [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.joomlaportal.cz/index.php/dotazy/co-jejoomla Joomla! je další ze skupiny velmi populárních RS. K tvorbě svých webů a webových aplikací ji využívají nejen jednotlivci, ale také malé a střední podniky a dokonce i velké významné společnosti po celém světě. Systém je vhodný také pro tvorbu back-endových
sítí, čehož využívá např. Citibank.10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsichredakcnich-systemu-cms/Co je Joomla!?. JOOMLAPORTAL ČESKÁ KOMUNITA [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.joomlaportal.cz/index.php/dotazy/co-je-joomlaPro RS Joomla! existuje také velké množství rozšiřujících modulů a díky aktivní komunitě, která má statisíce aktivních členů a přispěvatelů, jsou instalační a tutorialové dokumentace snadno k nalezení.10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/Co je Joomla!?. JOOMLAPORTAL ČESKÁ KOMUNITA [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.joomlaportal.cz/index.php/dotazy/co-je-joomla Silné stránky10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/ •
Autentizaci uživatelů lze mimo jiné provádět pomocí OpenID, Google a LDAP.
•
Více než 7000 rozšíření
•
Velmi aktivní uživatelská komunita a velké množství dokumentace k dispozici Slabé stránky10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/
•
Rozhraní není tak uživatelsky přívětivé jako u některých jiných redakčních systémů, ačkoliv je stále velmi použitelné.
•
Pro jednoduché stránky může být zbytečně pokročilý. 1.1.1.1.Drupal
Obrázek 3.4. : DrupalDrupal. Drupal [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://drupal.org/about Drupal pochází z rukou holandského studenta Driese Buytaetra, který jej vyvinul za účelem sdílení informací se svými kolegy. V dnešní době má na starosti vývoj Drupalu několik hlavních vývojářů a stovky dobrovolných přispěvatelů. Velkou předností Drupalu je vysoké množství vývojářů modulů. Díky nim jsou v dnešní době zaznamenány tisíce doplňujících modulů, které jsou k dispozici ke stažení.Drupal. Drupal [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://drupal.org/about Drupal má velmi aktivní komunitu s celou řadou kanálů IRC, fór a dokonce i osobních akcí. K dispozici je také dokumentace vytvořená komunitou, která se neustále aktualizuje a vylepšuje. Tato dokumentace obsahuje vše, co uživatel potřebuje vědět o instalaci, tvorbě webů a modulů, návrhu témat a dalším. Silné stránky10 nejlepších redakčních systémů (CMS). Interval.cz [online].
2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsichredakcnich-systemu-cms/ •
Robustní podpora komunity včetně kanálů IRC a osobních setkání
•
Více než 6 000 modulů, díky nimž je Drupal vysoce rozšiřitelný.
•
Velký počet společností, které nabízí komerční podporu systému Drupal. Slabé stránky10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/
•
Pro jednoduché weby může být zbytečně pokročilý.
•
Nedostatek kvalitních bezplatných a komerčních témat (několik jich existuje, ale ani zdaleka ne tolik jako pro jiné redakční systémy).
•
Systém vytváření témat je poměrně složitý.
1Analýza a návrh systému Tato kapitola je zaměřena na analýzu a návrh systému dle podmínek zadavatele.
1.1.Charakteristika Při archivaci bezpečnostních auditů firmy AEC dochází ke kupení jednotlivých dokumentů, které se zaměřují na popis výsledků testů bezpečnosti systémů. Systém se primárně zaměřuje na práci s již vytvořenými dokumenty a jeho náplní je zpracovat větší množství vstupních dokumentů a vytvořit jeden výstupní. Dokumentace je vždy ve formátu docx a má předem danou neměnnou strukturu. Cílem systému je automaticky vyparsovat části dokumentů (tzv. zranitelnosti) a uložit je v databázi. Zranitelnost popisuje části testovaných aplikací, kde může dojít k prolomení bezpečnostních ochran. Každý takový záznam je složen z atributů Risk, Skill, Application, Findings, Recommendation, Attachements a cílem aplikace je tyto záznamy evidovat a sestavit z nich nový dokument, kde budou přehledně strukturovány. Výhody, které tato aplikace poskytuje uživatelům, jsou nejlépe vidět na popsaném příkladu. Uvažujme situaci, kdy máme desítky dokumentů, které představují auditové zprávy. Z těchto dokumentů chce uživatel sestavit výsledný report všech míst v aplikaci, kde by mohlo dojít k narušení bezpečnosti. Při stávající situaci nedisponuje firma žádným nástrojem pro evidenci jednotlivých zranitelností dokumentu, a tudíž je potřeba procházet soubory „ručně“ a kopírovat jednotlivé zranitelnosti, což je velmi časově náročné a nespolehlivé. Při kopírování dokumentace také může dojít k rozhození formátu dokumentu a jeho další úprava stojí uživatele čas. V případě navržené aplikace stačí jednoduše nahrát soubory do systému a z jednotlivých vyparsovaných zranitelností pak sestavit nový dokument. Celkový proces nahrávání, parsování a nové generace dokumentace je tak otázkou několika minut. Ve výsledku tedy dochází k šetření uživatelského času, který je potřebný pro tvorbu auditačních souborů. Pro práci s dokumentací slouží decentralizovaný přístup, takže není problém s aplikací manipulovat z jakéhokoliv místa prostřednictvím internetového připojení. Při navrhování jsem zohlednil také komunikační potřeby uživatelů a přidal jednoduchý nástroj na tvorbu a zápis poznámek.
1.2.Datový model systému Datový pohled na celou aplikace je znázorněn pomocí ERD diagramu.(obrázek 4.1.)
Obrázek 4.1. : Datový model systému User Tato entita představuje konkrétní uživatelský účet. •
User_ID – primární klíč entity
•
Name – uživatelské jméno
•
E-mail – uživatelský e-mail
•
Password – heslo pro přihlášení do systému
•
Role – rozlišení, zda se jedná o běžného uživatele nebo administrátora Note Jedná se o poznámku, kterou User může zanechat v systému.
•
Note_ID – primární klíč entity
•
Created – datum vytvoření poznámky
•
Name – název poznámky
•
Text – text vytvořené poznámky
•
User_ID – jedná se o cizí klíč entity User, slouží k rozpoznání jakým uživatelem byla zpráva zanechána Audit
Představuje dokument, který je nahrán do systému. •
Audit_ID – primární klíč entity
•
Name – pojmenování souboru v systému
•
Created – datum přidání souboru do systému
•
Size – velikost souboru
•
HTML - HTML verze nahraného souboru pro potřeby parsování
•
Filename – původní název souboru v systému
•
Filename_saved – název souboru, pod kterým je uložen v systému
•
User_ID – jedná se o cizí klíč entity User, slouží k rozpoznání, jakým uživatelem byla zpráva zanechána Tag Označuje soubory pomocí klíčového slova nebo znaku. Na základě tohoto označení jsou dokumenty snadno dohledatelné v systému.
•
Tag_ID – primární klíč entity
•
Name – název tagu
•
Audit_ID – cizí klíč sloužící k identifikaci označeného dokumentu Vulnerability Jedná se o zranitelnost, která byla vyparsována z dokumentu.
•
Vul_ID – primární klíč entity
•
Risk_lvl – označení nebezpečnosti zranitelnosti
•
Name – název zranitelnosti
•
Risk – popis hrozícího rizika
•
Skill – míra znalosti a zkušenosti útočníka potřebná k vytvoření rizika
•
Application – aplikace, na které byl test prováděn
•
Findings – zjištění, že bylo nalezeno riziko
•
Recommendation – doporučení pro odstranění rizika
•
Attachements – přílohy
•
Audit_ID – cizí klíč sloužící k evidování, ze kterého dokumentu byla zranitelnost parsována
Popis vazeb mezi entitami Pro větší přehlednost při popisování vazeb uvedených na datovém modelu jsem u každé vazby uvedl číslo. 1 = (USER) vkládá daný (AUDIT) 2 = (USER) vkládá daný (NOTE) 3 = (AUDIT) parsuje danou (VULNERABILITY) 4 = (AUDIT) je označen daným (TAG)
1.1.UML model systému Ke znázornění funkční struktury jsou použity UML diagramy, které poskytují uživatelský pohled na systém, aniž by došlo k odhalení jeho vnitřní struktury. Vzhledem k tomu, že navržená aplikace slouží pouze k potřebám firmy AEC, jsou podle této skutečnosti přizpůsobeny a navrženy dvě uživatelské role: Uživatel Přihlašuje se do systému prostřednictvím webové aplikace, kde má přiděleno jméno a heslo. (obrázek 4.2) . Nemá nastavena žádná omezení a může tak přistupovat ke všem dokumentům a k databázi zranitelností. Každý editor tak může vykonávat úkony, které jsou popsány výše.
Obrázek 4.2. : Příhlášení do webové aplikace pro parsování dokumentace
Administrátor Administrátor upravuje a vytváří uživatelské účty.
1.1.1. Diagram funkcionality systému Úvodní diagram zachycuje rozčlenění funkcionality celého systému do čtyř částí (modulů). Na obrázku 4.2. jsou na diagramu zachyceny dvě uživatelské role: uživatel a administrátor. Uživatel obsluhuje všechny moduly systému vyjma správy uživatelů, kde má přístup pouze administrátor. Každý z jednotlivých modulů je namodelován a popsán níže.
Obrázek 4.3. : Diagram funkcionality systému
1.1.2.Správa dokumentů Diagram prezentuje rozvržení funkcí v modulu pro správu dokumentace. Uživatelské entity mohou přidávat nové dokumenty. Proces přidání v sobě zahrnuje parsování dokumentace, které se provádí při každém nahrání souboru, a možnost přidání tagů. Jakákoliv editace uloženého dokumentu (odstranění nebo tagování) vyžaduje výběr konkrétní položky, která má být upravena. Stejný postup je potřeba dodržet i při stahování souboru na disk. Pro lepší orientaci v zobrazených dokumentech mohou uživatelské entity využít funkci pro hledání.
Obrázek 4.4. : Diagram správy dokumentů
1.1.3.Správa zranitelností Modul správy zranitelností umožňuje uživatelským entitám pracovat s vyparsovanými zranitelnostmi. Mezi základní funkce patří vyhledávání v databázi zranitelností, zobrazení všech atributů vybrané zranitelnosti a její smazání. Poslední funkcí modulu je generování šablony. Vygenerovaný dokument v sobě obsahuje atributy vybrané zranitelnosti, z původní auditové zprávy.
Obrázek 4.5. : Diagram správy zranitelností
1.1.4.Správa poznámek Diagram pro správu poznámek zobrazuje rozvržení funkcí, které uživatelským entitám umožňují zanechání poznámek v systému, jejich zobrazení a také smazání. Pro poslední dvě ze zmíněných funkcí je vždy potřeba vybrat konkrétní poznámku, která má být zobrazena nebo smazána.
Obrázek 3.6. : Diagram správy poznámek
1.1.5.Správa uživatelů Jedná se o jediný modul v systému, do kterého uživatel nemá přístup. Diagram znázorňuje rozvržení funkcí pro správu uživatelských účtů. Administrátor může přidávat nové uživatele. Tento proces vyžaduje vytvoření nového uživatelského jména, nastavení funkce (uživatel, administrátor) a nastavení hesla. Pro potřeby změny uživatelských údajů slouží funkce pro úpravu. S jejím využitím lze znovu nastavit heslo případně změnit uživatelské jméno. V případě editace a mazání každého uživatelského účtu je potřeba vybrat daného uživatele ze seznamu.
Obrázek 4.7. : Diagram správy uživatelů
2Implementace aplikace Následující kapitola je zaměřena na popsání použitých technologií k implementaci systému.
2.1.Použité nástroje pro implementaci
2.1.1.Jazyk PHP PHP je skriptovací jazyk sloužící k vytváření dynamických webových stránek a aplikací. Při použití jsou skripty prováděny na straně serveru a k uživateli je tak přenášen až výsledek. PHP je nejrozšířenějším skriptovacím jazykem pro tvorbu webových prezentací. Oblíbeným se stal především díky jednoduchosti použití a bohaté zásobě funkcí.PHP. Wikipedie [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://cs.wikipedia.org/wiki/Php Díky své kvalitě se v dnešní době považuje za jeden z nejpoužívanějších programovacích jazyků pro tvorbu webových stránek a aplikací.PHP. Wikipedie [online]. 2012 [cit. 201301-01]. Dostupné z: http://cs.wikipedia.org/wiki/Php Syntaxe jazyka je inspirována několika programovacími jazyky (Pearl, C, Pascal a Java). PHP. Wikipedie [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://cs.wikipedia.org/wiki/Php Možnosti PHP PHP není nijak náročné na pochopení a už se základy si lze vystačit. Zajišťuje ukládání, změnu a mazání dat. Veškerá funkcionalita je realizována prostřednictvím webového serveru, kde jsou uloženy zdrojové kódy webových stránek. PHP skript se nejprve provede na serveru a potom odešle prohlížeči pouze výsledek (znamená to, že nejprve spočítá kolik je 300/30, a pak prohlížeči odešle jen číslo 10). Proto ve zdrojovém kódu najdete jen "10" (to je rozdíl oproti JavaScriptu, který počítá přímo v prohlížeči). Pomocí PHP je možné vytvořit diskusní fórum, knihu návštěv, počítadlo, anketu, graf a dokonce je možno pomocí jednoduchého kódu zlikvidovat celý obsah webu. Navíc je možnost propojit vaše stránky s databázemi, např. MySQL. PHP. Tvorba-Webu.cz [online]. 2008 [cit. 2013-01-01]. Dostupné z: http://www.tvorba-webu.cz/php/ Instalace
PHP je jazyk, který si nevystačí jen s prohlížečem určité verze (třeba jako HTML nebo JavaScript), ale je nutné ho na počítač nainstalovat. K podpoře PHP je třeba instalovat a konfigurovat server, obvykle Apache. Nejlepší je využít k instalaci PHP program PHP Triad, který vše sám nainstaluje.PHP. Wikipedie [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://cs.wikipedia.org/wiki/Php
2.1.2.MySQL MySQL je jeden z nejvyužívanějších databázových systémů na světě. Původně byl vytvořen švédskou firmou MySQL AB a dnes je ve vlastnictví společnosti Sun Microsystems. Jedná se o multiplatformní databázi založenou na principech jazyka SQL. MySQL bylo od počátku zaměřeno především na rychlost, a to i za cenu některých zjednodušení. Dlouhou dobu nebyly podporovány databázové prvky jako pohled, trigger a uložená procedura. Tyto vlastnosti jsou doplňovány až v posledních letech, kdy začaly nejčastějším programátorům webových stránek již poněkud scházet. MySQL je v dnešní době dostupný s bezplatnou nebo komerční placenou licencí. Právě díky volné šiřitelnosti, jednoduchosti a výkonu má vysoký podíl na používaných databázích.
2.1.3.Nette Jedná se o objektově orientovaný PHP framework zaměřený na rychlou a bezpečnou tvorbu webové aplikace. V roce 2004 bylo vyvinuto Davidem Grudlem, avšak pro širokou veřejnost byla uvolněna až verze 0.7 v roce 2008. První možnost zhlédnout framework měla veřejnost na konferenci PHP Frameworky 2007 na ČVUT David Grudl: konference PHP frameworky 2007. pla.nette.org [online]. 2007 [cit. 2013-01-01]. Dostupné z: http://pl a.nette.org/cs/php-frameworky-2007-david-grudl-nette-poprve. Nette využívá tzv. architekturu MVC (Model-View-Controller,), resp. MVP (Model-View-Presenter), díky kterému je možné aplikace vyvíjet přehledně a odděleně. MVP architektura rozděluje aplikační logiku do 3 vrstev: Model Jedná se o datový základ celé aplikace. Je v něm obsažena aplikační logika. Jakákoli akce uživatele představuje akci modelu (přihlášení, modifikace dat a jejich zobrazení). Model si spravuje svůj vnitřní stav a ven nabízí pevně dané rozhraní. Voláním funkcí modelu můžeme měnit jeho stav.Model-view-controller. Wikipedie [online]. 2012 [cit. 2013-0101]. Dostupné z: http://cs.wikipedia.org/wiki/Model-view-controller View Vrstva view zajišťuje zobrazení výsledku požadavku. Může s ní pracovat i programátor opět zcela nezávisle na ostatních vrstvách aplikace.
Presenter
Řadič, který zpracovává požadavky uživatele, na jejichž základě volá operace modelu, jejichž výsledky poté posílá k zobrazení do vrstvy view se nazývá presenter. Model-viewcontroller. Wikipedie [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://cs.wikipedia.org/wiki/Model-view-controller Přednosti a odlišnost vůči jiným frameworkům Nette podporuje AJAX, DRY (don’t repeat yourself), KISS (keep it simple, stupid) a znovu použitelnost kódu. Je psán nikoli akademickým stylem jako například framework Symfony Symfony. Symfony [online]. 2012 [cit. 2013-01-02]. Dostupné z: http://symfony.com/legacy, ale stylem praktickým, lidským a srozumitelným. Zároveň však zahrnuje již zmíněné dovednosti, praktičnost tedy není dána na úkor bezpečnosti. Příkladem DRY a KISS jsou komponenty, tedy určité samostatné cely kódu, které se starají o určitou ucelenou činnost a které lze snadno použít a implementovat s kompatibilní verzí Nette. Takovým příkladem může být komponenta pro kontaktní formulář, která se postará o vytvoření formuláře, jeho zobrazení, nastavení obsahu odesílaného emailu, odesílání emailu a zobrazení informace uživateli o úspěšném odeslání. Všechny tyto funkce lze zahrnout do ContactFormComponent, jejíž individuální implementace obnáší pouze cca 10 řádků. Komunita tak snadno může vytvářet a sdílet řešení pro různé situace, která se při vytváření webových aplikací často opakují. Po pochopení základních principů lze snadno začít vyvíjet vlastní framework nad Nette. Díky své přehlednosti, praktičnosti a zaměřením na doplňky a komponenty Nette cestu vlastního frameworku velmi usnadňuje, viz Frameworky nad Nette CMS a frameworky nad Nette. Pla.nette.org: nette framework [online]. 2008 [cit. 2013-01-02]. Dostupné z: http://pla.nette.org/cs/cms-a-frameworky-nad-nette. Mezi první tyto frameworky patří Nella od Patrika Votočka a Kdyby od Filipa Procházky.
2.1.4.PHPdocx Pro účely tvorby zadané práce jsem vybral freewarovou variantu PHP frameworku PHPdocx. Framework umožňuje extrakci dat z libovolné databáze a jejich export do používaných formátů (např. PDF, DOC, HTML, ODT aj.). PHPdocx poskytuje také velkou řadu funkcí pro dynamickou tvorbu a úpravu textu a hlavně má funkce pro převod dokumentu z formátu .docx na HTML, což byl klíčový faktor při výběru.PHPdocX. PHPDOCX [online]. 2009 [cit. 2013-01-01]. Dostupné z: http://www.phpdocx.com/
2.1.5.Twitter Bootstrap Twitter Bootstrap je nástroj určený pro rychlou tvorbu webových aplikací. Zahrnuje v sobě CSS a HTML nástroje pro vytváření gridů, layoutů, typografie, tabulek, formulářů,
navigace apod. Bootstrap. BOOTSTRAP [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://twitter.github.com/bootstrap/
2.2.Seznam klíčových funkcí implementováneho systému Následující metoda popisuje klíčové funkce systému a způsob jejich implementace. Přidání dokumentu Pro zavádění nových dokumentů slouží třída AuditPresenter, která pomoci metody createComponentUploadAuditForm()vytváří nový formulář pro nahrání dokumentu. V tom uživatel zadává povinné atributy Name představující jméno souboru a File reprezentující vybraný soubor. Metoda processUploadAuditForm(Form $form)se pak stará o kontrolu správnosti formátu dokumentu, jeho převedení do formátu HTML a volání funkce parsování extractDataFromAudit($data, $id). Soubor je poté uložen do databáze. Generování seznamu dokumentů je realizováno metodourenderDefault(). Parsování dokumentů Jednou ze stěžejních funkcí aplikace je parsování zranitelností a jejich evidence v databázi. Tato funkce je složena z několika kroků. Nejdříve se celý dokument převádí z formátu docx do HTML, tento převod je realizován při nahrávání dokumentu metodou processUploadAuditForm(Form $form).
O samotný proces parsování se stará metoda extractDataFromAudit($data, $id). HTML verze je očištěna od přebytečných znaků definující styl dokumentu. Výsledný obsah se prohledává na základě klíčových slov „Identified vulnerabilities“ a jejich českého ekvivalentu „Nalezené zranitelnosti“. To zajistí nalezení potřebných kapitol. Každý nalezený záznam z množiny je separován od ostatních částí textu. Separovaný text je dále rozdělen podle spojení „A-Nadpis-3-H“, které představuje označení nadpisů třetí úrovně v HTML dokumentu. Ve výsledku tedy máme podmnožinu všech částí kapitoly s označením Identified Vulnerabilities, které začínají nadpisem třetí úrovně. Z těchto částí jsou pak metodou extractVulnerability($data) parsovány a ukládány konkrétní atributy jednotlivých zranitelností. Nezbytným předpokladem pro správnou funkci těchto úkonů, je dodržování jednotných pravidel formátování textu. Zadavatelem práce byla poskytnuta textová šablona, která posloužila pro přesné nastavení parsovací funkce. Zadavatel se také zaručuje, že veškerá dokumentace bude dodržovat stejné formátovací zásady jako vzorová šablona. (viz přílohy) Generování šablony
Tato funkce umožňuje generování nového dokumentu ve formátu docx, který obsahuje zranitelnosti vybrané z databáze. Metody pro provedení jsou implementovány ve třídě VulnerabilityPresenter. Pro vygenerování nového dokumentu je vždy potřeba vybrat, zranitelnosti, které v něm mají být obsaženy. Tvorba textu je pak řízena metodou generateDoc(NotORM_Result $result). Při generování textu jsou použity údaje uložené v databázi zranitelností. Výsledný text je převeden do formátu docx a umístěn ke stažení. Tagování Pro lepší vyhledávání v seznamu dokumentů slouží funkce tagování. Jedná se o přiřazení klíčového slova nebo znaku k dokumentu. Na základě tohoto slova je možné dokument dohledávat. Možnost přiřazení jednotlivých tagů je uživatelům aplikace nabízena při nahrávání nových souborů a později je zahrnuta jako editační položka menu. Metody pro přídávání jednotlivých tagů jsou implementovány ve třídě AuditPresenter pomocí metody saveTags($tags, $id). Přidání poznámky Slouží k jednoduchému zanechání zprávy pro ostatní uživatele. Nástroje pro přidání jsou implementovány ve třídě NotePresenter. Pro přidání poznámky slouží formulář pro přidání, který tvoří metodacreateComponentNoteForm(). Formulář je zpracován metodou processNoteForm(Form $form)a výsledek je uložen do databáze. Přidání uživatele a jeho úprava Funkce sloužící ke správě uživatelských účtů. Definuje nové uživatele aplikace, jejich uživatelské jméno, heslo a přiřazuje roli. U stávajících uživatelů může měnit jejich heslo, odebírat je ze systému nebo jim upravit roli. Metody pro správu účtů jsou implementovány ve třídě UserPresenter. Pro zadání uživatelských atributů slouží metoda createComponentUserForm(), která vytváří potřebný formulář. Samotný proces uložení uživatele do databáze obstarává metoda processUserForm(Form $form).
3Závěr Hlavním cílem bakalářské práce bylo navrhnout webovou aplikaci redakčního systému pro správu dat se zaměřením na parsování částí auditačních dokumentů. Před začátkem návrhu systému bylo zapotřebí podrobně nastudovat princip a funkce CMS. Nastudované poznatky jsem využil k vyhotovení teoretické části této práce. Pro tvorbu vlastního systému bylo nezbytné ujednání, jakým způsobem budou vstupní dokumenty strukturovány a formátovány. V průběhu implementace systému jsem došel ke zjištění, že nedodržení formátování vede k produkci nesprávných výsledků parsování. Na tomto základě byla ve spolupráci s firmou AEC navržena šablona, jejíž
strukturu formátování se firma zavázala striktně dodržovat. Forma této šablony byla oběma stranami schválena a mohla tak posloužit jako klíčový prvek pro nastavení parsovacích funkcí systému. Výsledný systém funguje jako webová aplikace. Řešení systému zahrnuje možnost parsování dokumentů a generování reportů jednotlivých zranitelností. Firmě tak je poskytnut nástroj, který umožňuje z velkého množství vstupní dokumentace, vytvořit jednotný textový soubor obsahující klíčové části parsovaných dokumentů. Systém slouží také k evidenci a ukládání dokumentů a je navržen tak, aby splňoval základní požadavky zadavatele. Funkčnost aplikace byla ověřena na testovacích dokumentech. Data v souborech byla pro účely bakalářské práce nahrazena testovacím obsahem. Navržený systém pracuje pouze se vstupními daty, které poskytuje zadavatel práce a nepodporuje přímé psaní nové dokumentace ani editaci textu uložených souborů. Tyto funkce je možné doplnit prostřednictvím přídavných modulů. Vzhledem k potřebě přístupů všech uživatelů k veškerým datům aplikace byla správa uživatelů navržena jen okrajově. V případě dalšího rozšiřování systému nebo jeho implementace do interních systémů firmy je třeba počítat i s rozšířením struktury uživatelských rolí.
4Seznam použité literatury
[1] 10 nejlepších redakčních systémů (CMS). Interval.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://interval.cz/clanky/10-nejlepsich-redakcnich-systemu-cms/ [2] Bootstrap. BOOTSTRAP [online]. 2012 http://twitter.github.com/bootstrap/
[cit.
2013-01-01].
Dostupné
z:
[3] BRABEC, Milan. Jste připraveni na Enterprise Content Management?. Systemonline.cz [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.systemonline.cz/clanky/jste-pripraveni-na-enterprise-contentmanagement.htm [4] CMS a frameworky nad Nette. Pla.nette.org: nette framework [online]. 2008 [cit. 2013-0102]. Dostupné z: http://pla.nette.org/cs/cms-a-frameworky-nad-nette [5] CMS. CMS.co.uk [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.cms.co.uk/cms.html [6] Co je Joomla!?. JOOMLAPORTAL ČESKÁ KOMUNITA [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.joomlaportal.cz/index.php/dotazy/co-je-joomla [7] Content Management System - CMS. JNetPublish [online]. 2010 [cit. 2013-01-01]. Dostupné z: http://www.jnetpublish.cz/cz/content-management-system/index.html [8] Content management. Wikipedia, the free encyclopedia [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://en.wikipedia.org/wiki/Content_management [9] David Grudl: konference PHP frameworky 2007. pla.nette.org [online]. 2007 [cit. 201301-01]. Dostupné z: http://pla.nette.org/cs/php-frameworky-2007-david-grudlnette-poprve [10]Drupal. Drupal [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://drupal.org/about [11]Enterprise CMS. CMS.co.uk [online]. 2012 [cit. http://www.cms.co.uk/types/enterprise-cms.html
2013-01-01].
Dostupné
z:
[12]Enterprise content management. Wikipedia, the free encyclopedia [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://en.wikipedia.org/wiki/Enterprise_content_management [13]List of content management systems. Wikipedia, the free encyclopedia [online]. 2012 [cit. 2013-01-02]. Dostupné z: http://en.wikipedia.org/wiki/List_of_content_management_systems [14]Mobile CMS. CMS.co.uk [online]. 2012 [cit. http://www.cms.co.uk/types/mobile-cms.html
2013-01-01].
Dostupné
z:
[15]Mobile content management system. Wikipedia, the free encyclopedia [online]. [cit. 201301-01]. 2010 Dostupné z: http://en.wikipedia.org/wiki/Mobile_content_management_system [16]Mobile content management system. Wikipedia, the free encyclopedia [online]. 2010 [cit. 2013-01-01]. Dostupné z: http://en.wikipedia.org/wiki/Mobile_content_management_system [17]Model-view-controller. Wikipedie [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://cs.wikipedia.org/wiki/Model-view-controller [18]PHP. Tvorba-Webu.cz [online]. 2008 [cit. 2013-01-01]. Dostupné z: webu.cz/php/
http://www.tvorba-
[19]PHP. Wikipedie [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://cs.wikipedia.org/wiki/Php [20]PHPdocX. PHPDOCX [online]. http://www.phpdocx.com/
2009
[cit.
2013-01-01].
Dostupné
z:
[21]Redakční systém. ARTIC STUDIO [online]. 2011 [cit. 2013-01-01]. Dostupné z: http://www.artic-studio.net/webove-stranky/redakcni-system/ [22]Redakční systémy. C4 [online]. 2012 http://navody.c4.cz/redakcni-systemy
[cit.
2013-01-01].
Dostupné
z:
[23]ROBERTSON, James. So, what is a CMS?. Step Two DESINGS [online]. 2003 [cit. 201301-01]. Dostupné z: http://www.steptwo.com.au/papers/kmc_what/index.html [24]Správa webu - základní informace. Web 4 company [online]. 2012 [cit. 2013-01-01]. Dostupné z: http://www.web4company.cz/sprava-webu-zakladni-informace/ [25]Symfony. Symfony [online]. http://symfony.com/legacy
2012
[cit.
2013-01-02].
Dostupné
z:
[26]systému Drupal. Drupal.cz [online]. 2012 http://www.drupal.cz/o-systemu-drupal [27]Types
of CMS. CMS.co.uk [online]. http://www.cms.co.uk/types/
2012
[28]Web
CMS. CMS.co.uk [online]. 2012 http://www.cms.co.uk/types/web-cms/
[cit.
[cit.
[cit.
2013-01-01].
Dostupné
z:
2013-01-01].
Dostupné
z:
Dostupné
z:
2013-01-01].
[29]WordPress. C4 [online]. 2012 http://navody.c4.cz/wordpress
[cit.
2013-01-01].
Dostupné
z:
[30]WordPress. C4 [online]. 2012 http://navody.c4.cz/wordpress
[cit.
2013-01-01].
Dostupné
z:
[31]WordPress. WORDPRESS - ČESKÁ PODPORA [online]. 2013 [cit. 2013-01-02]. Dostupné z: http://www.cwordpress.cz/
1Přílohy K této bakalářské práci je přiložen kompaktní disk s následujícím obsahem: •
Text bakalářské práce ve formátech docx, ODT a PDF.
•
Zdrojový kód systému bakalářské práce.
•
Testovácí dokumenty pro testování aplikace.
•
Vzorová šablona, podle které bylo nastaveno parsování.