Číselníky slouží k vytváření vstupních polí pro editaci obsahu katalogu v administrační části, která se zadávají výběrem z možných hodnot; jedná se o analogii funkce [[../../Referenční/Struktura obsahu#Číselníky|Číselníky]] v jádru WebToDate.
Po vyvolání funkce '''Číselníky''' v nabídce modulu se zobrazuje obrazovka, kde lze přidávat a editovat názvy číselníků. Odkazem '''Přidat''' se přidává nový číselník, specifikuje se pouze název a způsob práce s výběrem z číselníku při editaci dat (rozevírací nabídka / text s automatickým doplňováním). Klepnutím na název číselníku lze editovat tato dvě nastavení.
Klenutím na ikonu složky vedle názvu číselníku se zobrazí seznam hodnot číselníku.
V horní části obrazovky je seznam hodnot, odkazem '''Přidat''' nebo klikem na text ve sloupci ''Hodnota'' se přechází do editace jedné položky číselníku. Zde se vyplňuje:
* '''Hodnota''' - hodnota položky číselníku jak se uloží do databáze při zadávání dat
* '''Systémový název''' - zobrazuje se jako položka číselníku, např. v rozevírací nabídce
* '''pomocný text''' - volitelný pomocný text s nápovědou pro položku číselníku
* '''Lokalizovaný název''' - zadává se text, který se zobrazí pro položku číselníku v prezentační části, lze zadat pro každý jazyk jiný
Funkce v této nabídce slouží k usnadnění práce při vývoji grafické prezentace katalogu, tj. stránek zobrazujících data katalogu i stránek se vstupními formuláři. Tyto funkce generují WebToDate fragmenty nebo WebToDate styly, které jsou v rámci vytváření definic těchto stránek využitelné. Princip fungování je v zásadě ten, že vždy vybereme, ke kterému katalogu chceme ten který element vygenerovat, funkce podle aktuální definice katalogu vygeneruje příslušný fragment (resp. styl). Tento objekt lze pak po stránce HTML kódu dále upravit a použít na příslušné předloze.
Položka
Funkce Položka generuje fragment, který můžeme použít jako část těla předlohy pro detailní zobrazení jedné položky katalogu.
V prvé řadě vyberte katalog, pro který chcete příslušný fragment vygenerovat. Dále vyberte jeho zařazení (kategorie apod.) a případně změňte název. Pomocí tlačítka Přidat HTML fragment se v databázi založí nový fragment, okamžitě se zobrazí tlačítko Vyhledat, pomocí kterého lze přejít do režimu editace tohoto fragmentu.
V těle fragmentu se vygeneruje HTML tabulka se zhruba následujícím kódem.
Klíčová slova typu WTD_FC reprezentují jednotlivá pole datové tabulky katalogu, jejich názvy se samozřejmě pro každý katalog liší. Generují se ta pole, která mají ve vlastnostech nastaveno Zobrazovat na detailní stránce.
Fragment lze přiřadit na příslušnou předlohu pod vhodným stylem – tento styl typicky vkládá jen tělo fragmentu, jeho definice tedy vypadá většinou tak, že v těle obsahuje pouze klíčové slovo <!--WTD_F(BODY)--> (platí i pro všechny ostatní fragmenty v této kapitole).
Vyhledávací formulář
Funkce Vyhledávací formulář generuje fragment s vyhledávacím formulářem použitelným pro daný katalog. Vygenerovaný kód vypadá zhruba následovně:
Generují se ta pole, která mají ve vlastnostech nastaveno Použít při prohledávání. Takto vygenerovaný formulář je použitelný pouze v předlohách ke stránkám daného katalogu. Vyhledávací formulář lze vložit i na každou jinou stránku (např. úvodní stránku serveru), v tom případě je ale třeba předem nahradit klíčové slovo <!--WTD_CATALOGUE(LISTURL)--> za URL stránky pro zobrazování seznamu položek daného katalogu, tedy např. /scripts/modules/catalogue/list.php?catalogueid=2 (včetně id katalogu).
Styly
Funkce Styly slouží k vygenerování WebToDate stylu formátujícího seznam položek katalogu. Tento styl se pak nastavuje v předpisu katalogu (Nastavení / Předpisy / název předpisu / Seznam položek). Vygenerovaný kód stylu je závislý na zvoleném katalogu, generuje se formou HTML tabulky, jeho tělo vypadá např. takto:
Klíčová slova typu WTD_FC opět reprezentují jednotlivá pole datové tabulky katalogu, klíčové slovo <!--WTD_CATALOGUE(DETAILURL)--> reprezentuje URL pro zobrazení detailního pohledu na jednu položku. Generují se ta pole, která mají ve vlastnostech nastaveno Zobrazovat v seznamu, odkaz se generuje na pole, které má nastavenou vlastnost Odkaz na detail (pokud takové existuje).
Vstupní formulář
Funkce Vstupní formulář slouží k vygenerování fragmentu s kódem pro formulář použitelný pro daný katalog na veřejné části. Do formuláře se generuje:
Adresa skriptu pro uložení dat
Chybová hlášení typu WTD_IF, která se zobrazují ve chvíli, kdy nastala některá z možností podle typu chybového hlášení
Pole formuláře typu WTD_FCI
Označení povinných polí s popiskem
Generují se ta pole katalogu, která mají ve vlastnostech nastaveno Data lze vkládat z veřejné části. Pole, která mají vlastnost Povinně vyplnit, jsou ve vygenerovaném kódu označena.
Poznámka: Ve formuláři se jedná ale jen o grafické označení, povinné vyplnění dat je kontrolováno na straně serveru podle definice polí katalogu nezávisle na přesném tvaru vstupního formuláře.
Definice polí katalogu obsahuje rovněž možnost zadat výchozí hodnotu. Tato výchozí hodnota se do kódu formuláře negeneruje, ale je vkládána až ve chvíli zobrazení stránky s formulářem záměnou za příslušné klíčové slovo typu WTD_FCI.
Potvrzovací formulář
Funkce Potvrzovací formulář slouží k vytvoření fragmentu, který lze použít pro zobrazení potvrzovací stránky před vlastním uložením dat do databáze. Výsledný kód je velmi podobný předchozímu případu, pouze pole typu WTD_FCI jsou ve formuláři vždy dvakrát – jednou v kódu stránky pro zobrazení, podruhé jako hidden pole formuláře za účelem vložení dat do databáze.
Nastavení
Tato část nabídky slouží k definování grafické podoby katalogů na veřejné části webu. Oddělují se dvě části – Globální a Předpisy. Globální nastavení je takové, které je společné pro celý modul, nastavení v předpisech jsou zpravidla jedinečná pro daný katalog (v některých případech je lze využít pro více katalogů se stejnou strukturou). Předpisem se rozumí souhrn nastavení pro více stránek – pohledů na data (seznam položek, jedna položka atd.)
Seznam předpisů
Pomocí funkce Seznam předpisů se zakládají nové předpisy, jedinou volbou při zakládání předpisu je jeho název. Po založení se předpis zobrazí v nabídce v této sekci Nastavení, pod názvem předpisu jsou pak jednotlivé položky pro nastavení předpisu.
Globální nastavení
Seznam katalogů
Funkce Globální / Seznam katalogů definuje stránku zobrazující seznam katalogů na veřejné části. Tuto stránku (na URL /scripts/modules/catalogue/default.php) lze využít v případě, že na serveru je definováno více katalogů určených pro zobrazování dat a chceme jednoduše zobrazit jejich seznam. Stránka je definovaná předlohou a stylem seznamu katalogů.
URL s odkazem na daný katalog ve stylu seznamu katalogů se pak vždy generuje jako odkaz na stránku se seznamem položek katalogu, tedy /scripts/modules/catalogue/list.php?catalogueid=číslo_katalogu.
Navigační lišta
Ve formuláři Navigační lišta je definován vzhled lišty, která je používána pro stránkování seznamů položek.
Grafický vzhled jednotlivých prvků navigační lišty se definuje pomocí následujících polí:
Předchozí – HTML kód určující formátování odkazu pro přechod na předcházející stránku
Následující – HTML kód určující formátování odkazu pro přechod na další stránku
Hlavička – HTML kód který je umístěn na počátku výsledného kódu navigační lišty
Patička – HTML kód který je umístěn na konci výsledného kódu navigační lišty
Číslo stránky – formátování jednotlivých čísel stránky, které umožní odkliknutí na zvolenou stránku
Aktivní stránka – formátování údaje o čísle aktuální stránky
Separátor – oddělovač mezi jednotlivými čísly stránek.
Počet stránek určuje maximální počet čísel stránek v navigační liště a tím nepřímo ovlivňuje i její šířku.
Pro správnou funkci navigační lišty je nutné do výše popsaných polí zadávat i klíčová slova<!--WTD_NAVIG(URL)--> a <!--WTD_NAVIG(NUMBER)-->.
Jejich použití je zřejmé z následujícího jednoduchého příkladu:
Definici navigační lišty je třeba po instalaci každého modulu v instalovaném modulu uložit – výchozí hodnoty se po instalaci v databázi nenacházejí a bez uložení se pak navigační lišta na žádné stránce nezobrazí.
Filtr slov
Funkce Filtr slov umožňuje definovat slovník nevhodných výrazů. V horním seznamu se zobrazují slova seřazená podle abecedy, ve spodním rámci se zobrazuje editační formulář.
Ve slovech lze používat hvězdičku jako zástupný znak pro více libovolných písmen.
Součástí definice filtrovaného výrazu jsou i příznaky, zda výraz použít při filtraci nežádoucích výrazů a při detekci spamu.
Výrazy označené pro použití při detekci spamu se použijí jen v případě, že v antispamovém profilu, který používá daný katalog, je zvolena možnost Vyhledávání spamu podle obsahu příspěvků.
Další nastavení
Pokud je v katalogu zapnuta jakákoliv ochrana proti spamu, je třeba nadefinovat, jak se má chovat skript pro vkládání záznamů do katalogu v případě, že je příspěvek označen za spam a do databáze se nevloží. Toto chování definuje volba Je-li příspěvek detekován jako spam. Na výběr jsou následující možnosti:
Ukončit běh skriptu - okamžitě se ukončí běh skriptu pro vložení záznamu. Skript vypíše pouze identifikační značku dané metody kontroly spamu.
Zobrazit stránku pro vložení příspěvku - znovu se načte formulář pro vložení záznamu do daného katalogu.
Přesměrovat na zvolenou stránku - přesměruje na stránku, kterou je nutné v případě této volby zvolit, jedná se o libovolnou stránku ze stromu kategorií WebToDate.
Nastavení předpisů
Dále se v nabídce Nastavení nacházejí jednotlivé předpisy a jejich nastavovací formuláře (za předpokladu, že je alespoň jeden předpis založen). Každý předpis se skládá z nastavení Seznam položek, Jedna položka, Vyhledávání a Vkládání. V následující tabulce jsou uvedena URL stránek, ke kterým se tato nastavení vztahují:
Před uložením kteréhokoliv z těchto formulářů je třeba předem založit příslušnou předlohu resp. předlohy, doporučený postup je založit stránku typu předloha v kategorii Formuláře a katalogy, jako šablonu zvolit předpřipravenou šablonu stránek, která obsahuje vhodnou definici oblasti. Kódy specifické pro danou předlohu je vhodné umístit do separátních fragmentů a ty pak přiřadit na oblast na dané předloze (a předlohu vygenerovat). V rámci jednoho předpisu není povinné volit předlohy a nastavení ve všech čtyřech formulářích – pokud se např. daný katalog používá pouze pro sběr dat pomocí formuláře, není třeba nastavovat vlastnosti zobrazení všech položek či jedné položky apod., ale pouze nastavení pro vkládání dat.
Obecné schéma popisující kroky od použité šablony po výslednou dynamickou HTML stránku je na následujícím obrázku (platí pro všechny moduly WebToDate).
Seznam položek
Formulář Seznam položek definuje předlohu stránky, styl seznamu položek a počet položek na jednu stránku v rámci stránkování. Všechna tato nastavení je nutno při uložení povinně vyplnit.
Jedna položka
Formulář Jedna položka definuje předlohu pro detailní zobrazení jednoho záznamu, jedinou možností v tomto formuláři je právě nastavení této předlohy.
Vyhledávání
Formulář Vyhledávání definuje vlastnosti samostatné vyhledávací stránky, jedinou volbou je zde předloha stránky. Výsledky hledání prezentuje stránka Seznam položek, nikoliv tato stránka. Proto je tato stránka použitelná pouze v případě, kdy chceme mít na jedné stránce vyhledávací formulář a na druhé výsledek hledání. V opačném případě je možné vyhledávací formulář (tedy typicky tělo samostatného fragmentu) použít i na předloze stránky Seznam položek, výsledek bude z hlediska funkčnosti identický.
Vkládání
Posledním formulářem v předpisu je Vkládání. Charakterizuje všechny stránky, které se mohou týkat vkládání dat do daného katalogu z veřejně přístupného adresáře. Jedná se o tyto předlohy:
Předloha pro vstupní stránku – použije se pro stránku, ve které je formulář pro vložení dat. Tato volba je ve formuláři povinná, ostatní jsou nepovinné.
Předloha pro potvrzovací stránku – použije se volitelně pro stránku, která zobrazuje formulář pro potvrzení vložení dat, data jsou v hidden polích formuláře. Stránka je potřebná pouze pokud se tato funkce používá, neboli ve vlastnostech katalogu je zvoleno Potvrzovací stránka : Ano.
Odmítnutí přístupu – používá se v případě, že ve vlastnostech katalogu je nastaveno čtení nebo zápis s omezením na skupinu vybraných uživatelů.
Stránka se vyvolá v případě, že uživatel se úspěšně přihlásí k modulu Registrace a personalizace, ale patří do skupiny, která nemá k dané funkci přístup. Pokud je čtení nebo vkládání dat omezeno na všechny registrované uživatele (ne vybranou skupinu), stránka se nikdy nepoužije a není proto třeba ji nastavovat.
Předloha pro e-mail – používá se jako předloha pro e-mail s obsahem formuláře zasílaný na adresu definovanou ve vlastnostech katalogu, je potřebná v případě, že je v těchto vlastnostech nastaveno Veřejný formulář vyvolává: Odeslání e-mailu nebo Obojí. Pokud je součástí katalogu pole pro odeslání souboru na server a je nastaveno odesílání mailů s novými záznamy, soubor se odešle jako příloha tohoto e-mailu.
E-mail od - zadává se e-mailová adresa, ze které odcházejí e-maily s daty z formuláře pro vkládání dat do katalogu v prezentační části.
V případě využívání této funkce pro vkládání dat z formuláře je v zásadě třeba si připravit ještě jednu stránku, a to tu, která se má uživateli zobrazit po úspěšném vložení dat. URL této stránky se ale nedefinuje v tomto nastavení, ale přímo v kódu formuláře v poli returnurl.
Administrace
Tato část nabídky slouží k zakládání nových katalogů, k definování jejich vlastností a k definování seznamu a vlastností polí katalogů.
Práva
První položkou nabídky jsou Práva. V tomto formuláři se způsobem obvyklým ve všech modulech nastavují práva pro editaci dat jednotlivých katalogů. Po založení katalogu mají právo na editaci dat pouze administrátoři. V tomto formuláři lze tato práva nastavit i pro členy vybraných týmů. V levé části vyberte příslušný katalog, v pravé části vyberte tým a pomocí příslušného tlačítka jej přeřaďte do seznamu Autorizované týmy.
Antispamové profily
V nabídce Antispamové profily se definují nastavení ochrany proti formulářovému spamu. Antispamový profil je pojmenovaná sada nastavení, pomocí kterých se vybírá, jaký typ ochrany se pro vkládání záznamů aplikuje. Na úrovni definice katalogu se pak vybírá odpovídající profil, který daný katalog použije. Všechny katalogy mohou využívat stejný profil nebo je možné nadefinovat více profilů a ty pak nastavit u různých katalogů dle potřeby.
V horní části okna prohlížeče je seznam profilů, klepnutím na název profilu se zobrazí formulář pro definici profilu.
Přidávat profily a měnit jejich nastavení je možné bez omezení, smazat profil lze jen když není použit u nějakého katalogu.
V následující tabulce je stručně uveden význam jednotlivých voleb, problematice spamu je věnována samostatná kapitola Ochrana proti spamu.
Položka
Význam
Kroky potřebné pro implementaci
Kontrola URL volající stránky
Pomocí http referer se kontroluje, že skript pro vložení záznamu je volán z formuláře zobrazovaného pomocí tohoto modulu na daném serveru. Pokud se cizí aplikace pokouší přímo přes http protokol vložit příspěvek (nevyplňuje formulář na serveru), je příspěvek detekován jako spam.
Kontrola nevyžaduje žádné další kroky.
Formulářová návnada
Do pole Názvy polí formuláře se zadá jeden nebo několik názvů HTML polí ve vstupním formuláři (názvy se oddělují středníkem). Kontrola zjišťuje, jestli některé z těchto polí není čímkoli vyplněno, pokud zjistí, že některé pole má hodnotu, je příspěvek označen za spam.
Kontrola vyžaduje vložení jednoho nebo několika formulářových polí do HTML kódu vstupního formuláře pro zadávání nových záznamů. Pole musí být skryta před uživatelem (jako typ hidden či pomocí CSS). Člověk pak takové pole nevyplňuje, spamovací robot jej může vyplnit.
Seznam zakázaných IP adres
Při vložení se kontroluje, zda IP adresa, ze které záznam přichází, není na seznamu zakázaných adres. Pokud tomu tak je, je položka označena za spam.
Nevyžaduje žádné změny v prezentaci, ale vyžaduje zadání zakázaných IP adres pomocí funkce Data - Zakázané IP adresy nebo vložením IP adresy přímo z formuláře pro úpravu záznamu.
Vyhledávání spamu podle obsahu příspěvků
V textu příspěvků se před vložením vyhledávají slova zadaná ve funkci Filtr slov s volbou Spam.
Nevyžaduje žádné změny v prezentaci, ale vyžaduje naplnění seznamu nežádoucích výrazů pomocí funkce Filtr slov.
Opisování kontrolních kódů
Uživateli jsou generovány do stránky kontrolní kódy, které musí opsat do daného textového pole. Lze navolit parametry kontrolních kódů - délku, zda se jedná o číslice či písmena apod.
Vyžaduje do HTML kódu vstupního formuláře doplnění několika vstupních polí a klíčových slov modulu, aby bylo zajištěno zobrazení kontrolních kódů a zobrazilo se vstupní pole pro jejich opsání.
Číselníky
Číselníky slouží k vytváření vstupních polí pro editaci obsahu katalogu v administrační části, která se zadávají výběrem z možných hodnot; jedná se o analogii funkce Číselníky v jádru WebToDate.
Po vyvolání funkce Číselníky v nabídce modulu se zobrazuje obrazovka, kde lze přidávat a editovat názvy číselníků. Odkazem Přidat se přidává nový číselník, specifikuje se pouze název a způsob práce s výběrem z číselníku při editaci dat (rozevírací nabídka / text s automatickým doplňováním). Klepnutím na název číselníku lze editovat tato dvě nastavení.
Klenutím na ikonu složky vedle názvu číselníku se zobrazí seznam hodnot číselníku.
V horní části obrazovky je seznam hodnot, odkazem Přidat nebo klikem na text ve sloupci Hodnota se přechází do editace jedné položky číselníku. Zde se vyplňuje:
Hodnota - hodnota položky číselníku jak se uloží do databáze při zadávání dat
Systémový název - zobrazuje se jako položka číselníku, např. v rozevírací nabídce
pomocný text - volitelný pomocný text s nápovědou pro položku číselníku
Lokalizovaný název - zadává se text, který se zobrazí pro položku číselníku v prezentační části, lze zadat pro každý jazyk jiný
Nový katalog
Pomocí další položky nabídky Nový katalog se zakládají katalogy.
Povinně se zde vyplňuje název katalogu, volí datová tabulka, nad kterou se katalog vytváří a pole pro jednoznačnou identifikaci záznamů v rámci dané datové tabulky (sloupec datové tabulky, který obsahuje vhodné jedinečné hodnoty, tyto hodnoty musí být použitelné v URL). Ostatní položky jsou nepovinné.
V nabídce Datová tabulka se ve výchozím stavu zobrazují názvy tabulek spravovaných modulem, tj. těch, jejichž názvy začínají na písmena KATD. Pokud je třeba založit katalog nad tabulkou s jiným názvem, existuje tato možnost – je toto třeba povolit v souboru config/global.php v konstantě CATALOGUE_TABLES (viz kapitola
Konfigurace v global.php). Tato volba ovšem pak umožňuje manipulaci s daty této tabulky i s její strukturou (včetně smazání), takže tuto možnost je třeba používat s opatrností. Po založení katalogu již volbu datové tabulky nelze změnit.
V tomto formuláři lze dále volit:
Předpis – změnou předpisu dojde ke změně grafických nastavení všech veřejně přístupných stránek patřících k danému katalogu. Jak je vysvětleno v kapitole Pracovní postupy, při zakládání nového katalogu zpravidla ještě definice předpisu není vytvořená, výjimkou může být pouze opakované použití předpisu pro více katalogů s totožnou strukturou.
Maximální velikost souborů - v případě, že katalog má vstupní formulář v prezentační části a součástí katalogu je i pole pro upload souborů, zadává se miximální velikost nahrávaného souboru v bytech
Povolené koncovky souborů - v případě, že katalog má vstupní formulář v prezentační části a součástí katalogu je i pole pro upload souborů, lze takto omezit typy souborů, které lze na server odesílat; koncovky se oddělují středníkem
Data jsou přístupná pro čtení – tato volba definuje, kdo může zobrazovat data katalogu pomocí veřejně přístupných skriptů modulu. Pokud je zvoleno Nikomu, stránky pro zobrazení dat katalogu vypíší pro dané ID katalogu chybové hlášení typu "Katalog nebyl nalezen" i v případě, že všechna ostatní nastavení (předpis apod.) jsou v pořádku a funkční. Další možnosti jsou Všem (tj. všem anonymním uživatelům) a Registrovaným s možností nepovinně ještě přístup omezit na vybranou skupinu uživatelů z modulu Registrace a personalizace. V případě, že je použita poslední volba, probíhá před zobrazením stránky s daty katalogu zjišťování, zda je uživatel k modulu Registrace a personalizace přihlášen, pokud tomu tak není, je přesměrován na přihlašovací stránku modulu Registrace a personalizace.
Vkládat data mohou – tato volba je analogická předchozí volbě, pouze se vztahuje na možnost vkládání dat pomocí skriptu iform.php.
Přihlašovací režim – význam volby je stejný jako v ostatních modulech spolupracujících s modulem Registrace a personalizace. Možnost Vyžadovat přihlášení vždy vyvolá přihlašovací formulář vždy, když v rámci session není uživatel přihlášen, možnost Rozpoznávat registrované uživatele se pokouší identifikovat registrovaného uživatele pomocí cookies, které modul Registrace a personalizace vytváří. Pokud je uživatel pomocí tohoto cookie jednoznačně identifikován, je přihlášen automaticky, v opačném případě opět dojde na přihlášení přes formulář.
Veřejný formulář vyvolává – pokud je daný katalog určen k tomu, aby pracoval se vstupním formulářem z veřejné části, v této volbě je třeba nadefinovat, zda se data z formuláře zapisují do datové tabulky, nebo odesílají e-mailem nebo oboje. Pokud je použito odesílání e-mailem, je třeba zadat e-mailovou adresu, na kterou se pošta odesílá a předmět těchto e-mailů.
Potvrzovací stránka – v této volbě lze určit, zda po odeslání formuláře s daty dochází rovnou k zápisu dat nebo se má ještě zobrazit potvrzovací stránka a teprve po schválení v této potvrzovací stránce dojde k zápisu dat z formuláře.
Dále se v nabídce Administrace zobrazují jednotlivé katalogy. Klepnutím na název katalogu se zobrazují vlastnosti katalogu. Tento formulář je identický s formulářem pro založení nového katalogu, jedinou změnou je, že nelze změnit výběr datové tabulky.
Pole a Třídění
V nabídce se pod názvem katalogu zobrazují možnosti Pole a Třídění. Pomocí funkce Pole se zakládají pole katalogu, zpravidla platí, že co sloupec datové tabulky to jedno pole katalogu. Formulář pro vlastnosti polí je zobrazen na následujícím otisku obrazovky, každé pole je třeba explicitně do katalogu přidat (např. odkazem Přidat vpravo nahoře).
Význam jednotlivých políček tohoto formuláře je následující:
Pořadové číslo – je třeba povinně explicitně zadat celé číslo, podle kterého se pole řadí. Podle tohoto čísla se řadí pole ve všech případech, kdy se generují fragmenty či styly v sekci Nástroje, podle tohoto čísla jsou rovněž seřazena editační pole v automaticky sestavovaném editačním formuláři dat katalogu v administračním rozhraní v sekci Data.
Nástroje: Ve vygenerovaném stylu či fragmentu lze ovšem dodatečně pořadí zobrazování polí katalogu jednoduše změnit prostým přesunem příslušných klíčových slov pro obsah polí v HTML kódu fragmentu či stylu.
Jméno pole v databázi – volí se z nabídky názvů polí tak jak jsou definována v datové tabulce katalogu.
Zobrazování pole – zadává se povinně popisek. Tento popisek se používá jednak při zobrazování v administrační části (např. ve formuláři při editaci dat), dále jej používají funkce v sekci Nástroje při vytváření fragmentů či stylů – po vygenerování takového objektu lze ovšem opět tyto popisky v HTML kódu jakkoliv měnit či dokonce odstranit. Maximální délka popisku je 50 znaků.
Zobrazovat v seznamu – udává, zda chceme zobrazovat pole ve stránce pro zobrazení seznamu položek katalogu. Pokud je zvoleno, nástroj pro generování stylu zahrne toto pole do zobrazení. Pokud klíčové slovo pro dané pole ze stylu pro zobrazení seznamu dodatečně odstraníme, pole nebude v seznamu zobrazováno. Pokud naopak dodatečně zrušíme tuto volbu v tomto formuláři, pole opět nebude zobrazováno, přestože odpovídající klíčové slovo ve stylu pro seznam položek zůstane.
Odkaz na detail – toto pole má dvojí význam. Při generování stylu pro seznam položek se na toto pole umístit odkaz na detailní zobrazení (neboli HTML značka <a>), nástroj pro editaci dat katalogu v administrační části na toto pole umístí odkaz na otevření editačního formuláře pro editaci záznamu v seznamu záznamů.
Zobrazovat na detailní stránce – pokud je tato volba zvolena, fragment vygenerovaný pomocí funkce Položka obsahuje klíčové slovo pro toto pole. Pokud klíčové slovo z fragmentu manuálně odstraníme, obsah pole se v detailním pohledu na jeden záznam nezobrazuje stejně tak jako v případě, kdy klíčové slovo ve fragmentu ponecháme ale dodatečně zrušíme tuto volbu v tomto formuláři.
Používat při prohledávání – Tato volba má dvojí význam. Jednak specifikuje, že podle daného pole je možné prohledávání v administračním rozhraní při editaci dat, jednak toto pole generuje funkce Vyhledávací formulář v sekci Nástroje do příslušného fragmentu. Podporována je možnost hledání pouze u některých datových typů (podle definice typu v datové tabulce) – konkrétně pro textové datové typy a pro celočíselné datové typy. Pokud je tedy např. v datové tabulce sloupec typu datum, nelze v tomto formuláři zvolit jeho prohledávání.
Zobrazovat v seznamu při úpravách – pomocí této volby se specifikuje, která pole se zobrazují v seznamu položek v nástroji pro editaci dat v administračním rozhraní. Pokud potřebujete data katalogu v administračním rozhraní editovat, je třeba aspoň jedno pole katalogu označit touto volbou.
Data lze vkládat z veřejné části – tato volba vyznačuje, že do tohoto pole je možné vkládat data pomocí vstupního formuláře veřejné části. Takto označená pole generuje funkce Vstupní formulář v sekci Nástroje do HTML kódu fragmentu. Pokud je dodatečně tato volba zrušena, je potřeba i příslušné klíčové slovo typu WTD_FCI odstranit z fragmentu – skript pro vkládání dat s klíčovým slovem příslušným k danému poli přestane pracovat a výsledkem je chyba typu FIELDSNOACCESS (viz chybové stavy v kapitole Veřejné skripty).
Výchozí hodnota – v tomto poli lze definovat výchozí hodnotu, která se předvyplní jak v administračním rozhraní ve formuláři pro editaci dat, tak ve veřejném formuláři dosazením hodnoty za příslušné klíčové slovo typu WTD_FCI.
Povinně vyplnit – volba vyznačuje, že pole musí povinně obsahovat nějakou hodnotu. Povinné vyplnění se kontroluje jak při vkládání dat formulářem z veřejné části tak při editaci dat v administračním rozhraní.
Jedinečná hodnota - volba vyznačuje, že pole musí obsahovat jedinečnou hodnotu v rámci daného sloupce datové tabulky. Hodnota se kontroluje jak při vkládání dat formulářem z veřejné části tak při editaci dat v administračním rozhraní.
Typ pole - rozevírací nabídka s možnostmi Běžné pole / ID souboru ze zdrojů / Číselník/ Soubor. Volba Běžné pole je určena pro vstupní pole zadávaná běžným způsobem, která reprezentují nějaký text, číslo apod. Volba ID souboru ze zdrojů je určena k tomu, aby bylo možné do dané tabulky vkládat odkazy na soubory z databáze zdrojů pomocí jejich ID. Volbu ID souboru ze zdrojů lze provést jen pro takové pole datové tabulky, jehož datový typ je celé číslo. Volba Číselník slouží k tomu, aby na pole byl napojen číselník s výběrem z možností. Volba Soubor se použije v případě, že pole slouží pro uložení souboru odeslaného pomocí vstupního formuláře v prezentační části.
Je-li nějaké pole označené jako Jedinečná hodnota, Povinně vyplnit a zároveň je použito jako pole pro jednoznačnou identifikaci ve vlastnostech katalogu a jeho typ je celočíselný, modul jej při vkládání dat z veřejně přístupného formuláře autoinkrementuje, počáteční hodnota je 1.
Druhou funkcí je Třídění. Pomocí definic třídění se specifikuje, v jakém pořadí se budou zobrazovat položky katalogu v zobrazení seznamu položek, týká se to jak zobrazení na veřejné části webu tak v administračním rozhraní pro editaci dat. Pravidel pro třídění pro vybraný katalog lze zadat více, pořadí v jakém se třídící kritéria uplatní se definují ve formuláři pro editaci způsobu třídění.
Zadává se pole, podle kterého se třídí (výběrem z polí datové tabulky), pořadí v pravidlech třídění a způsob třídění (vzestupně, sestupně).
Data
Nabídka modulu v této části umožňuje:
Zakládat nové datové tabulky, měnit jejich strukturu či je mazat
Exportovat z datových tabulek data a naopak je do nich importovat
Spravovat soubory k importu a exportované soubory
Editovat data jednotlivých katalogů
Seznam tabulek
První položkou nabídky je Seznam tabulek. V pravé horní části se zobrazí seznam datových tabulek katalogu, u každé tabulky jsou tlačítka Náhled, Export a Editovat.
Funkce Náhled je nejrychlejší způsob, jak zkontrolovat obsah tabulky – zobrazí v režimu pouze pro čtení prvních několik desítek záznamů v datové tabulce.
Společný formulář se používá pro zakládání nové tabulky (odkaz Přidat vpravo nahoře) a editaci struktury existující tabulky (tlačítko Editovat).
Formulář má dvě záložky – v záložce Tabulka se zadává pouze jméno tabulky (automaticky se ke jménu předřazují písmena KATD), v záložce Sloupce lze měnit strukturu tabulky.
Editor struktury tabulek mění strukturu okamžitě po potvrzení editace daného řádku, nelze tedy např. přidat několik sloupců na straně prohlížeče a pak změnu dávkově odeslat na server. Tlačítko Odebrat sloupec funguje bez potvrzování, změna se okamžitě provede. Pokud klepneme do kteréhokoliv pole v editačním řádku, ostatní řádky se uzamknou a formulář je v režimu změny vybraného sloupce tabulky.
Názvy sloupců lze volit libovolně s těmito omezeními:
Tabulka nesmí obsahovat dva sloupce stejného názvu
Maximální délka názvu je 50 znaků
Doporučujeme v názvech sloupců používat pouze písmena bez diakritiky a čísla, nikoliv např. mezery apod.
Datové typy se specifikují výběrem v poli Typ sloupce. Možné hodnoty jsou:
Celé číslo
Znak
Řetězec
Text
Reálné číslo
Datum
Typ Znak volte v případě, že pole má obsahovat menší a vždy stejný počet znaků. Typ Řetězec volte v případě, že pole obsahuje pokaždé jiný omezený (typicky do 255) počet znaků. Typ Text volte pro delší texty.
Délky polí lze volit pouze u typů Řetězec a Znak, u ostatních polí se délky nastavují automaticky a nelze je měnit.
Řetězec a Znak: Maximální délky těchto polí jsou omezeny, omezení závisí na konkrétním typu použité databáze a její verze – tato omezení je třeba zjistit v dokumentaci k dané databázi, jedná se o maximální délky typů VARCHAR a CHAR.
Pole lze rovněž opatřit databázovým indexem. Index je struktura databáze, která zrychluje přístup k datům podle daného sloupce. Použijte tuto možnost v případě, že se podle tohoto pole má třídit nebo vyhledávat. Pole typu Text nelze indexovat.
Strukturu datových tabulek lze měnit i v případě, že tabulka již obsahuje data. Je proto vhodné postupovat velmi obezřetně, data z odstraněného sloupce již rozhodně nelze obnovit.
Katalogy
Další funkcí je editace dat katalogů. Pod nabídkou Data / Katalogy se zobrazují názvy existujících katalogů, klepnutím na název se přechází do nástroje pro editaci dat katalogu. Obrazovka může vypadat např. tak, jak je znázorněno na následujícím otisku.
V horní části se zobrazuje stránkovaný seznam položek, vpravo nahoře jsou odkazy pro stránkování, přidání nového záznamu a přechod na vyhledávání. V seznamu se zobrazují ty sloupce, které mají v definici katalogu zvoleno Zobrazovat v seznamu při úpravách. Klepnutím na položku se ve spodní části otevírá editační formulář. Odkaz na otevření tohoto formuláře se umístí na to pole, které má v definici katalogu zvoleno Odkaz na detail.
Pomocí editačního formuláře lze záznamy měnit, mazat i přidávat. Formulář nemusí obsahovat všechny sloupce datové tabulky – obsahuje jen ty sloupce, pro které je definováno pole katalogu. Pořadí polí ve formuláři je dáno vlastností Pořadové číslo v definici pole katalogu. Formulář používá i další vlastnosti polí katalogu jako výchozí hodnoty a jedinečnost údaje ve sloupci tabulky. Je-li součástí formuláře pole pro jednoznačnou identifikaci, jeho popisek je zvýrazněn tučně. Pokud je pole označeno jako Povinně vyplnit, přidávají se za název pole v popisku formuláře znaky (*). Pokud je pole v datové tabulce typu text, objevuje se vedle vstupního pole ikona WYSIWYG editoru, po klepnutí na tuto ikonu lze obsah tohoto pole měnit a formátovat pomocí tohoto editoru.
Je-li v definici polí katalogu pole typu ID souboru ze zdrojů, příslušný řádek formuláře pro toto pole vypadá tak, jak je patrno z následujícího otisku obrazovky (pole "Obrázek").
Do pole lze pak vložit jen celé číslo, které existuje jako ID souboru v databázi zdrojů. Pomocí tlačítka Náhled se vyvolá náhled tohoto souboru v novém okně prohlížeče, pomocí tlačítka Vložit se vyvolá formulář pro výběr souboru z databáze zdrojů.
V horní části tohoto okna je vyhledávací formulář pro vyhledávání v databázi zdrojů, vyhledat můžete dle jakékoli kombinace metadat. Ve spodní části se po vyhledávání zobrazí seznam zdrojů odpovídající vyhledávací podmínce, u každého zdroje je seznam všech souborů ve zdroji. Klepnutím na šipku vlevo od názvu souboru se do formuláře pro editaci záznamu katalogu vkládá ID souboru, po klepnutí na šipku se toto okno uzavírá.
Vyhledávání používá ta pole, která mají v definici katalogu nastaveno Používat při prohledávání. Pokud je vyplněno více polí vyhledávacího formuláře, spojují se ve vyhledávací podmínce logickou spojkou "a zároveň".
Je-li nastaveno prohledávání podle aspoň jednoho textového pole, obsahuje formulář zaškrtávací okénko z volbou, zda prohledávat jen začátky textových polí. Pokud je toto zvoleno, musí obsah pole začínat na zadaný text, v opačném případě musí pole obsahovat (kdekoliv) zadaný text. Žádné složitější vyhledávací výrazy nejsou podporovány.
Jako poslední jsou v v nabídce Data funkce pro export a import dat. Pro manipulaci se soubory, které se mají importovat, resp. s exportovanými soubory slouží funkce Soubory. Grafické rozhraní této funkce zpřístupňuje obsah adresáře wwwroot/data a jeho podadresářů. Výchozí složky jsou
/data/katalogy/export/
pro export dat, resp.
/data/katalogy/import/
pro import dat. Adresář pro import lze změnit tak jak je popsáno v kapitole Konfigurace v global.php. Je nutné ručně zajistit, aby exportní i importní adresář existovaly, v opačném případě funkce pro export resp. import nejsou funkční.
V levé části okna pro soubory se přechází mezi složkami. V pravé části se zobrazuje obsah složky, klepnutím na název souboru se zobrazí jeho náhled, tak jak je vidět na následujícím otisku obrazovky.
Tlačítko Přidat soubor použijte v případě, že chcete do adresáře na serveru kopírovat soubor připravený k importu a umístěný na lokálním disku počítače. Naopak tlačítko Stáhnout soubor použijte v případě, že chcete na lokální disk stáhnout exportovaný soubor.
Poznámka: Maximální velikost souboru při kopírování z lokálního počítače na server je omezena nastavením v souboru php.ini, v případě práce s většími soubory je tedy třeba nejprve zkontrolovat toto nastavení, případně nakonfigurovat k adresáři přístup přes ftp server či jiný podobný způsob přímého přístupu.
Import
Funkce Import nejprve v pravé horní části okna zobrazí seznam souborů v importním adresáři. Klepnutím na název souboru se otevírá ve spodní části formulář pro spuštění importu.
V záložce Soubor se nachází pouze informace o tom, který soubor bude importován. V záložce Tabulka se nacházejí důležitá nastavení importu. V prvé řadě se zde volí, zda se importuje do existující tabulky nebo má import založit novou tabulku. Pokud se importuje do existující tabulky, lze zvolit, zda nová importovaná data pouze přidat a stávající ponechat nebo původní data nejprve smazat. Tlačítko Náhled zobrazí v novém okně náhled na importovaná data (prvních několik desítek záznamů), tlačítko Import spouští vlastní import dat.
Importovat lze z jednoho z podporovaných formátů dat, poznámky k jednotlivým formátům jsou v následující tabulce.
DBF
PHP funkce pro manipulaci s DBF soubory nepodporují datový typ MEMO, neboli dlouhé texty. Sloupce typu MEMO v importovaném DBF souboru se při importu ignorují.
Je-li SQL tabulka při importu zakládána automaticky, převezmou se názvy sloupců z DBF souboru a přiřadí se jim nejpodobnější datové typy SQL databáze.
Při importu do existující tabulky se porovnávají názvy sloupců v SQL tabulce a v importované tabulce a importuje se vyhledáváním sloupců se stejným názvem. To znamená, že struktura SQL tabulky nemusí být identická se strukturou importovaného DBF souboru – pokud jsou v DBF souboru nějaké sloupce navíc, ignorují se, pokud jsou naopak navíc nějaké sloupce v SQL tabulce, dosadí se do nich při importu hodnota null.
DBF formát obsahuje standardně nezobrazovaný sloupec nazvaný deleted, pomocí kterého se v tomto formátu označují odstraněné řádky. Import s tímto sloupcem pracuje – pokud import automaticky zakládá novou tabulku, vytvoří se i sloupce nazvaný deleted. Tento sloupec lze ale z SQL tabulky odstranit a bez problémů z DBF souboru importovat (viz předchozí poznámka).
Texty musí být v DBF souboru v takové kódové stránce v jaké mají být uloženy v SQL databázi, při importu nedochází k překódování.
XML
Konvence ohledně pojmenování XML elementů v importovaném souboru je následující:
Název kořenového elementu může být libovolný
Elementy oddělující jednotlivé řádky (původní záznamy v SQL tabulce) se vždy musí jmenovat <row>
Elementy pro jednotlivá pole jsou pojmenovány stejně jako názvy sloupců v datové tabulce, tedy např. <NAZEV> apod.
Je-li SQL tabulka při importu zakládána automaticky, převezmou se názvy sloupců podle XML struktury. Všechny automaticky založené sloupce datové tabulky v SQL databázi budou mít typ řetězec o délce 255 znaků. Pokud se tedy používá automatické zakládání tabulky při importu, je vhodné následně nastavit správné datové typy pro sloupce tabulky. Další vlastnost, která z tohoto chování vyplývá je ta, že v tomto případě budou všechny texty oříznuty na délku max. 255 znaků. Pokud tedy XML elementy obsahují texty delší než 255 znaků, je třeba buď nejprve strukturu tabulky založit ručně nebo po importu strukturu odpovídajících sloupců změnit (na typ dlouhý text) a import spustit ještě jednou.
Datumy by v importovaném souboru měly být v XML formátu 2005-05-04 11:41:00.
Nejvhodnější kódová stránka pro import je utf-8, importovat lze ale i XML soubory v jiných kódových stránkách.
CSV
Zatímco u ostatních formátů se nastavuje pouze tabulka do které se importuje a možnost ponechat či odstranit původní data v datové SQL tabulce, u CSV formátu se ve formuláři vyskytuje důležitá volba Data obsahují názvy sloupců – tuto volbu je třeba vždy správně nastavit.
Oddělovač sloupců může být čárka nebo středník, což je při importu detekováno automaticky.
Při automatickém zakládání SQL tabulky při importu budou mít všechny sloupce typ řetězec o délce 255 znaků – chování je stejné jako u XML formátu včetně možného nežádoucího oříznutí delších textů, je tedy vhodné nejprve strukturu tabulky připravit ručně.
Pokud CSV soubor neobsahuje v prvním řádku názvy sloupců, založí se názvy automaticky podle jmenné konvence sloupec_1, sloupec_2 atd., v opačném případě se sloupce v SQL tabulce pojmenují podle prvního řádku CSV souboru.
Pokud CSV soubor obsahuje v prvním řádku názvy sloupců, při importu do existující tabulky se importuje metodou vyhledávání stejných názvů sloupců v SQL tabulce – záleží tedy na těchto názvech a pokud se název sloupce liší nebude takový sloupec importován. Pokud naopak v prvním řádku názvy sloupců nejsou, importuje se podle pořadí, v jakém jsou sloupce definovány.
Texty musí být v CSV souboru v takovém kódování, v jakém mají být uloženy v SQL databázi.
Formát datumů se očekává stejný jako u XML formátu.
Při používání importu doporučujeme používat obvyklé konvence pro názvy sloupců tabulek apod., tj. spíše kratší jména, bez diakritiky, pouze písmena a číslice. Funkčnost importu je do značné míry daná tím, jak pracují příslušné funkce PHP – např. PHP funkce zjišťující název sloupce tabulky vrací pro databázi MS SQL Server maximálně 30 znaků, je-li název sloupce delší, import nemůže proběhnout.
Export
Pomocí funkce Export lze exportovat data nejen z tabulek, které spravuje modul Formuláře a katalogy, ale ze všech tabulek databáze, kterou instalace WebToDate používá. V pravé horní části se zobrazuje seznam těchto SQL tabulek, v každém řádku je tlačítko Náhled, které ve spodním rámci zobrazí prvních několik záznamů v tabulce, a dále tlačítko Export, které vyvolá ve spodním rámci formulář pro export dat.
První záložka exportního formuláře se nazývá Tabulka. Lze v ní specifikovat:
Které sloupce vybrané SQL tabulky se exportují
Které záznamy tabulky se exportují
V jakém pořadí se exportují
V prvé řadě se ve sloupci Vybrat pomocí zaškrtávacích políček vyznačí sloupce, které se mají exportovat.
Výchozí stav formuláře je takový, že není vybrán žádný sloupec. Přinejmenším je proto třeba použít tlačítko Vše a tím vybrat všechny sloupce tabulky.
Dále lze specifikovat kritéria pro export, v podstatě vyhledávací podmínku, která vybere určitou množinu záznamů tabulky. V příslušném řádku formuláře se ve sloupci Splňující podmínku vybere operátor (tj. např. =, >, < apod.) a ve stejném řádku ve sloupci Vzhledem k se zadá příslušná hodnota. Těchto omezujících podmínek lze zadat několik, ve spodní části formuláře je radiopřepínač specifikující, zda se více zadaných podmínek spojuje logickou spojkou "a zároveň" nebo logickou spojkou "nebo". Operátor LIKE znamená, že zadaný řetězec se vyskytuje kdekoliv v textu. Pokud není zadaná žádná omezující podmínka, exportují se všechny záznamy.
Další možností je specifikovat řazení záznamů do exportovaného souboru. Lze vybrat dva sloupečky, podle kterých se řadí (ve formuláři sloupce Primárně a Sekundárně), v posledním sloupci formuláře lze pak specifikovat, zda se jedná o vzestupné nebo sestupné řazení. Není-li žádné řazení vybráno, záznamy se exportují v pořadí, v jakém se nacházejí v SQL tabulce.
Ve druhé záložce Soubor se specifikuje formát exportovaného souboru, jeho název a volba, zda soubor v případě jeho existence kompletně přepsat nebo připojit data na konec souboru.
Název výstupního souboru zadávejte včetně přípony, vytváří se soubor podle přesně zadaného jména. Pomocí tlačítka Test lze ověřit, zda soubor se zadaným jménem již existuje a export se jej pokusí přepsat nebo takový soubor neexistuje a bude se zakládat nový.
Soubory
Exportovaný soubor je exportní funkcí uložen do adresáře pro export, ze kterého je možné jej stáhnout pomocí funkce Soubory.
Zvolit lze jeden z podporovaných formátů exportovaného souboru, poznámky k jednotlivým formátům jsou v následující tabulce.
DBF
PHP funkce pro manipulaci s DBF soubory nepodporují datový typ MEMO, neboli dlouhé texty. Sloupce typu MEMO v importovaném DBF souboru se při importu ignorují.
Je-li SQL tabulka při importu zakládána automaticky, převezmou se názvy sloupců z DBF souboru a přiřadí se jim nejpodobnější datové typy SQL databáze.
Při importu do existující tabulky se porovnávají názvy sloupců v SQL tabulce a v importované tabulce a importuje se vyhledáváním sloupců se stejným názvem. To znamená, že struktura SQL tabulky nemusí být identická se strukturou importovaného DBF souboru – pokud jsou v DBF souboru nějaké sloupce navíc, ignorují se, pokud jsou naopak navíc nějaké sloupce v SQL tabulce, dosadí se do nich při importu hodnota null.
DBF formát obsahuje standardně nezobrazovaný sloupec nazvaný deleted, pomocí kterého se v tomto formátu označují odstraněné řádky. Import s tímto sloupcem pracuje – pokud import automaticky zakládá novou tabulku, vytvoří se i sloupce nazvaný deleted. Tento sloupec lze ale z SQL tabulky odstranit a bez problémů z DBF souboru importovat (viz předchozí poznámka).
Texty musí být v DBF souboru v takové kódové stránce v jaké mají být uloženy v SQL databázi, při importu nedochází k překódování.
XML
Konvence ohledně pojmenování XML elementů v importovaném souboru je následující:
Název kořenového elementu může být libovolný
Elementy oddělující jednotlivé řádky (původní záznamy v SQL tabulce) se vždy musí jmenovat <row>
Elementy pro jednotlivá pole jsou pojmenovány stejně jako názvy sloupců v datové tabulce, tedy např. <NAZEV> apod.
Je-li SQL tabulka při importu zakládána automaticky, převezmou se názvy sloupců podle XML struktury. Všechny automaticky založené sloupce datové tabulky v SQL databázi budou mít typ řetězec o délce 255 znaků. Pokud se tedy používá automatické zakládání tabulky při importu, je vhodné následně nastavit správné datové typy pro sloupce tabulky. Další vlastnost, která z tohoto chování vyplývá je ta, že v tomto případě budou všechny texty oříznuty na délku max. 255 znaků. Pokud tedy XML elementy obsahují texty delší než 255 znaků, je třeba buď nejprve strukturu tabulky založit ručně nebo po importu strukturu odpovídajících sloupců změnit (na typ dlouhý text) a import spustit ještě jednou.
Datumy by v importovaném souboru měly být v XML formátu 2005-05-04 11:41:00.
Nejvhodnější kódová stránka pro import je utf-8, importovat lze ale i XML soubory v jiných kódových stránkách.
CSV
Zatímco u ostatních formátů se nastavuje pouze tabulka do které se importuje a možnost ponechat či odstranit původní data v datové SQL tabulce, u CSV formátu se ve formuláři vyskytuje důležitá volba Data obsahují názvy sloupců – tuto volbu je třeba vždy správně nastavit.
Oddělovač sloupců může být čárka nebo středník, což je při importu detekováno automaticky.
Při automatickém zakládání SQL tabulky při importu budou mít všechny sloupce typ řetězec o délce 255 znaků – chování je stejné jako u XML formátu včetně možného nežádoucího oříznutí delších textů, je tedy vhodné nejprve strukturu tabulky připravit ručně.
Pokud CSV soubor neobsahuje v prvním řádku názvy sloupců, založí se názvy automaticky podle jmenné konvence sloupec_1, sloupec_2 atd., v opačném případě se sloupce v SQL tabulce pojmenují podle prvního řádku CSV souboru.
Pokud CSV soubor obsahuje v prvním řádku názvy sloupců, při importu do existující tabulky se importuje metodou vyhledávání stejných názvů sloupců v SQL tabulce – záleží tedy na těchto názvech a pokud se název sloupce liší nebude takový sloupec importován. Pokud naopak v prvním řádku názvy sloupců nejsou, importuje se podle pořadí, v jakém jsou sloupce definovány.
Texty musí být v CSV souboru v takovém kódování, v jakém mají být uloženy v SQL databázi.
Formát datumů se očekává stejný jako u XML formátu.
Protokoly
V části Protokoly lze procházet protokol modulu týkající se zápisů nových záznamů.
Zobrazují se záznamy o vložených i odmítnutých záznamech, pokud je vložení odmítnuto antispamovou kontrolou, je zde uveden typ kontroly, která odmítnutí vyvolala.
Zakázané IP adresy
Funkce Zakázané IP adresy ovládá přidávání IP adres na blacklist (seznam zakázaných adres) a jejich odstraňování z blacklistu.
Seznam adres je společný pro všechny katalogy a ovládá se stejným způsobem jako jiné funkce WebToDate modulů. Ve formuláři se zadává pouze IP adresa, datum vložení a údaj o uživateli se doplňuje automaticky.
Veřejné skripty
Zobrazování dat
Prezentační skripty modulu se nacházejí v adresáři /scripts/modules/catalogue/. Pro zobrazování dat lze použít skripty:
default.php – zobrazuje seznam katalogů
list.php – zobrazuje seznam položek katalogu
detail.php – zobrazuje jednu položku katalogu
search.php – zobrazuje vyhledávací stránku pro katalog
Skript default.php zobrazující seznam katalogů zobrazuje názvy existujících katalogů a odkazy na stránky zobrazující seznam položek katalogu. Skript zobrazuje jen ty katalogy, u kterých je nastaveno Data jsou přístupná pro čtení : Všem. Využití této stránky je nepovinné, odkazy na jednotlivé katalogy lze používat v jiných stránkách libovolně a stránka zobrazující seznam všech veřejně přístupných katalogů nemusí mít na daném webu využití.
Seznam katalogů je reprezentován v předloze stránky klíčovým slovem <!--WTD_CATALOGUE(LIST)-->. Žádné jiné klíčové slovo nelze v předloze použít, pouze lze v předloze použít podmíněné zobrazení chybového hlášení <!--WTD_IF(NOTFOUND,"Žádný katalog není k dispozici.")-->. Seznam katalogů se formátuje zvoleným WebToDate stylem. Nejjednodušší styl lze pro tyto účely vytvořit tak, že do jeho těla zadáme kód
Tento příklad obsahuje klíčová slova pro název katalogu a pro odkaz na stránku se seznamem položek. Kromě toho lze v tomto stylu použít i klíčové slovo <!--WTD_CATALOGUE(SEARCHURL)-->, za které se dosazuje pro daný katalog URL vyhledávací stránky.
Důležitějším skriptem je skript list.php zobrazující seznam položek daného katalogu. Základní objekty, které se mohou v předloze vyskytovat, jsou seznam záznamů (reprezentovaný klíčovým slovem <!--WTD_CATALOGUE(LIST)-->) a stránkovací navigační lišta (reprezentovaná klíčovým slovem <!--WTD_CATALOGUE(NAVIG)-->). Dále lze do předlohy této stránky umístit:
název zobrazovaného katalogu (<!--WTD_CATALOGUE(NAME)-->)
ID zobrazovaného katalogu (<!--WTD_CATALOGUE(ID)-->)
Odkaz na první stránku se seznamem položek (<!--WTD_CATALOGUE(LISTURL)-->)
Odkaz na vyhledávací stránku (<!--WTD_CATALOGUE(SEARCHURL)-->)
Hlášení o tom, že katalog neobsahuje žádné položky (<!--WTD_IF(NOTFOUND,"…")-->.)
Ve stránce se může navíc vyskytovat vyhledávací formulář – z tohoto hlediska jsou možnosti práce s předlohou stejné jako na stránce pro Vyhledávání (z klíčových slov tedy ve stránce fungují klíčová slova typu <!--WTD_FCDISTINCT(''neco'')-->).
Stránkovací lišta se vždy formátuje jednotně podle nastavení pro navigační lištu v nastaveních modulu. Seznam položek katalogu se formátuje zvoleným WebToDate stylem. Jednoduchý příklad těla tohoto stylu vypadá následovně:
Klíčová slova typu <!--WTD_FC(''neco'')--> zde reprezentují pole katalogu, přičemž neco je název sloupce datové tabulky. Dále lze ve stylu použít tyto klíčová slova:
<!--WTD_IF_NULL(neco, "…")--> - kód se vkládá pouze pokud pole neco je prázdné
<!--WTD_IF_NOTNULL(neco, "…")--> - kód se vkládá pouze pokud pole neco není prázdné
<!--WTD_F(NUMBER)--> - číslování záznamů v seznamu
<!--WTD_CATALOGUE(DETAILURL)--> - odkaz na detailní stránku
Podmíněné vkládání obsahu polí lze použít např. v případech, kdy chceme odkaz (obrázek či e-mailovou adresu apod.) vložit pouze v případě, kdy je v záznamu nějaká hodnota, např. takto:
</cede>
Číslování pomocí <!--WTD_F(NUMBER)--> zobrazuje pro větší přehlednost pro každý záznam katalogu číslo dané vypisovaným pořadím na stránce se započtením stránkování záznamů, toto číslování tedy nemá žádnou souvislost s daty katalogu.
Důležité je klíčové slovo <!--WTD_CATALOGUE(DETAILURL)-->, za které se dosazuje odkaz na zobrazení detailní stránky s jednou položkou katalogu. Toto URL se generuje ve tvaru
V parametrech skriptu pro zobrazení detailu jedné položky se tedy musí vyskytovat jak ID katalogu, tak identifikátor záznamu (v parametru linkvalue).
Skript pro zobrazení jedné položky detail.php je určen k zobrazení jednoho záznamu datové tabulky katalogu. Všechna klíčová slova se zde umísťují do předlohy, stránka nepoužívá žádný WebToDate styl. Nejdůležitější klíčová slova v předloze jsou:
<!--WTD_FC(''neco'')--> - klíčové slovo zastupující pole datové tabulky (neco = název sloupce datové tabulky)
<!--WTD_IF_NULL(''neco'', "…")--> - kód se vkládá pouze pokud pole neco je prázdné
<!--WTD_IF_NOTNULL(''neco'', "…")--> - kód se vkládá pouze pokud pole neco není prázdné
Jednoduchý příklad HTML kódu části předlohy zobrazující vybraná data z jedné položky katalogu vypadá následovně:
I v této stránce lze použít klíčová slova jako název katalogu apod. a vytvořit vyhledávací formulář (jsou tedy zde aktivní klíčová slova <!--WTD_FCDISTINCT(''neco'')-->), více viz kapitola Klíčová slova modulu.
Stránku s vyhledávacím formulářem lze vytvořit pomocí zobrazení skriptu search.php. Skript vyžaduje jako povinný parametr ID katalogu, zobrazuje se tedy např. jako /scripts/modules/catalogue/search.php?catalogueID=1. Možnosti vyhledávacího formuláře v této stránce platí i pro stránky zobrazující seznam položek katalogu a detail jedné položky.
Za klíčové slovo <!--WTD_CATALOGUE(LISTURL)--> se v tomto příkladu dosadí URL pro zobrazení seznamu položek daného katalogu. Textová pole formuláře pro hledání musí mít atribut name odpovídající názvům polí (sloupců datové tabulky) katalogu.
Pro prohledávání platí:
Prohledávat lze v katalogu jen pole textových a celočíselných typů, prohledávání jiných typů polí není podporováno.
Prohledává se pouze s testem na rovnost nebo u textových polí na výskyt uvnitř textu (tj. podmínka LIKE). Není podporována možnost prohledávat na podmínku danou intervalem hodnot (tedy např. že daná hodnota musí být větší než nějaké číslo a menší než nějaké číslo).
Tato pole musí být v katalogu označena jako Používat při prohledávání.
Pokud má formulář více vyplněných polí, spojuje se vždy vyhledávací podmínka logickou spojkou "a zároveň". Pokud se prohledává podle celočíselného pole, hledá se vždy podle testu na rovnost. Pokud se prohledává podle textového pole, hledá se výskyt řetězce kdekoliv uvnitř textového pole. Existuje zde ovšem možnost, jak hledání v textech omezit na hledání výskytu textového řetězce na začátku textových polí. Z vyhledávacího formuláře je třeba v tom případě předat parametr searchin s hodnotou begin, např. pomocí následujícího kódu umístěného dovnitř formuláře:
V tom případě se hledaný text nemá vyskytovat kdekoliv uvnitř textového pole, ale na jeho začátku.
Jednoduchý vyhledávací formulář tedy obsahuje pouze textová pole pojmenovaná odpovídajícím způsobem. Je ovšem podporována i složitější možnost – totiž vytváření pop-up menu, která nabízejí jedinečné hodnoty z daného sloupce databáze. Výše uvedený příklad prohledává katalog hudebních titulů, kde chceme kromě textových polí typu "interpret" prohledávat i podle typu nosiče (CD, MC apod.). Typ nosiče je v datové tabulce uveden jako text, pomocí klíčového slova <!--WTD_FCDISTINCT(''neco'')-->) vložíme do formuláře všechny unikátní hodnoty daného sloupce s typem nosiče včetně příslušných HTML <option> značek:
Výsledný formulář pak vypadá v HTML stránce zhruba takto:
Výpis položek je standardně setříděn podle nastavení Administrace / název katalogu / Třídění v administračním rozhraní modulu. Toto třídění lze změnit přes parametr sort z vyhledávacího formuláře nebo z URL. Jako hodnota parametru sort se vkládá název sloupce, podle kterého se má třídit. Třídění je pak vždy podle tohoto jednoho vybraného sloupce vzestupně.
Příklad HTML kódu pro volbu třídění je pak následující:
<label for="sort">Třídit podle</label><br />
<input type="radio" name="sort" value="nazev" checked="checked" /> Názvu
<input type="radio" name="sort" value="autor" /> Jména autora
Poznámka: pokud se používá možnost volby třídění a v dané datové tabulce katalogu je větší množství záznamů, je doporučeno opatřit sloupce, podle kterých se třídí indexem (viz kapitola Data), jinak hrozí zpomalení sestavování stránek se seznamem položek a vyšší zátěž serveru.
Další možností rozšíření možností vyhledávání je hledání dle intervalu hodnot. Uvedeme-li ve vyhledávacím formuláři např. pole
Počet kusů: <input type="text" name="pockusu" value="" />
a je-li toto pole vyplněno, testuje se v prohledávaném sloupci na výskyt zadané hodnoty (pokud se jedná o textový sloupec) nebo na rovnost (pokud se jedná o jiné datové typy). Pokud ale uvedeme ve formuláři pole
Min. počet kusů: <input type="text" name="pockusu[min]" value="" />
Max. počet kusů: <input type="text" name="pockusu[max]" value="" />
můžeme prohledávat na rozsah hodnot, tj. hledat záznamy, kde v daném sloupci se vyskytuje jako minimální číslo hodnota zadaná do pole pockusu[min] a jako maximální číslo hodnota zadaná do pole pockusu[max]. Pro tuto volbu se tedy postupuje tak, že jako jméno pole formuláře nebo parametr URL se použije název sloupec datové tabulky s příponou [min] resp. [max]. Pro možnost prohledávání dle intervalu hodnot jsou podporovány celočíselné datové typy datové tabulky katalogu.
Vyhledávací formulář nepodporuje žádná další "aktivní" klíčová slova, nelze tedy např. zajistit, že stránka s výsledky hledání zobrazí formulář, který bude obsahovat údaje již uživatelem zadané v předchozí stránce apod.
Vkládání dat
Pro vkládání dat se používá skript /scripts/modules/catalogue/iform.php. Hlavní možnosti tohoto skriptu jsou:
Zobrazení formuláře pro vkládání dat
Zobrazení potvrzovací stránky
Zobrazování chybových hlášení aktivovaných kontrolou zadaných dat
Odeslání e-mailu s daty vloženými do formuláře
Přesměrování na vybranou stránku po úspěšném vložení dat z formuláře do katalogu.
Logika fungování tohoto skriptu je zhruba popsána následujícím vývojovým diagramem:
Hlavním povinným parametrem skriptu je ID katalogu, do kterého se vkládají data catalogueid.
Příklad jednoduchého kódu pro vstupní formulář je následující:
<form action="/scripts/modules/catalogue/iform.php?catalogueid=<!--WTD_CATALOGUE(ID)-->" method="post">
<input type="hidden" name="returnurl" value="/"/>
<!--WTD_IF(DATATYPEERROR,"Datový typ některého pole není možné zpracovat.")-->
<!--WTD_IF(MANDATORYERROR,"Některé povinné pole není vyplněno.")-->
<!--WTD_IF(FIELDSCONFLICT,"Obsah formuláře nelze zapsat")-->
<!--WTD_IF(FIELDSNOACCESS,"Obsah formuláře nelze zapsat")-->
<!--WTD_IF(GENERALERROR,"Obsah formuláře nelze zapsat")-->
<label for="JMENO">Jméno a příjmení</label><br/>
<input type="text" id="JMENO" name="JMENO" value="<!--WTD_FCI(JMENO)-->"/> *
<br/>
<label for="EMAIL">E-mailová adresa</label><br/>
<input type="text" id="EMAIL" name="EMAIL" value="<!--WTD_FCI(EMAIL)-->"/> *
<br/>
<label for="VZKAZ">Další požadavky a komentáře</label><br/>
<textarea rows="10" rows="" name="VZKAZ" id="VZKAZ"><!--WTD_FCI(VZKAZ)--></textarea>
<br/>
<input type="submit" name="catalogue_insert_button" value="Odeslat" />
<p> Pole označená * jsou povinná. </p>
</form>
Hlavní "aktivní" klíčová slova jsou <!--WTD_FCI(''neco'')--> zastupující hodnoty vkládaných polí. Názvy polí katalogu, do kterých se vkládá, se musí shodovat s atributem ''name'' vstupního formuláře. Klíčová slova <!--WTD_FCI(''neco'')--> jsou zde proto, aby v případě, že data neprojdou vstupní kontrolu se mohl zobrazit formulář včetně zadaných hodnot a vedle toho případná chybová hlášení reprezentovaná klíčovými slovy typu WTD_IF.
Na stejném principu pracuje i případná potvrzovací stránka, i zde se používají klíčová slova typu <!--WTD_FCI(''neco'')-->, jednou se použijí pro zobrazení a podruhé jako hodnota hidden pole, která se po potvrzení přenáší jako hodnota, která bude uložena. Jedna položka formuláře na potvrzovací stránce pak vypadá např. takto:
Jako u všech ostatních typů stránek, i zde je vhodné tyto kódy formulářů primárně vygenerovat jako fragmenty pomocí nabídky Nástroje a následně je upravit podle potřeb.
Vstupní skript provádí řadu kontrol a to i několikrát (pokud je použita potvrzovací stránka, tak i před uložením z potvrzovací stránky). Jedná se zejména o:
Datové typy polí (tj. zda se např. někdo nepokouší do celočíselného pole zadat text apod.)
Povinné vyplnění polí a unikátní hodnoty
Názvy polí formulářů a názvy polí datové tabulky musí odpovídat
Zda nejde o pokus zapsat hodnotu pole, které v definice katalogu není určeno k zápisům z veřejné části serveru.
Těmto kontrolám odpovídají možná chybová hlášení uvedená v kapitole Klíčová slova modulu .
Pokud se k vygenerování vstupního formuláře použije funkce z nabídky Nástroje, vygenerují se všechna vstupní pole jako textová. Následně je možné změnit vstupní formulář tak, že místo některých textových polí se vytvoří nabídky formou pop-up menu, radiopřepínačů apod. Platí to, že důležité jsou pro daný element formuláře atributy name a value, na typu pole nezáleží. Je třeba si ovšem uvědomit, že pokud dojde k chybě, zobrazí skript pro vkládání dat tu samou stránku se vstupním formulářem, kde klíčová slova typu WTD_FCI nahradí údaji, které zadal uživatel – pro jiná pole než textová pak dost dobře nelze nastavit správnou volbu, kterou uživatel v předchozím kroku zadal (atribut selected daného formulářového pole).
Pro implementaci odesílání souborů na server se postupuje následovně:
V datové tabulce se nadefinuje pole typu řetězec (např. varchar)
V katalogu se typ pole označí jako Soubor
V HTML kódu formuláře se použije method="post" enctype="multipart/form-data"
Příslušné vstupní pole formuláře bude mít v předloze kód cca
Po uploadu jsou soubory uloženy do adresáře /offlinedata/catalogue/files/, v příslušném poli datové tabulky se nachází název souboru; může dojít k přejmenování souboru aby se zajistila unikátnost názvu souboru, nežádoucí znaky v názvu souboru apod.
Možnosti omezení přístupu k zobrazení nebo vkládání dat
Jak je uvedeno v kapitole Administrace, lze na úrovni katalogu nadefinovat, kdo (z hlediska veřejné části webu) může zobrazovat data katalogu a kdo do katalogu může vkládat.
Pokud je pro zobrazování zvoleno Nikomu, je chování následující:
Katalog se nezobrazuje v seznamu katalogů
Pokud se pokusíme zobrazit seznam položek katalogu přímo přes skript list.php, dostáváme chybové hlášení typu "Katalog nebyl nalezen"
Stejné hlášení dostáváme u daného katalogu i pro skripty zobrazující jeden záznam a vyhledávací stránku.
Pokud vyvoláme skript pro vkládání dat iform.php pro katalog, který má nastaveno pro vkládání dat Nikdo, dostáváme chybové hlášení typu "Předloha není definována".
Je-li na serveru instalován navíc modul Registrace a personalizace, lze kromě přístupů Všichni / Nikdo nastavit ve vlastnostech katalogu ještě přístup registrovaným uživatelům, a to odděleně pro prohlížení dat katalogu a pro vkládání dat do katalogu. V obou případech lze zvolit, že přístup mají buď všichni registrovaní nebo jen jedna vybraná skupina. Chování veřejných skriptů je pak následující:
Pokud uživatel není přihlášen a pokusí se zobrazit nějakou stránku související s daným katalogem (zobrazení dat nebo vstupní formulář), je přesměrován na přihlašovací stránku (/scripts/modules/registration/login.php). Po úspěšném přihlášení je přesměrován zpět na původní stránku.
Pokud uživatel je přihlášen a je nastaven přístup všem registrovaným, požadovaná stránka se ihned zobrazí.
Pokud je uživatel přihlášen a je nastaven přístup pouze určité skupině uživatelů, je při pokusu o zobrazení stránky nejprve vyhodnoceno, zda přihlášený uživatel patří do nastavené skupiny. Pokud tomu tak je, stránka se zobrazí, pokud tomu tak není, je uživatel přesměrován na stránku Odmítnutí přístupu v případě vkládání dat a na přihlašovací formulář v případě zobrazování dat.
Klíčová slova modulu
Tato kapitola obsahuje souhrn všech klíčových slov modulu, která se používají v předlohách a WebToDate stylech.
Klíčová slova použitelná v předloze – všechny stránky kromě seznamu katalogů a e-mailů
Klíčové slovo
Význam
Poznámka
<!--WTD_CATALOGUE(ID)-->
ID katalogu
<!--WTD_CATALOGUE(NAME)-->
Název katalogu
<!--WTD_CATALOGUE(LISTURL)-->
URL zobrazující stránku se seznamem položek katalogu
<!--WTD_CATALOGUE(SEARCHURL)-->
URL zobrazující vyhledávací stránku pro daný katalog
Klíčová slova použitelná v předloze – seznam katalogů
Klíčové slovo
Význam
Poznámka
<!--WTD_CATALOGUE(LIST)-->
Seznam katalogů
<!--WTD_IF(NOTFOUND,"…")-->
Hlášení v případě, že nebyl nalezen žádný katalog
Klíčová slova použitelná ve stylu seznamu katalogů
Klíčové slovo
Význam
Poznámka
<!--WTD_CATALOGUE(NAME)-->
Název katalogu
<!--WTD_CATALOGUE(ID)-->
ID katalogu
<!--WTD_CATALOGUE(LISTURL)-->
URL zobrazující stránku se seznamem položek katalogu
<!--WTD_CATALOGUE(SEARCHURL)-->
URL zobrazující vyhledávací stránku pro daný katalog
Klíčová slova použitelná v předloze – seznam položek katalogu
Klíčové slovo
Význam
Poznámka
<!--WTD_CATALOGUE(LIST)-->
Seznam položek (záznamů)
<!--WTD_CATALOGUE(NAVIG)-->
Navigační lišta
<!--WTD_IF(NOTFOUND,"…")-->
Hlášení v případě, že nebyl nalezen žádný záznam
<!--WTD_FCDISTINCT(''neco'')-->
Zobrazení jedinečných hodnot daného sloupce
Pro účely vyhledávacího formuláře, vytváří se včetně HTML <option> značek
Klíčová slova použitelná ve stylu seznamu položek katalogu
Klíčové slovo
Význam
Poznámka
<!--WTD_FC(''neco'')-->
klíčové slovo zastupující hodnotu pole datové tabulky
(neco = název sloupce datové tabulky)
<!--WTD_IF_NULL(''neco'', "…")-->
kód se vkládá pouze pokud pole neco je prázdné
(neco = název sloupce datové tabulky)
<!--WTD_IF_NOTNULL(''neco'', "…")-->
kód se vkládá pouze pokud pole neco není prázdné
(neco = název sloupce datové tabulky)
<!--WTD_F(NUMBER)-->
Číslování položek v zobrazeném seznamu
<!--WTD_CATALOGUE(DETAILURL)-->
Odkaz na zobrazení detailní stránky zobrazující jeden záznam
Klíčová slova použitelná v předloze - zobrazení jedné položky katalogu
Klíčové slovo
Význam
Poznámka
<!--WTD_FC(''neco'')-->
klíčové slovo zastupující hodnotu pole datové tabulky
(neco = název sloupce datové tabulky)
<!--WTD_IF_NULL(''neco'', "…")-->
kód se vkládá pouze pokud pole neco je prázdné
(neco = název sloupce datové tabulky)
<!--WTD_IF_NOTNULL(''neco'', "…")-->
kód se vkládá pouze pokud pole neco není prázdné
(neco = název sloupce datové tabulky)
<!--WTD_FCDISTINCT(''neco'')-->
Zobrazení jedinečných hodnot daného sloupce
Pro účely vyhledávacího formuláře, vytváří se včetně HTML <option> značek
Klíčová slova použitelná v předloze - vyhledávací stránka katalogu
Klíčové slovo
Význam
Poznámka
<!--WTD_FCDISTINCT(''neco'')-->
Zobrazení jedinečných hodnot daného sloupce
Pro účely vyhledávacího formuláře, vytváří se včetně HTML <option> značek
Klíčová slova použitelná v předloze – stránky pro vkládání dat přes formulář
Klíčové slovo
Význam
Poznámka
<!--WTD_FCI(''neco'')-->
klíčové slovo zastupující hodnotu atributu value vstupního formuláře
Skripty používají následující speciální parametry (v URL nebo ve vyhledávacích formulářích). Vzhledem k vyhrazenému významu těchto parametrů to znamená, že názvy sloupců datových tabulek se nesmí shodovat s názvy těchto parametrů:
catalogueid – ID katalogu
linkvalue – hodnota pole pro jednoznačnou identifikaci (používá skript pro zobrazení detailní stránky jedné položky katalogu)
pg – používá stránkovací lišta pro stránkování
searchin – udává způsob prohledávání textových polí (používá skript pro zobrazení seznamu položek katalogu)
sort – může být použit pro výběr sloupce, podle kterého se třídí seznam položek
returnurl – využívá skript pro vkládání dat z veřejných formulářů jako URL stránky zobrazené po úspěšném vložení záznamu
tmplid – parametrem lze vynutit pro stránku jinou předlohu, hodnotou je ID této předlohy
lid, locale, dlid, dlocale – využívají všechny moduly jako identifikátory pro jazyky
Modul obsahuje rozhraní pro napojení jiných aplikací, které umožňuje těmto aplikacím aktualizaci obsahu jednotlivých katalogů, tj. vkládání, aktualizaci a mazání záznamů v datových tabulkách katalogů.
Princip řešení
Na serveru je umístěn skript /gate/catupdate/default.php. Adresář gate je virtuální adresář www serveru fyzicky umístěný na stejné úrovni jako např. adresář wwwroot. Z bezpečnostních důvodů je velmi vhodné přístup na tento virtuální adresář omezit pouze na IP adresu serveru, na kterém běží aplikace, která má měnit data modulu.
Tento skript přijímá přes protokol http POST příkazy ve formátu XML, provádí je a zpět zasílá (opět v XML) potvrzení. Příkazem může být buď pokyn ke smazání jedné položky daného katalogu nebo pokyn k vložení nebo aktualizaci záznamu jednoho katalogu.
Vkládání / aktualizace se synchronizuje na úrovni ID záznamů, externí aplikace tedy musí znát a používat identifikátory používané v dané datové tabulce. Při mazání se načítá jen ID záznamu, který se má mazat, při vkládání nebo aktualizaci celý záznam, tj. jeden řádek tabulky.
Skript zachycuje všechny potencionální chybové stavy a podává o nich hlášení prostřednictvím vraceného XML kódu – jedná se například o žádost o smazání neexistujícího záznamu, chybu při zápisu do databáze apod. Všechny události se protokolují do speciálního logu, kde se dá kontrolovat, zda komunikace probíhá v pořádku.
XML formáty přenosů
Každá žádost o aktualizaci obsahuje název datové tabulky, se kterou se manipuluje. Následuje příkaz (smazat / přidat nebo aktualizovat). Pak následují vlastní data – buď je uveden pouze unikátní identifikátor (v případě mazání) nebo celý řádek tabulky (v případě vložení či aktualizace).
Kořenový element žádosti o aktualizaci je vždy <catupdaterequest''>,'' následuje kód ''<dbtable name="název_tabulky" idcolumn="název_sloupec_pro_jednoznačnou_identifikaci''"/>,'' který specifikuje, která datová tabulka se má aktualizovat a jaký sloupec se používá pro vyhledávání záznamů (jednoznačnou identifikaci). Dále je povinné uvést element ''<command''>, který má v atributu type uveden typ operace, možné hodnoty jsou delete / update.
Smazání záznamu
Následující XML kód slouží jako příkaz ke smazání jednoho záznamu s daným ID. per_id je název sloupce datové tabulky použitého v katalogu jako sloupec pro identifikaci záznamů.
Následující kód dostává zpět externí aplikace jako odpověď na příkaz smazání položky.
<?xml version="1.0" encoding="UTF-8"?>
<catupdateresponse>
<status>error</status>
<description>Záznam s ID=2506 v tabulce KATDTBL se nepodařilo smazat.</description>
</catupdateresponse>
Element status může nabývat hodnot ok / error, v případě chyby obsahuje element description textový popis chyby.
Vložení nebo aktualizace záznamu
Následující kód reprezentuje příkaz na vložení nebo aktualizaci jednoho záznamu.
Nejprve je uvedena informace o tom, které tabulky se příkaz týká, atribut idcolumn zde musí obsahovat jako hodnotu název sloupce datové tabulky, který se používá pro identifikaci záznamů a pomocí kterého se provádí příkazy pro aktualizaci či mazání těchto záznamů. Pak je uveden vlastní příkaz a seznam hodnot jednotlivých polí. Tento seznam není pevně dán, ale liší se dle struktury katalogu, jména elementů odpovídají názvům sloupců datové tabulky modulu Formuláře a katalogy.