Guliver – správa událostí

Cíl

Vytvoření portálu pro prodej konferencí, tréninků, webinářů a zjednodušení ovládání webu.

Řešení

Využili jsme znalost interního systému Guliver – napsaného v APEXu – ke spolupráci s webovým portálem a zapojení širší množiny uživatelů Gulivera k plnění obsahu webu.

Pro webový portál jsme zvolili redakční systém Joomla, neboť umožňuje snadné rozšiřování pomocí komponent, modulů, pluginů a šablon a obsahuje  vhodné možnosti pro oddělení jednotlivých prvků na stránce, vše je však uchováváno v jedné databázové struktuře.

Pro spojení interního systému Guliver jsme zvolili databázové rozhraní komunikující přes databázový most vytvořený z Oracle 11g do MySql 5.1. Pro výměnu souborů jsme, vzhledem k již existující infrastruktuře, zvolili editací pomocí fyzického spojení (mountování) disků v Guliveru i webu.

Pro vytváření blogů, který ale není z kapacitních důvodů na straně Flemingu spuštěn, jsme zvolili platformu WordPress. Pro identifikaci a autorizaci uživatelů jsme využili databázy Joomly se vzdáleným přístupem z Wordpressu.

Pro potřeby zobrazování jednotlivých konferencí, které mají každá svou samostatnou webovou prezentaci, jsme v Joomle vytvořili speciální komponentu, která umožňuje zobrazení obsahu jiné komponenty.  Potřebovali jsme k tomu doinstalovat PHP rozšíření Runkit, které nám umožnilo v naší komponentě vyvolat dvojí renderování komponent. Takto se nám podařilo využít všechny prvky Joomly – položky menu, komponenty, moduly, pluginy a template -k tvoření obsahu webu.  Pro udržení informace o přirazení obsahu ke konferenci jsme použili položky note v tabulce pro menu a v Joomle 1.7 nevyužitý sloupec sectionid v tabulce pro články.

Pro uchování přirazení modulů a jejich pozic v zobrazení na stránce jsme vytvořili strukturu, ve které uchováváme parametry každého modulu pro jednotlivé podstránky samostatně.

Výše popsaným postupem jsme docílili toho, že i homepage editujeme, jako kdyby to byla jedna z konferencí.

Dalším zadáním bylo, aby existovala možnost vytvořit samostatné template pro každou konferenci dle požadavků editorů. Z tohoto
záměru se zatím využívá jenom rozdílné loadování template pro homepage a stránek jednotlivých konferencí.  Bylo pro to nutné vytvořit jednu template,
která obsahuje jenom HTML hlavičku a definici body loadovaní obsahu komponenty. V naší  komponentě je poté voláno renderování templaty definované při konferenci. Takto budeme moci v budoucnu dosáhnout přechodu na libovolnou template s minimálními náklady.

HTML šablony byly navrženy tak, aby se automaticky přizpůsobovaly rozlišení zařízení, které stránku zobrazuje. Stejný obsah se také zobrazuje jak ve webovém prohlížeči, tak v tabletu nebo mobilním telefonu. Ve všech zobrazeních je kladen důraz na zobrazení prvků pro získávání nových
objednávek.

Samostatnou kapitolou je korektní generování odkazů, které v Joomle zabezpečuje API JRoute pomocí volání knihoven definovaných v komponentách
na které se tvořené odkazy odvolávají. Odkazy (linky) jsou generovány pro SEF optimalizací a respektují umístnění cílové linky do konference.  V systémovém pluginu se posléze každá linka překládá na volání komponenty, view a článku, který je k danému linku přirazen.

Komunikaci mezi portálem a APEXovou aplikací Guliver zabezpečujeme pomocí base64 kódované komunikace mezi databázemi Oracle a MySQL.
Důvodem pro šifrovanou komunikaci jsou problémy při přenosu dat napsaných v UTF-8 pomocí databázové linky v Oracle. Komunikace je tvořena vždy
dvojicí tabulek – jednou v každé databáze, do kterých se vkládají data určená k přenosu mezi webem a Guliverem.  Komunikaci k přenosu libovolným směrem vyvolává vždy Job v Oracle DB.

Ilustrační náhled