WebToDate/Formuláře a katalogy/Začínáme

Z WebToDate
Skočit na navigaciSkočit na vyhledávání

Základní funkce a principy

Základní části a funkce modulu jsou zobrazeny na následujícím diagramu.

Prvním krokem při zakládání každého katalogu je vždy vytvoření datové tabulky a její případné naplnění daty. Pro tyto účely jsou k dispozici funkce pro založení tabulky v SQL databázi serveru a definici její struktury (tj. názvy sloupců tabulky a jejich datové typy jako číslo, řetězec apod.). Dále lze data do tabulky importovat, podporované formáty pro import a export jsou DBF, XML a CSV.

Je-li správně nadefinovaná datová tabulka, lze nad touto tabulkou vytvořit katalog. Katalog definuje:

  • Pole datové tabulky sloužící jako jednoznačný identifikátor záznamů
  • Kdo může z veřejné části data číst (všichni / pouze registrovaní / nikdo)
  • Kdo může z veřejné části pomocí příslušného formuláře data do tohoto katalogu zapisovat (všichni / pouze registrovaní / nikdo)
  • Některé další pomocné vlastnosti

Kromě nastavení základních vlastností katalogu se definují vlastnosti polí. Každému sloupci datové tabulky může odpovídat maximálně jedna definice pole, která určuje, v jakém pohledu se toto pole zobrazuje, zda se do něj vkládá, jaká je jeho výchozí hodnota, zda je pole nutné při vkládání nového záznamu vyplnit apod. Rovněž lze definovat, podle kterých polí se při zobrazování katalogu na veřejné části třídí.

Třetím krokem při vytvoření katalogu je zpravidla definice předpisu, neboli sady grafických nastavení, které určují, která stránka používá jako předloha, jakým stylem se vypisuje seznam položek apod. Součástí vlastností katalogu je přiřazení předpisu, vhodný způsob je ale ten, že se nejdříve nadefinují vlastnosti katalogu, pak se vytvoří předpis a na závěr se vybere ve vlastnostech katalogu tento předpis – k dispozici je totiž sada nástrojů, které tvorbu předpisu usnadňují a mohou vygenerovat generické podoby elementů jako jsou formuláře, styly pro zobrazení katalogu apod.

Data uložená v datové tabulce katalogu lze rovněž přes administrační www rozhraní modulu editovat. Tento editor ovšem používá definice katalogu, pokud tedy chcete tuto funkcí využít, je třeba kromě datové tabulky mít vhodným způsobem definovaný i katalog nad touto tabulkou. Dokud není takový katalog definován, lze data do datové tabulky vkládat pouze importem.


Jednoduchý formulář pro vkládání dat

První kroky s modulem Formuláře a katalogy jsou demonstrovány na příkladu vytvoření vstupního formuláře, pomocí kterého uživatel předává svůj kontakt a žádá o další informace. Chceme tedy vytvořit veřejně přístupný formulář, do kterého uživatel vyplní své jméno, e-mailovou adresu a případně text specifikující, o které informace má zájem. Tato tři pole se uloží do databáze modulu a jsou k dispozici obsluze modulu pro prohlížení či export.

V prvním kroku založíme příslušnou datovou tabulku. V nabídce modulu použijte položku Data / Seznam tabulek, v pravé části nahoře použijte odkaz Přidat. Do pole Název tabulky zadejte "INFOZADOST" (bez uvozovek), celý název tabulky bude KATDINFOZADOST (názvy všech datových tabulek začínají na písmena KATD). Pak se přepněte na záložku Sloupce a vytvořte (pomocí tlačítek Přidat sloupec) strukturu se čtyřmi sloupci tabulky tak, jak je uvedeno na následujícím otisku obrazovky (délky polí se zadávají jen u polí JMENO a EMAIL, u ostatních se doplní automaticky).

Ve druhém kroku vytvoříme nový katalog (s názvem "Žádost o informace") a nastavíme jeho vlastnosti. Použijte položku nabídky Administrace / Nový katalog, formulář vyplňte podle následujícího otisku obrazovky a použijte tlačítko Přidat.

Nyní musíme nadefinovat pole katalogu. Po přidání katalogu se tento katalog zobrazil ve skupině Administrace nabídky modulu. Použijte znak + u názvu katalogu, u katalogu se zobrazí nabídka Pole a třídění. Klepněte na Pole a pomocí odkazu Přidat vpravo nahoře přidejte postupně čtyři pole. Příslušná nastavení jsou na následujících otiscích obrazovky. Vlastnost Pořadové číslo je třeba vždy zadávat ručně.


Pole ID budeme používat jako pomocné číslování, které jednoznačně identifikuje záznamy. Jsou-li vlastnosti polí nastaveny tak jak je na otisku obrazovky znázorněno, hodnotu pole nebude zadávat uživatel, ale pole se bude automaticky vyplňovat číselnou řadou.


Vlastnost Zobrazovat v seznamu při úpravách znamená, že pokud budeme prohlížet (a případně editovat záznamy v administračním rozhraní modulu, budou takto označená pole přítomná v seznamu položek. Vlastnost Odkaz na detail musíme zaškrtnout proto, aby modul věděl, na které pole má umístit odkaz na otevření celého záznamu v redakčním rozhraní.


Celý katalog je tedy definován tak, že uživatel musí povinně zadat jméno a e-mail (ID se doplní automaticky), nepovinně zadává text do pole "Další požadavky a komentáře".

Nyní založíme předlohu pro skript zpracovávající vstupní formulář. Ve stromu stránek WebToDate založte novou stránku podle následujícího otisku obrazovky (URL stránky je možné zvolit podle potřeby).

Pak pomocí tlačítka Upravit soubor vložte následující HTML kód stránky:

<html> 
<head>
   <title>Žádost o informace</title> 
</head>
<body>
<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>
</body>
</html>


V posledním kroku využijeme takto definovanou předlohu v grafických nastaveních modulu tak, aby skript pro vkládání dat použil tuto stránku jako šablonu. Nejprve založíme nový předpis. Použijte nabídku Nastavení / Seznam předpisů, v pravé horní části klepněte na Přidat a založte nový předpis nazvaný "Žádost o informace" (bez uvozovek, zadává se jen název).

Nově založený předpis se zobrazí v nabídce v části Nastavení / Předpisy. Použijte položku nabídky Nastavení / Předpisy / Žádost o informace / Vkládání a v tomto formuláři v poli Předloha pro vstupní stránku vyberte stránku založenou v prvním kroku (viz následující otisk obrazovky).

Nyní už stačí pouze definovat, že katalog používá právě vytvořený předpis. V nabídce modulu použijte položku Administrace / Žádost o informace a v poli Předpis vyberte právě založený předpis (viz následující otisk obrazovky).

Nyní již můžete funkčnost formuláře vyzkoušet na veřejné části. Zadejte do prohlížeče URL

http://název_serveru/scripts/modules/catalogue/iform.php?catalogueid=id_katalogu

tedy např.

http://www.mujserver.cz/scripts/modules/catalogue/iform.php?catalogueid=1

(ID katalogu zjistíte tak jak je naznačeno na předchozím otisku obrazovky, pokud jste předchozím postupem založili první katalog, má ID = 1).

Jestliže všechny předchozí kroky proběhly v pořádku, zobrazí se formulář jako na následujícím otisku obrazovky.

Pokud nevyplníte všechna povinná pole, zobrazí se po použití tlačítka Odeslat stejný formulář s chybovým hlášením, jestliže vyplníte správně všechna pole, po odeslání se data uloží do datové tabulky a zobrazí se úvodní stránka serveru.

Vložení dat si můžete zkontrolovat v administrační části modulu pomocí nabídky Data / Katalogy / Žádost o informace, zobrazení by mělo vypadat zhruba jako na následujícím otisku obrazovky.