• Nebyly nalezeny žádné výsledky

Testy nad vrstvou Model

5.7 Testování nově vyvinutého modulu

5.7.2 Testy nad vrstvou Model

Tato vrstva - jak již bylo zmíněno výše - nám umožňuje komunikaci s databází.

Funkce po zavolání provedou MySQL příkaz nad databází a vrací výsledky k výpisu. Pro testování MySQL příkazů bylo použito aplikaci phpMyAdmin 3.3.9. Byla vytvořena malá testovací databáze, abychom mohli porovnávat výsledky všech příkazů.

6 Z

ÁVĚR

V této práci jsme se snažili vyzdvihnout základní vlastnosti systému MODx a hlavně jeho všestrannost použití. S ohledem na požadavky v zadání práce byl vytvořen jen nástin jeho možností, který však nepostačuje ke komplexní práci se systémem MODx.

Představili jsme si všechny komponenty MODx-u a ukázali dva způsoby, jak s ním pracovat při vytváření webových aplikací.

Dále jsme dle zadání vytvořili rozšiřující modul pro evidenci témat, na kterém jsme provedli demonstraci základních pravidel pro vývoj doplňků, která je třeba dodržovat při práci pro web KIVu. Testování modulu bylo provedeno na datech, která byla získána zkonvertováním dat z dřívější verze aplikace.

Testováním bylo zjištěno, že navržený produkt je plně funkční a bez větších úprav jej lze aplikovat v praxi.

P

OUŽITÉ POJMY A ZKRATKY AJAX Asynchronous JavaScript and XML BSD Berkeley Software Distribution CMF Content Management Framework

CMS Content Management System, překlad doslova: Systém pro správu obsahu, někdy se používá název redakční systém nebo publikační systém

E-R-A Entity-Relationship-Attribute GPL General Public License

HTTP 404 chybový kód, který se vrací po nenalezení stránky KIV Katedra informatiky a výpočetní techniky

MIT Licence, která vznikla na Massachusetts Institute of Technology MVC Model-View-Contrroler

ORB Object-relational bridge

SEO Search Engine Optimization, tedy optimalizace pro vyhledávače SQL Structured Query Language

URL Uniform Resource Locator

WEB World Wide Web (www) se někdy zkracuje jako: web; v této práci je ale zkratka použita ve významu: internetová stránka

WYSIWYG What You See Is What You Get, tedy editor, který převádí vzhled dokumentu na formátovací značky

xPDO eXtension PDO

XSS Cross-site scripting je metoda narušení WWW stránek využitím bezpečnostních chyb ve skriptech

Z

DROJE

K této kapitole je třeba podotknout, že MODx je systém relativně nový a byl začleněn do trhu, plného již starších a dobře fungujících CMS. To je zřejmě hlavní důvod, proč ještě nevznikla žádná česky psaná publikace na téma MODx-u. V období vzniku tohoto dokumentu existovaly knihy pouze 3. Jedna je psána japonsky a další 2 psané anglicky. S ohledem na jejich vysokou cenu jsou pro studenta vysoké školy nedostupné.

Nicméně pan Bob Ray, který vydal poslední známou publikaci o systému MODx, zveřejnil část podstatných informací ze své knihy na svém blogu http://bobsguides.com/. Z toho bylo v tomto dokumentu často čerpáno.

[1] Co je CMS / Redakční systém? CMSSystémy [online]. [cit. 2011-12-20].

Dostupné z: http://www.cms-systemy.cz/o--portali/co-je-cms-redakcni-system--/

[2] Systém pro správu obsahu. Wikipedie: otevřená encyklopedie [online].

2001-2012 [cit. 2011-12-20]. Dostupné z:

http://cs.wikipedia.org/wiki/Syst%C3%A9m_pro_spr%C3%A1vu_obsahu [3] List of content management systems. Wikipedia: the free encyclopedia

[online]. 2001-2012 [cit. 2011-12-20]. Dostupné z:

http://en.wikipedia.org/wiki/List_of_content_management_systems

[4] MODx. In: Wikipedia: the free encyclopedia [online]. 2001-2012 [cit. 2011-12-20]. Dostupné z: http://en.wikipedia.org/wiki/MODx

[5] Background. MODx [online]. 2005-2012 [cit. 2011-12-20]. Dostupné z:

http://modx.com/about/media-center/background/

[6] Czech translation. MODx [online]. 2005-2012 [cit. 2011-12-20]. Dostupné z:

http://forums.modx.com/thread/51175/czech-translation-0-6

[7] MODX Evolution. MODx [online]. 2005-2012 [cit. 2011-12-20]. Dostupné z:

http://modx.com/software/open-source-cms/modx-evolution/

[8] MODX Revolution. MODx [online]. 2005-2012 [cit. 2011-12-20]. Dostupné z:

http://modx.com/software/open-source-cms/modx-revolution/

[9] Tag Syntax. MODx Documentation [online]. 2005-2012 [cit. 2011-12-20].

Dostupné z: http://rtfm.modx.com/display/revolution20/Tag+Syntax

[10] The MODx CMS. Bob's Guides [online]. 2011 [cit. 2011-12-20]. Dostupné z:

http://bobsguides.com/modx.html

[11] How MODx Templates Work. MODx From the Inside [online]. 2008-2012 [cit. 2011-12-20]. Dostupné z: http://sottwell.com/how-templates-work.html

[12] Resources. MODx Documentation [online]. 2005-2012 [cit. 2011-12-20].

Dostupné z: http://rtfm.modx.com/display/revolution20/Resources

[13] Templates. MODx Documentation [online]. 2005-2012 [cit. 2011-12-20].

Dostupné z: http://rtfm.modx.com/display/revolution20/Templates

[14] Template Variables. MODx Documentation [online]. 2005-2012 [cit.

2011-12-20]. Dostupné z:

http://rtfm.modx.com/display/revolution20/Template+Variables

[15] Creating a Template Variable. MODx Documentation [online]. 2005-2012

[cit. 2011-12-20]. Dostupné z:

http://rtfm.modx.com/display/revolution20/Creating+a+Template+Variable [16] Chunks. MODx Documentation [online]. 2005-2012 [cit. 2011-12-20].

Dostupné z: http://rtfm.modx.com/display/revolution20/Chunks

[17] MODx Chunks. Bob's Guides [online]. 2011 [cit. 2011-12-20]. Dostupné z:

http://bobsguides.com/modx-chunks.html

[18] Snippets. MODx Documentation [online]. 2005-2012 [cit. 2011-12-20].

Dostupné z: http://rtfm.modx.com/display/revolution20/Snippets

[19] MODx Snippets. Bob's Guides [online]. 2011 [cit. 2011-12-20]. Dostupné z:

http://bobsguides.com/modx-snippets.html

[20] Category:Snippets. MODx Wiki [online]. 2008 [cit. 2011-12-20]. Dostupné z:

http://wiki.modxcms.com/index.php/Category:Snippets

[21] Plugins. MODx Documentation [online]. 2005-2012 [cit. 2011-12-20].

Dostupné z: http://rtfm.modx.com/display/revolution20/Plugins

[22] System Events. MODx Wiki [online]. 2011 [cit. 2012-02-05]. Dostupné z:

http://wiki.modxcms.com/index.php/System_Events

[23] Object-relational mapping. Wikipedia: the free encyclopedia [online]. 2012 [cit. 2012-02-05]. Dostupné z: http://en.wikipedia.org/wiki/Object-relational_mapping

[24] XPDO 2.0. MODx Documentation [online]. 2005-2012 [cit. 2012-02-05].

Dostupné z: http://rtfm.modx.com/display/xPDO20/Home

[25] API. MODx Documentation [online]. 2005-2012 [cit. 2012-02-05]. Dostupné z: http://api.modx.com/revolution/2.1/

[26] VersionX. MODx Documentation [online]. 2012-01-23 [cit. 2012-04-13].

Dostupné z: http://rtfm.modx.com/display/ADDON/VersionX

[27] Moving Your Site to a New Server. MODx Documentation [online].

2011-12-30 [cit. 2012-04-13]. Dostupné z:

http://rtfm.modx.com/display/revolution20/Moving+Your+Site+to+a+New+

Server

[28] WebKiv. Wiki KIVu [online]. 2006 [cit. 2012-04-22]. Dostupné z:

http://wiki.kiv.zcu.cz/WebKiv/HomePage

[29] Katedra Informatiky a výpočetní techniky [online]. [cit. 2012-04-22].

Dostupné z: http://www.kiv.zcu.cz/

[30] Tablesorter: JQuery plugin [online]. [cit. 2012-04-23]. Dostupné z:

http://tablesorter.com/docs/

[31] BORONCZYK, Timothy, Elizabeth NARAMORE, Jason GERNER, Yann Le SCOUARNEC, Jeremy STOLZ a Michael K. GLASS. PHP 6, MySQL, Apache:

Vytváříme webové aplikace. Brno: Computer Press, a.s., 20011. ISBN 978-80-251-2767-4

[32] JQuery Cookbook: Solutions & Examples for jQuery Developers. United States of America: O'Reilly Media, Inc., 2009. ISBN 978-0-596-15977-1.

.

P

ŘÍLOHA

A - Z

ÁKLADNÍ A BĚŽNĚ POUŽÍVANÁ ŠABLONA

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">

<head><!-- ščřžýŠČŘŽÝ -->

<meta name="description" content="[[*description]]"/>

<!-- vlastnost dokumentu -->

<base href="[[!++site_url]]" /> <!-- nastavení systému -->

<title>[[++site_name]] - [[*pagetitle]]</title>

<!-- vlastnost dokumentu -->

</head>

<body>

<div id="page_whole">

<div id="page_left_menu">

<div id="flag">

[[BabelLinks]] <!-- snippet -->

</div> <!-- end of flag -->

[[!Wayfinder? &level=`3` &rowTpl=`cssplay_row`]]

<!-- necachovaný snippet s parametry -->

</div> <!-- end of page_left_menu -->

<div id="page_right_content">

[[*content]] <!-- vlastnost dokumentu -->

</div> <!-- end of page_right_content -->

<div id="page_footer">

[[$footer]] <!-- chunk -->

</div>

</div> <!-- end of page_whole -->

</body>

</html>

P

ŘÍLOHA

B - U

ŽIVATELSKÁ DOKUMENTACE

Modul byl stavěn s největším důrazem na jednoduchost ovládání a na intuitivní pohyb v něm pro každého uživatele.

B.1 P

O ŽAD AV KY

Modul je funkční v každé instalaci MODx-u Revolution 2.1.3-pl a novější (starší verze nebyly testovány) a systémové požadavky na nejnovější verzi Revolution 2.2.1-pl jsou:

• Apache 2.2 nebo IIS7

• MySQL 5.1

• PHP 5.3 (s povoleným PDO)

Je možné se v praxi setkat s nutností nestandardního nastavení serveru, kde je třeba mimo jiné vypnout funkci safe_mode. Proto není pro instalaci MODx-u vhodný každý webhostingový poskytovatel a je dobré si před instalací zjistit požadavky aktuální verze MODx-u a nabídky a možnosti poskytovatelů.

B.2 I

NST ALACE

Tento krok je určen jen pro administrátora stránek!

Pro instalaci systému MODx navštivte prosím oficiální stránky výrobce. Tento návod se týká pouze instalace zde popisovaného doplňkového modulu.

Složky se zdrojovými soubory ze složky rozsirujici_modul_temata_praci na přiloženém CD stačí překopírovat do kořenového adresáře MODx-u a do instalace doplnit všechny dokumenty a elementy, zobrazené na následujících obrázcích B.1 a B.2.

Strom dokumentů a elementů vypadá následovně (v kategorii edit jsou dokumenty, spadající pod zaheslovanou část aplikace):

Obrázek B.1 - Strom dokumentů. Obrázek B.2 - Strom elementů.

Na obrázku B.2 stojí za povšimnutí, že aplikace ke svému provozu potřebuje pouze jeden snippet „include“ a jednu šablonu (v tomto případě pojmenovanou „Úvodní filtr“).

Snippet „include“ i s jeho zdrojovým kódem jsou popsány v kapitole 4.9.

Povinným parametrem každého dokumentu je název a URL alias. Atribut „název“ se zobrazuje ve výstupu, ale nijak nezasahuje do funkčnosti aplikace. Zatímco URL alias musí být nastaven přesně dle výpisu níže. I při malé syntaktické chybě nebude fungovat většina odkazů v celém modulu. Do obsahu každého dokumentu musí být vepsána jedna řádka a ta musí striktně souhlasit:

- Témata KIV (URL alias = „temata“):

[[!include?

&file=`plugins/plugins_ready/tema_simple/tema_simple.inc.php`]]

- Detail tématu (URL alias = „detail-tematu“):

[[!include?

&file=`plugins/plugins_ready/tema_simple/tema_simple_detail.inc.php`]]

- Správa témat projektů (URL alias = „sprava-temat-projektu“):

[[!include?

&file=`plugins/plugins_ready/tema_simple/edit/tema_edit_all.inc.php`]]

- Přidat nové téma (URL alias = „pridat-nove-tema“):

[[!include?

&file=`plugins/plugins_ready/tema_simple/add/tema_add.inc.php`]]

- Editovat téma (URL alias = „editovat-tema“):

[[!include?

&file=`plugins/plugins_ready/tema_simple/edit/tema_edit_one.inc.php`]]

Všechny aliasy je možné změnit. Tato změna se ale musí provést navíc i v souboru /rozsirujici_modul_temata_praci/plugins/plugins_ready/tema_simple/tema_settings.inc.

php, který obsahuje proměnné nastavení. V tomto souboru je pak třeba nastavit i údaje pro přihlášení do databáze!

Po tomto nastavení databáze MODx-u a zdrojových souborů je ještě třeba doplnit data do databáze. To provedeme importem MySQL souboru rozsirujici_modul_temata_praci/kiv_tema_simple_db.sql, přiloženým na CD.

Po provedení všech výše zmíněných akcí a nastavení bude modul fungovat.

B.3 P

ŘE HLED FUNK CÍ

B.3. 1 PR Á C E S M O D U L E M V R O L I S T U D E N T A

Student má možnosti listovat v seznamu témat, filtrovat ho a číst si jejich detaily jednotlivých témat.

Filtrovací formulář má jednoznačně pojmenované položky, jediné co stojí za vysvětlení, je položka určující původ vzniku. Téma může být vypsané externím subjektem (právnickou nebo i fyzickou osobou) nebo může být vypsané interně, tzn. zaměstnancem KIVu.

Po vybrání konkrétního tématu se zobrazí detail, a pokud je to detail volného tématu, zobrazí se zde i rezervační formulář.

Rezervace tématu:

Rezervace proběhne vyplněním jednoduchého formuláře, zobrazeného na obrázku B.3. Kontrola formuláře probíhá pouze testem na prázdná pole, takže pokud bude zadána chybná e-mailová adresa, garant tématu nebude mít potřebný kontakt na zájemce. Je tedy v zájmu zájemce, vypsat data odpovídající realitě.

Po odeslání formuláře přijde garantovi e-mail s informacemi o zájemci.

Obrázek B.3 - Rezervační formulář.

B.3. 2 PR Á C E S M O D U L E M V R O L I Z A D A V A T E L E

Zadavatel má práva téma vypsat, zadat, označit za dokončená, popřípadě i smazat.

Veškeré změny smí provádět pouze na svých tématech.

Hromadná úprava vlastních témat:

Obrázek B.4 - Odkaz na hromadnou úpravu témat.

Přes odkaz dole na hlavní stránce témat „úpravy témat“ (který je zobrazen na obrázku B.4, ale je možná změna vzhledu při integraci modulu do celého webu!) se dostaneme do editačního formuláře. Ten je téměř shodný s defaultní stránkou modulu.

Pod neprázdnými tabulkami s výpisem témat najdeme tlačítka akcí, která jsou úzce spjatá s právě jednou tabulkou a jejím sloupečkem „Upravit“.

Obrázek B.5 - Hromadná úprava volných témat.

Po výpisu všech volných témat je možné tato témata hromadně převést na aktuální akademický rok (viz. Obrázek B.5).

Po výpisu všech rezervovaných témat je možné témata zadat jejich zájemcům.

Po výpisu všech zadaných témat je možné tato témata označit za dokončená.

Po výpisu všech dokončených témat nebo při jakémkoliv jiném stavu je vždy možné hromadně témata mazat.

Vypsání nového tématu:

Obrázek B.6 - Vstupní formulář pro vypsání nového tématu.

Na stránce pro hromadnou úpravu témat (na kterou jsme se dostali přes odkaz

„úpravy témat“, zobrazený na obrázku B.4) je v horní části stránky umístěné tlačítko

„Přidat nové téma“. Toto tlačítko nás přesměruje na formulář pro vypsání nového tématu, který je zachycen na obrázku B.6.

Formulář má předvyplněné datum zveřejnění a pro úspěšné vypsání je ještě povinná položka „Název tématu:“. Celý formulář je dobře ošetřen proti chybám vstupu a uživatele vždy na chybu upozorní ihned po pokusu o odeslání. V případě prázdného popisu se pouze dotazuje, je-li popis nevyplněn úmyslně.

Editace vlastního tématu:

Do editačního formuláře nad jedním konkrétním tématem se dostaneme kliknutím na název tématu, které si vyfiltrujeme na stránkách pro hromadnou úpravu. (Na tyto stránky se dostaneme přes odkaz „úpravy témat“, zachycený na obrázku B.4.) Jde o téměř stejný formulář, jako při vytváření nového tématu (který můžete vidět na obrázku B.6), jen je předvyplněný.

Kontrola vstupů probíhá stejně jako při vkládání nového tématu a to po stisknutí

tlačítka „Opravit údaje“.

Související dokumenty