Technická dokumentace

1. Popis řešení

Vzdělávací portál je internetovou aplikací, která na straně klienta vyžaduje www prohlížeč, podporující běžné soudobé www standardy HTML, CSS a JavaScript. Optimálním prohlížečem je Mozilla Firefox (tč. ve verzi 3.5), aplikace byla odladěna i pro Internet Explorer 8 a Google Chrome 2 (je předpoklad, že bude fungovat i na dalších browserech).

Ze serverového pohledu je vzdělávací portál souborem dynamicky generovaných stránek skriptovací technologií PHP. Při implementaci byly využity aplikační knihovny Nette Framework, databázový layer dibi (obojí pod licencí Creative Commons) a jQuery pro podporu klientské části (pod licencemi MIT/GPL). Jako architektura aplikace byla zvolena koncepce MVC (model-view-controller), resp. v terminologii Nette přejatá jako koncepce MVP (model-view-presenter).

Zápis URL jednotlivých stránek, ze kterých se vzdělávací portál skládá, je prostřednictvím tzv. kanonizovaných URL, resp. cool URLs (rewriting). Vlastní běh je pak vždy realizován interně přes skript /index.php a směrován přes /app/routers.php jednotlivým presenterům ke zpracování (architektura Nette Framework).

2. Instalace

Vzdělávaci portál vyžaduje pro svou instalaci na server tyto části:

  • WWW server (optimálně Apache 2.2 a vyšší běžící na operačním systému unixového typu)
  • PHP verze 5.2 a vyšší
  • databáze MySQL verze 5 a vyšší

Běh aplikace s verzemi PHP a MySQL nižšími než uvedenými není možný. Díky abstrahujícímu databázovému layeru je však provoz realizovatelný i na jinému typu databázového serveru, není však garantován (z hlediska samoinstalace tabulek, viz dále).

Aplikační knihovny Nette, dibi a jQuery jsou součástí instalace vzdělávacího portálu, s příšlušnými odladěnými verzemi (není potřeba je instalovat, ani se nedoporučuje je přepisovat budoucími vyššími verzemi, není zaručena zpětná kompatibilita).

Doména

Aplikace vyžaduje, aby byla instalována na samostatnou doménu, resp. na doménu třetího řádu. Z této domény pak bude odkazována jako /vp, tedy např. www.gymvod.cz/vp.

Rozdělení a popis adresářů

Adresář Význam
/app/models datové modely aplikace, popisy databázových tabulek
/app/.../presenters řadiče volání stránek, výkonná logika operací
/app/controls ovládací prvky aplikace
/app/.../templates zobrazovací šablony aplikace
/libs knihovny Nette a dibi
/js a /jquery javascriptové knihovny
/css a /css/vp soubory kaskádových stylů (zobrazení)
/images grafika aplikace
/storage.vp/files umístění uživatelsky nahrávaných souborů (příloh) ve vzdělávacím portálu;
tento adresář je nutné nastavit pro zápis uživateli, pod kterým je spuštěn proces www serveru
/storage.vp/images umístění uživatelsky nahrávaných obrázků (a náhledů) ve vzdělávacím portálu;
tento adresář je nutné nastavit pro zápis uživateli, pod kterým je spuštěn proces www serveru

Databáze

Vyjma konfigurace popsané v následující kapitole není potřeba při instalaci provádět žádnou další operaci související s databází. Systém sám při přístupu k databázovým tabulkám testuje, zda existují. V případě, že nikoli, tabulku přidá. Z hlediska databáze je vzdělávací portál samoinstalující. Po rozjetí aplikace je možné (a doporučené) funkci kontrol existence tabulek a jejich sloupců vypnout (viz následující kapitola o konfiguraci, parametr kwDBCheck), může tak dojít ke zrychlení běhu skriptů.

Administrace

Součástí instalace (balíku) je i přidružená administrace, dostupná prostřednictvím /admin. Je/může být sdílena s dalšími aplikacemi instalovanými na serveru. Pro potřeby vzdělávacího portálu slouží k administraci kurzů a správě uživatelů. Při čisté instalaci (v souladu se samovytvářením databázových tabulek) založí i prvního uživatele admin s heslem admin (lze kdykoli později změnit).

3. Konfigurace

Vzdělávací portál se konfiguruje prostřednictvím souboru /app/config.php. Jedná se zejména o údaje nutné pro připojení k databázi (konstanty s prefixem kwDB). Následující tabulka shrnuje typické nebo aktuální hodnoty.

Adresář Typická/aktuální hodnota Poznámka
kwDBHost localhost
kwDBUser db61385361
kwDBPassword ************ heslo zde neuvedeno z bezpečnostních důvodů
kwDBDatabase db61385361
kwDBPrefix mk_ prefix uvedený před každou db tabulkou aplikace, umožňuje odlišit db tabulky od jiných v rámci jedné databáze
kwDBCheck true pokud je nastavena hodnota true, tak při každém přístupu k databázovým tabulkám testuje jejich existenci, popř. existenci všech potřebných sloupců; po rozjetí aplikace vhodné přepnout na false (zrychlí se běh skriptů)
kwVPStorageFiles WWW_DIR.'/storage.vp/files/' WWW_DIR je konstanta definovaná pro Nette - odkaz na umístění aplikace
kwVPStorageImages WWW_DIR.'/storage.vp/images/' WWW_DIR je konstanta definovaná pro Nette - odkaz na umístění aplikace
kwVPStorageThumbs WWW_DIR.'/storage.vp/images/thumbs/' umístění automaticky generovaných náhledů k obrázkům z předchozího řádku
kwStorageImageHeight 530 maximální výška obrázku (na kterou bude případně normována jeho velikost)
kwStorageThumbHeight 100 maximální výška náhledu (na kterou bude případně normována jeho velikost)

4. Zálohování

Zálohování provádí zpravidla provozovatel www hostingu, na denní bázi, zajišťuje se proti haváriím a je schopen obnovit poslední stav, popř. stav z historie podle jeho interní metodiky archivace.

Pokud je potřeba provést ruční zálohování, např. na účelem přenosu na jiný server, jsou potřeba dva kroky:

  • Záloha databáze - nejlépe přes administrační nástroj phpMyAdmin, všechny tabulky s prefixem uvedeným v konfiguraci (zravidla mk_)
  • Záloha souborů - protokolem ftp složku /storage.vp (popř. celý adresář se vzdělávacím portálem)