Pagelety

Pagelet je typ assetu, jehož instance je reprezentací části stránky spjaté s logikou, která se obecně může uplatnit šířeji, než jen ve zpracování jednoho požadavku HTTP. Typicky se používá k ošetření akcí jako je autentifikace, práce s uživatelskými daty uloženými v sezení, zápis dat od databáze nebo na jiný výstup apod.

Samotná logika je vždy napsaná v javě jako řídící třída pageletu. Třídy pro standardní funkčnosti (feedback, fulltext, fórum, nákupní košík) existují jako komponenty systému jNetPublish; jejich popis není součástí této dokumentace.

Základní koncepty

Logiku každého jednotlivého pageletu je dobré chápat tak, jak je uspořádaná v programovém kódu. Rozlišují se dvě akce:

Vykonání pageletu
Volá se metoda execute. Akce probíhá ještě před tím, než se začne vypisovat stránka.
Vypsání pageletu
Volá se metoda render. V této metodě pagelet typicky jen nastaví proměnné dostupné v šabloně a zvolá svou šablonu (tedy šablonu, která je hodnotou atributu template tohoto pageletu) v některém z jejích režimů.

Vykonává se vždy ten pagelet, který je adresovaný v URL, tzn. URL je obrazem PageIdentification s nastavenou vlastností pagelet

Vypsání pageletu typicky volá autor prezentační logiky ze šablony.

Pro každou stránku tak může být vykonávaný nejvýše jeden pagelet. Vypsáno ale může být libovolné množství pageletů. (V principu ani nemusí být vypsaný vykonaný pagelet, ale to by ukazovalo na ne zcela šťastný návrh prezentace. Viz také dále o možnostech ovlivnit výpis z vykonaného pageletu.)

Situace je ještě trochu komplikovaná tím, že data předávaná pageletem z jeho metody execute obecně nemusejí být vázaná na konkrétní asset, nelze tedy vždy například mít na stránce dvě aktivní oblasti řízené stejnou třídou, které by na sobě byly nezávislé.

Vliv vykonaného pageletu na vypsání stránky

Při vykonávání pageletu má programátor na vybranou, jakým způsobem se dál bude vypisovat stránka:

  • Stránka se může normálně vypsat počínaje šablonou primární sekce.
  • Výpis celé stránky může řídit pagelet sám; typicky k tomu použije svoji šablonu. Šablona primární sekce se v takovém případě zcela ignoruje.
  • Stránka se vůbec nemusí vypsat. Toto se používá zejména tehdy, kdy pagelet potřebuje provést přesměrování.

Web metody

Pokud je pagelet adresovaný v URL, je možné mu předat řetězec označovaný jako web metoda (v PageIdentification je to vlastnost method).

Nejde ovšem striktně vzato o žádnou metodu: tento řetězec je zkrátka dostupný při zpracování logiky pageletu. Je zcela ponecháno na řídící třídě pageletu, jak s ním naloží – může ho například použít pro větvení kódu, ale také ho může úplně ignorovat.

Přes proměnnou _pageId je metoda dostupná i v šabloně, ale je třeba s ní pracovat uvážlivě, už proto, že není úplně jednoduché určit, zda se metoda váže k tomu kterému pageletu.

Pro vložení příspěvku do diskuse se přihlašte.