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)



