WebToDate » O WebToDate » Rozšiřitelnost » Extenze

Extenze

V systému WebToDate jsou stránky, které návštěvník prohlíží, sestavovány buď generátorem stránek nebo skriptem pro zobrazování jednotlivých článků či dynamických objektů ve stránce. V obou případech je jako základ stránky použitá zvolená šablona a na ní jsou umísťovány prvky vkládané redakčním systémem z databáze, které jsou formátovány zvolenými WebToDate styly.

V obou případech lze do procesu sestavování kódů stránek programově vstupovat. V případě generování statických stránek lze přidat kód, který se spouští po sestavení HTML kódu stránky, ale před jejím uložením na disk serveru. V případě dynamicky sestavovaných stránek jednotlivých zpráv lze do tohoto procesu vstoupit jednak na začátku (tj. po vykonání úvodních kontrol a před zahájením vlastního sestavování) a jednak na konci (po sestavení HTML stránky a před jejím zasláním do prohlížeče návštěvníka.

Programovým kódům, které takto vstupují do procesu sestavování stránek, se říká extenze. Jsou to tedy bloky PHP kódu volané v rámci generování statických stránek či v rámci sestavování dynamických stránek článků, které mohou modifikovat již sestavený HTML kód nebo provádět jakékoliv jiné akce, které jsou zpravidla závislé na tom, jaká stránka se zrovna sestavuje. Z toho důvodu jsou v těchto kódech k dispozici proměnné, podle kterých lze zjistit informace o sestavované stránce, např. ID zprávy apod.

Extenze prvního typu (preprocess) se volá před zahájením vlastního sestavování stránky. Zde je možné doplnit kódy, které např. ovlivňují, zda se vůbec má stránka zobrazit apod. Extenze druhého typu (postprocess) se volá ve chvíli, kdy je stránka sestavená, ale není ještě odeslaná do prohlížeče. Zde je možné doplnit kódy, které přidávají další obsah do stránky nebo stávající modifikují apod.

Jednoduché extenze mohou být vytvářeny jako samostatné doplňky. Typicky se jedná o jeden PHP soubor, který provádí nějakou konkrétní akci. Složitější extenze mohou být součástí nějakého modulu – pokud chceme vytvořit extenzi, která funguje na základě nastavení prováděných administrátorem WebToDate či dokonce dat zadávaných redaktory, vytváří se zpravidla modul a extenze pracuje s nastaveními či daty tohoto modulu.

Fyzicky jsou extenze bloky PHP kódu v samostatných souborech, které se odkazují v určených souborech v konfiguračním adresáři WebToDate.

Pro samotné jádro WebToDate jsou k dispozici následující extenze:

  • Ukládání počtu shlédnutí - extenze zapisuje do databáze informace o počtech shlédnutí zpráv
  • Cachování zpráv - pomocí extenzí je realizována disková cache pro cachování stránek se zprávami
  • Zvýraznění vyhledávaných výrazů - extenze může zvýrazňovat hledané výrazy (zadané do fulltextového hledání) ve stránce s celým textem zprávy
  • Kontrola URL v rewritovaném tvaru - extenze při konfiguraci „Cool URI“ pro zprávy kontroluje, zda zpráva není volána s pozměněným URL (jiným, než jaké bylo zprávě přiděleno), pokud tomu tak je, zobrazí chybovou stránku
  • Vložení odkazu na největší variantu obrázku ve zdroji - využívá se pro odkaz na stažení obrázku v tiskové kvalitě ze zdroje (např. ve fotogaleriích)

Další extenze jsou součástí některých modulů - extenze pro vložení komentářů ke článkům, extenze pro zobrazení ankety svázané s článkem, extenze pro zobrazení měsíčního kalendáře modulu Kalendář akcí na různých stránkách webové prezentace, extenze pro ověření přístupu a případné vynucení přihlášení uživatele patřící k modulu Neveřejná část apod.

Příklady realizovaných zákaznických extenzí nasazených na konkrétních projektech jsou např.:

  • Extenze pro vložení sjednávacího formuláře pro určité typy zpráv zobrazované přihlášeným uživatelům (nepřihlášený uživatel vidí podobnou stránku, ale bez sjednávacího formuláře)
  • Extenze pro předvyplnění personálních údajů (e-mailu apod.) pro funkci Upozornit na tento článek (formulář, který odesílá URL zajímavého článku na adresu zadanou návštěvníkem webu)
  • Extenze pro logování informací o shlédnutí zprávy do textových logů (místo zápisů do databáze)
  • Extenze zobrazující pro nové zprávy po určitou dobu jenom část těla, plný text se zobrazuje až u zpráv starších několik dní
  • Extenze na automatickou změnu výchozí šablony pro zobrazení zprávy, díky níž se jedna zpráva zobrazí na různých virtuálních webech s různou šablonou bez nutnosti toto nějak řešit speciální definicí WebToDate stylů či podobným způsobem