WebToDate/Referenční/Struktura obsahu
Principy přizpůsobitelné struktury databáze zpráv
Cílem této funkce ve WebToDate je mít možnost:
- přidat k pevně definované struktuře zpráv libovolný počet dalších vstupních editačních polí a definovat jejich základní chování (datový typ, omezení maximální délky textu apod.)
- Umožnit úpravy tohoto obsahu uživatelům (v běžném formuláři pro zprávy i v pohledech)
- Zajistit, aby v prezentační vrstvě (stylech a předlohách) byl obsah takto definovaných polí použitelný stejným způsobem jako u polí, která jsou daná pevnou databázovou strukturou.
Obecný způsob zacházení s přizpůsobitelnou strukturou je následující.

Administrátor nadefinuje seznam polí, která vůbec lze použít ve zprávách (tj. v jejich přizpůsobitelné struktuře). Každé pole v tomto seznamu je pak používáno v databázi zpráv v daném kontextu vždy se stejným významem. Definice pole zahrnuje jeho systémový název (z něj se pak tvoří klíčová slova pro šablony a styly), uživatelský název, datový typ a případné další vlastnosti (maximální délka textu apod.).
Definice polí jsou pak sdruženy do jedné sady, která je nazvána Rozšířené zprávy.
Způsob interního uložení této přizpůsobitelné struktury definuje konfigurační konstanta VARDOCXML. Je-li tato konstanta nastavena na hodnotu true, platí, že pro obsah vstupních polí přizpůsobitelné struktury existuje jedno databázové pole typu TEXT neomezené délky, data se zde ukládají v XML struktuře, aby bylo možné jednoduše oddělit obsah jednotlivých vstupních polí apod. Pokud je tato hodnota nastavena na false, ukládají se pole rozšířené struktury do speciální databázové tabulky, co pole to jeden sloupec této tabulky.
U každé zprávy je navíc interně poznamenáno, zda používá vstupní pole definovaná ve struktuře Rozšířené zprávy nebo ne. Jakmile je jednou struktura nadefinována, při úpravě zprávy se automaticky tato pole zobrazí v editačním formuláři, pokud jsou zprávy upravovány pomocí pohledů, je v definici pohledu vyznačeno, zda používá tuto přizpůsobitelnou strukturu či nikoli.
Pro práci s touto strukturou a daty v ní platí následující pravidla:
- Podle jednotlivých polí v přizpůsobitelné struktuře nelze standardními prostředky aplikace prohledávat ani třídit. Je-li nastaveno VARDOCXML=false, je možné založit pro dané pole databázový nebo fulltextový index. Tyto indexy ale nejsou využívány aplikací ani standardními moduly (např. Fulltext), tuto funkcionalitu lze využít pouze v zákaznicky vytvořených skriptech např. generovaných z WebToDate.
- Jednou definovanému poli, které již bylo použito u nějaké zprávy nelze změnit systémový název ani datový typ.
- Nová pole do přizpůsobitelné struktury lze přidávat bez omezení
- Existující pole lze ve struktuře odstraňovat. Znamená to ale, že obsah pole, které bylo u zprávy vyplněno a pak v definici struktury odstraněno již nelze upravovat, při uložení takové zprávy je pak tento obsah definitivně smazán.
Správa struktury
Správu přizpůsobitelné struktury provádí administrátor v nabídce Administrace – Struktura zpráv. Interface pro tuto správu je na následujícím otisku obrazovky.

V horním seznamu se zobrazuje seznam polí patřících do přizpůsobitelné struktury (systémový název a uživatelský název), ve spodní části formulář pro nastavení vlastností pole. Význam položek v tomto formuláři je následující:
- Systémový název – název, pod kterým se data interně ukládají. Název pak navíc figuruje v klíčových slovech (značkách) WebToDate, která zastupují obsah pole v šablonách či stylech. Syntaxe těchto značek je <!--WTD_D(''systémový_název'')-->. Systémový název tvořte pomocí velkých písmen, číslic a znaku podtržítko.
- Uživatelský název – popisek, který se zobrazuje ve formuláři pro zprávy. Tento popisek se zobrazuje vždy v běžném formuláři pro zprávu, v pohledech funguje jako systémový název, který lze buď převzít nebo předefinovat.
- Datový typ – vybírá se jeden z datových typů Možné hodnoty jsou jednořádkový text, víceřádkový text, URL, datum, celé nezáporné číslo, reálné číslo, položka databáze zdrojů. Význam této volby je především v tom, jak se pole ve formuláři pro úpravy zpráv zobrazuje a jaké jsou kontroly při ukládání dat.
- Povolit HTML – Udává, zda lze do pole vkládat HTML kód nebo jen prostý text. U těchto polí se ve formuláři zobrazí ikona pro úpravy pomocí WYSIWYG editoru.
- Formátování – zde se volí, zda se pro pole používá Automatické formátování, jedná se v zásadě o stejnou funkci, která je k dispozici pro Tělo zprávy.
- Maximální délka – maximální možná délka textu pro textová pole. Pokud není vyplněno, délka textu není omezena.
- Povinně vyplnit – udává, zda musí uživatel obsah daného pole povinně vyplnit.
Je-li nastavena konfigurační konstanta VARDOCXML=false, lze navíc definovat:
- Indexování - běžný index - je-li zaškrtnuto, vytvoří se pro toto pole databázový index
- Indexování - fulltextový index - je-li zaškrtnuto, vytvoří se pro toto pole fulltextový index

Pro nastavení VARDOCXML=false není k dispozici možnost Formátování: ponechat možnost volby na uživateli.
Pokud je definován alespoň jeden číselník, nabízí se v poli Použít číselník výběr ze seznamu číselníků. Číselníky lze zvolit pouze pro pole typu Jednořádkový text.
Při práci s touto strukturou je vhodné si uvědomit zejména to, že obsahy polí se interně identifikují podle systémového názvu. Pokud je systémový název změněný nebo je pole dokonce odstraněno, jsou obsahy tohoto pole ve zprávách ztraceny a např. pro definici formulářů pomocí pohledů se pak jedná o jiné pole, které je v pohledu nutno znovu nadefinovat.
Poměrně speciálním typem pole je položka databáze zdrojů. Jedná se o pole, do kterého lze vložit pouze klíčové slovo pro instanci položky z databáze zdrojů. Používá se v případě, že je třeba do struktury zprávy vkládat např. více ilustračních obrázků v různých variantách, kde každá varianta se používá v jiném kontextu (jeden ilustrační obrázek pro zprávu umístěnou na úvodní stránce, jiný ilustrační obrázek pro zprávu umístěnou na stránce sekce apod.).
Číselníky
V nabídce Administrace – Číselníky lze definovat číselníky pro přizpůsobitelnou strukturu. Číselníkem se rozumí seznam položek, které se pro nějaké pole nabízejí jako výběrová hodnota (rozevírací nabídka).
Nový číselník se přidává odkazem Přidat, nejprve se vyplňuje název číselníku. V horním seznamu položek se pak zobrazuje seznam číselníků. Klikem na název číselníku se zobrazí formulář pro změnu názvu číselníku, klikem na ikonu vedle názvu se zobrazí seznam hodnot číselníku s možností jejich přidávání, odstraňování a změn.

Ve formuláři pro úpravu hodnoty číselníku se nacházejí následující položky:
- Hodnota - hodnota ukládaná do databáze
- Systémový název - název položky zobrazovaný v rozevírací nabídce ve formuláři pro úpravu zprávy
- Lokalizovaný název pro každý jazyk - název položky, který se zobrazuje v prezentační části
Pokud se tedy např. nadefinuje položka číselníku Hodnota = 2, Systémový název = "na skladě", Lokalizovaný název = "Položka je na skladě", při výběru této hodnoty u dané zprávy uživatel vybere položku "na skladě", do databáze se interně uloží hodnota 2, pokud je klíčové slovo pro toto pole např. v předloze pro zprávy, ve stránce se zprávou v prezentační vrstvě se zobrazí "Položka je na skladě".

Z toho vyplývá:
- Měnit systémové a lokalizované názvy položek v číselníku lze bez omezení
- Změna hodnoty u položky, která již byla někde použita (nebo dokonce smazání položky číselníku) znamená, že v databázi u dané zprávy může být uložena hodnota číselníku, pro kterou nejsou k dispozici názvy, takže se pak aplikace chová v podstatě tak, jako by pro danou zprávu hodnota číselníku vůbec nebyla nastavena.
Úpravy zpráv s přizpůsobitelnou strukturou
Pokud je nadefinováno aspoň jedno pole přizpůsobitelné struktury, zobrazuje se ve formuláři pro zprávy záložka Další, ve které se tato pole nacházejí. Obsah této záložky je řízen pouze touto strukturou a nelze jej dále ovlivnit.

Je ovšem možné definovat pohledy používající některá nebo všechna pole z této přizpůsobitelné struktury, více naleznete v kapitole Pohledy.