Jak to funguje

Souhrnné články vysvětlující některé principy fungování JellyPotu. Zpravidla se jedná o témata, která se dotýkají více oblastí najednou.

Formuláře

Formulářové controly jsou umístěny ve vlastním namespace. Jejich tagy mají prefix f:, na rozdíl od je: základních controlů systému JellyPot. Celý formulář se umísťuje do serverového tagu <form>. Ten se může ve stránce vyskytovat jen jedenkrát (vlastnost ASP.NET).

Master page

Master page představuje jakýsi rámec s vyznačenými regiony, do kterých může stránka, která danou master page používá, vkládat obsah. Často se používá pro záhlaví a zápatí webu.

Menu

JellyPot implicitně nepředpokládá žádnou konkrétní strukturu webu. Nepředpokládá tedy ani žádnou podobu menu a další navigace. Struktura dat v administraci může být – a obvykle je – odlišná od struktury webu samotného. Pro vytvoření menu je tedy nutné specifikovat:

Sestavení stránky

Pro odelání požadované stránky na klienta musí JellyPot stránku nejprve sestavit – poskládat finální šablonu ze šablony stránky, uživatelských controlů, master page a pak ji zpracovat, tj. doplnit do ní obsah. Zpracování probíhá takto:

Uživatelský control

Uživatelský control je samostatný kousek kódu, který lze v .aspx používat podobně jako klasický control. Hodí se pro často používané kousky kódu. Vlastně to není nic jiného, než obyčejný include. Obsah uživatelského controlu se vkládá na příslušné místo stránky a až poté je stránka zpracována. Lze proto v uživatelských controlech používat relativní cesty k proměnným. Viz sestavení stránky.

Adresářová struktura webu

Standardní distribuce JellyPot obsahuje boilerplate projektu s touto adresářovou strukturou:

Formátování výstupu

Obsah vypisovaný controlem <je:item> je možné formátovat. Týká se to datových typů:

Interpolace

Ve vybraných atributech některých controlů (např. atributy class, idForClient, onclick atp. controlů <je:item>, <je:elem> a dalších) je možné používat tzv. interpolace proměnných, zkráceně jen interpolace (někdy je tento princip nazýván též substituce proměnných, viz anglická Wikipedie).

Jazyky

JellyPot podporuje vícejazyčné weby, přičemž počet jazyků není nijak omezen. Další jazyk je možné přidat nebo odebrat v jakékoliv fázi vývoje nebo provozu webu. Pro přidání jazyka je potřeba učinit následující kroky:

Kontejnerování

Kontejner slouží k předání aktuálního kontextu controlům, které jsou v něm vnořené. Kontejnery lze do sebe vnořovat a mají jasně danou hierarchii. Díky kontejnerům lze přistupovat k obsahu polí proměnných relativně (field=".title") a control <je:avar> je používá ke konstrukci dynamických odkazů.

Konvence pojmenování

Tento článek pojednává o konvenci pojmenování proměnných, kolekcí, typů a polí v rámci souboru Site.config. Uvedená jména mohou obsahovat pouze písmena anglické abecedy, číslice a znak podtržítka _. Jména musí vždy začínat písmenem a jsou case-sensitive.

Přesměrování

Pokud web reaguje na více doménových jmen, JellyPot umí vyřešit vzájemné přesměrování mezi těmito doménami. Současně lze také vyřešit výběr správné jazykové mutace nebo landing page pro každou doménu.

Složky pro upload souborů z administračního rozhraní

Veškeré obrázky a soubory nahrávané prostřednictvím administračního rozhraní jsou ve výchozím nastavení ukládány do složky upItems v rootu webu. Je tedy nutné, aby uživatelský účet, pod kterým je JellyPot na serveru spuštěn, měl právo zápisu do této složky, včetně všech jejích podsložek. upItems obsahuje tyto podsložky:

Systémová proměnná jelly

JellyPot nezávisle na definici proměnných uvedených v site.config vždy poskytuje systémovou proměnnou s názvem jelly, která popisuje některé vlastnosti systému samotného. Proměnná má tato pole:

Textové soubory

Textový soubor je XML soubor, který slouží k uložení veškerých textů na webu, které není potřeba (či není žádoucí) editovat v administraci. Obvykle se jedná o servisní texty jako jsou popisky tlačítek apod. Textové soubory se používají zejména u vícejazyčných webů, kde stačí jediná sada *.aspx šablon společná pro všechny jazyky.

Vnitřní pole proměnných

Každá proměnná nebo prvek kolekce má kromě polí uvedených v deklaraci typu v Site.config ještě další, systémem JellyPot generovaná pole. Často jsou tato pole využívána v tzv interpolacích.

Zobrazení prvků kolekcí v administračním rozhraní

Ve výchozím nastavení se prvky kolekcí v administraci zobrazují pomocí prvního pole s textovým obsahem (či pomocí id proměnné, pokud proměnná obsahuje např. jen obrázková pole). Způsob zobrazování lze upravit, a to přímo v elementu Collection definujícím kolekci.

Zabezpečení a uživatelská práva

Oprávnění uživatelů řídí JellyPot na základě jejich příslušnosti do skupin uživatelů. Obsahuje několik systémových, členství v nichž opravňuje uživatele např. k editaci obsahu nebo správě obsahu, a nabízí možnost si volně definovat další vlastní skupiny. Jak ty vlastní tak systémové lze použít pro řízení přístupu do administrace, tak k řízení přístupu k částem webu.

Zabezpečení před neoprávněným přístupem do administrace

Do administračního rozhraní mají přístup pouze uživatelé, kteří patří do skupiny uživatelů editor (což jsou automaticky i členové skupin admin a sysAdmin – viz Zabezpečení a uživatelská práva). Skupina uživatelů user přístup do administrace nemá, ta se využívá jen pro zabezpečení stránky nebo její části. Ve výchozím nastavení platí, že každý uživatel, který má do administrace přístup, má také přístup k editaci veškerého obsahu.

Zabezpečení před neoprávněným přístupem ke stránce nebo její části

JellyPot umí zabezpečit stránku nebo její část před neoprávněným přístupem. Jinými slovy, aby se uživateli stránka nebo její část zobrazila, uživatel musí být přihlášený a patřit do správné skupiny uživatelů. Toho se využívá, pokud některé informace na webu mají být skryté široké veřejnosti, ale vybraní uživatelé k nim po přihlášení přístup mít mají; může se hodit třeba pro předplatitele, obchodní partnery apod.

Zabezpečení před neoprávněným přístupem k souboru nebo obrázku

JellyPot umí zabezpečit soubory (a tedy i obrázky) nahrávané přes administrační rozhraní před neoprávněným přístupem. Jinými slovy, aby uživatel měl k danému souboru přístup, musí patřit do správné skupiny uživatelů. Zabezpečení souborů se obvykle využívá ve spojení se Zabezpečení před neoprávněným přístupem ke stránce nebo její části.