WebToDate/Formuláře a katalogy/Pracovní postupy: Porovnání verzí

Z WebToDate
Skočit na navigaciSkočit na vyhledávání
Bajkvl (diskuse | příspěvky)
m na třech místech špatně ukončení bloku kódu, následkem bylo rozhozeno formátování písma
 
(Není zobrazena jedna mezilehlá verze od jednoho dalšího uživatele.)
Řádek 1: Řádek 1:
[[Category:WebToDate 4.1 Formuláře a katalogy]]
[[Category:WebToDate Formuláře a katalogy]]
[[Category:Formuláře a katalogy]]
[[Category:Formuláře a katalogy]]
== Publikace obsahu databáze ==
== Publikace obsahu databáze ==
Řádek 74: Řádek 74:
  <nowiki><p><!--WTD_CATALOGUE(NAVIG)--></p></nowiki>
  <nowiki><p><!--WTD_CATALOGUE(NAVIG)--></p></nowiki>
  <nowiki><p><!--WTD_CATALOGUE(LIST)--></p></nowiki>
  <nowiki><p><!--WTD_CATALOGUE(LIST)--></p></nowiki>
<\code>
</code>
Složitější tvar má pouze WebToDate styl formátující vlastní seznam položek, tělo stylu vypadá např. takto (začátek a konec HTML tabulky je vhodné vložit do hlavičky a patičky stylu):
Složitější tvar má pouze WebToDate styl formátující vlastní seznam položek, tělo stylu vypadá např. takto (začátek a konec HTML tabulky je vhodné vložit do hlavičky a patičky stylu):
<code>
<code>
Řádek 83: Řádek 83:
  <nowiki><td><!--WTD_FC(MAJCONFC)--></td></nowiki>
  <nowiki><td><!--WTD_FC(MAJCONFC)--></td></nowiki>
  <nowiki></tr></nowiki>
  <nowiki></tr></nowiki>
<\code>
</code>
Klíčová slova typu WTD_FC zde reprezentují jednotlivé sloupce tabulky (v závorce klíčového slova je vždy fyzický název sloupce datové tabulky), klíčové slovo <nowiki><!--WTD_CATALOGUE(DETAILURL)--></nowiki> zde např. reprezentuje odkaz na detailní pohled na jednu položku katalogu.
Klíčová slova typu WTD_FC zde reprezentují jednotlivé sloupce tabulky (v závorce klíčového slova je vždy fyzický název sloupce datové tabulky), klíčové slovo <nowiki><!--WTD_CATALOGUE(DETAILURL)--></nowiki> zde např. reprezentuje odkaz na detailní pohled na jednu položku katalogu.


Řádek 132: Řádek 132:
<code>
<code>
  <nowiki><input type="hidden" name="returnurl" value="/"/></nowiki>
  <nowiki><input type="hidden" name="returnurl" value="/"/></nowiki>
<\code>
</code>
Toto pole definuje, jaká stránka se má zobrazit po úspěšném vložení dat. Nejvhodnější je tedy vytvořit běžnými prostředky WebToDate stránku s&nbsp;potvrzením uložení dat, vygenerovat ji jako statickou stránku a její URL vložit jako hodnotu tohoto pole formuláře.
Toto pole definuje, jaká stránka se má zobrazit po úspěšném vložení dat. Nejvhodnější je tedy vytvořit běžnými prostředky WebToDate stránku s&nbsp;potvrzením uložení dat, vygenerovat ji jako statickou stránku a její URL vložit jako hodnotu tohoto pole formuláře.



Aktuální verze z 30. 3. 2010, 13:45

Publikace obsahu databáze

První pracovní postup řeší následující úlohu: máme k dispozici data v jednom z podporovaných formátů (tabulku v DBF, XML či CSV), chceme vytvořit prezentaci těchto dat, která na dané URL adrese zobrazuje stránkovaný výpis těchto dat, případně po klepnutí na položku detailní pohled na jeden záznam těchto dat, volitelně pak i včetně možnosti prohledávání s využitím vyhledávacího formuláře. Vhodný pracovní postup je schématicky znázorněn na následujícím obrázku.

V prvním kroku je cílem to, aby v SQL databázi WebToDate existovala tabulka v požadované struktuře naplněná daty, která se mají publikovat.

Pokud se jedná o rozsáhlejší tabulku, je vhodné si data předem připravit a následně importovat. Při přípravě dat jsou doporučena následující pravidla:

  • Modul vyžaduje, aby každá tabulka obsahovala sloupec, jehož hodnoty jsou pro každý záznam jedinečné (v administračním rozhraní se pak tato volba vyskytuje jako Pole pro jednoznačnou identifikaci). Vhodný datový typ pro toto pole je celočíselný typ nebo znakový typ, kde ale pole neobsahují znaky s diakritikou, mezery apod. (vhodné jsou tedy např. nějaké zkratky či podobné identifikátory). Pokud data k importu takovýto sloupec neobsahují, je vhodné rozšířit strukturu o nový sloupec a vyplnit jej např. číselnou řadou od jedné dál, každý záznam jedinečné číslo.
  • Při importu se neprovádí konverze kódování diakritiky s výjimkou XML souboru, kde je kódování uvedeno v hlavičce. Pokud tedy importujete data z DBF nebo CSV, je třeba mít importovaný soubor ve stejném kódování, v jakém je nastaven server (typicky ISO Latin 2 nebo Windows 1250).
  • Pro usnadnění celého procesu jsou k dispozici nástroje, které dokáží vygenerovat příslušné formátovací elementy podle nadefinované struktury – není tedy třeba všechny formátovací kódy vytvářet ručně, ale stačí jen upravit požadovaný předgenerovaný HTML fragment. Tyto nástroje jsou ale založeny na vygenerování kódů podle momentálního nastavení, což znamená, že dodatečné změny ve struktuře (datové tabulky či katalogu) se ve výsledné prezentaci dat automaticky neodrazí. Je tedy vhodné připravit předem přesnou strukturu dat a tu pak dodatečně pokud možno neměnit – případné změny znamenají, že je třeba ručně editovat příslušné formátovací elementy (styly, šablony apod.) a přidávat či měnit klíčová slova modulu reprezentující publikovaná data.

Tabulku v SQL databázi lze buď založit předem před importem nebo využít toho, že import může tabulku založit automaticky podle importovaných dat. Jako vhodnější postup doporučujeme spíše nejprve ručně nadefinovat strukturu tabulky – v takovém případě je možno přesně definovat požadované datové typy sloupců tabulky a jejich délky. Při automatickém založení tabulky při importu tyto typy zvolí importní algoritmus, který může datové typy zvolit dostatečně přesně v případě DBF souboru, u ostatních typů souborů ale může dojít k tomu, že bude zvolen jiný než očekávaný datový typ (např. text místo datum apod.). Možnosti dodatečně měnit datové typy jsou omezené jen na určité případy.

Založení nové datové tabulky se provádí pomocí nabídky Data / Seznam tabulek. Tabulku zde nadefinujte v odpovídající struktuře, tedy jak jdou sloupce za sebou v importovaném souboru.

Nástroj pro editaci struktury umožňuje i definování databázových indexů, které zrychlují přístup k datům při čtení z databáze. Index je vhodné zvolit vždy, když se podle daného pole má třídit a volitelně v případě, že se podle daného pole má vyhledávat. Rovněž pole označené jako Pole pro jednoznačnou identifikaci by mělo mít index vždy, když se používá detailní zobrazení jedné položky katalogu.

Do založené tabulky lze importovat data. Nejprve je třeba importovaný soubor překopírovat na server, k tomu slouží nabídka Data / Soubory. Soubory k importu nakopírujte do adresáře data/katalogy/import. Pomocí nabídky Data / Import se pak soubor importuje do zvolené tabulky.

Modul Formuláře a katalogy obsahuje nástroj umožňující editaci dat v datové tabulce přes administrační rozhraní modulu. Tento nástroj ale využívá definici katalogu. Ve chvíli, kdy je teprve založena datová tabulka a není nad ní definovaný katalog tedy ještě nelze přímo editovat data a jedinou možností jak v tuto chvíli tabulku naplnit je import.

Podporované jsou i následné aktualizace pomocí importu, lze buď znovu naimportovat celý obsah tabulky, nebo přidat importovaná data ke stávajícímu obsahu.


Ve chvíli, kdy existuje datová tabulka a jsou do ní případně importována data, zakládá se nový katalog (pomocí funkce Administrace / Nový katalog). Typická nastavení důležitých polí formuláře jsou na následujícím otisku obrazovky, ostatní pole jsou v tomto pracovním postupu nedůležitá.

Při zakládání katalogu se vybírá datová tabulka, nad kterou se katalog vytváří. V jednou založeném katalogu již tuto volbu nelze změnit, protože by se mohly narušit všechny vazby mezi datovou tabulkou a poli katalogu.

Založením katalogu se pouze definují základní vlastnosti práce se zvolenými daty, v dalším kroku je třeba definovat pole katalogu. Pomocí formuláře Administrace / název katalogu / Pole se postupně přidávají jednotlivá pole, neboli definice způsobu práce se sloupci datové tabulky.

Typicky se pro každý sloupec datové tabulky definuje jedno pole katalogu, je ovšem možné některé sloupce datové tabulky ignorovat a pole katalogu pro ně nezakládat. Tento postup se např. použije v případě, že data jsou periodicky přebírána a importována z jiného systému, samotný importovaný soubor je ve vyhovujícím tvaru a požaduje se co nejrychlejší a nejjednodušší přenos dat na serveru – pak datová tabulka obsahuje některé sloupce navíc, které se nepublikují a jsou ignorovány.

Po definici polí je vhodné pomocí formuláře Administrace / název katalogu / Třídění definovat, podle jakého sloupce se bude při výpisu položek daného katalogu třídit, možné je použití i více sloupců a pro každý sloupec definovat, zda se třídí vzestupně nebo sestupně. Třídění je pevně dané podle definice katalogu, nelze jej volit dynamicky na úrovni prezentační vrstvy.


Je-li již katalog nadefinován, lze v něm editovat data i přes administrační rozhraní modulu (Data / Katalogy / název katalogu). Při tom platí následující pravidla:

  • Editovat lze jen obsah těch sloupců datové tabulky, pro které existuje v katalogu definice pole.
  • V pravé horní části okna se zobrazuje seznam záznamů k editaci. V řádcích se vypisují jen ty položky, které mají označení Zobrazovat v seznamu při úpravách v definici pole katalogu – pokud žádné takové pole neexistuje, žádné záznamy se v editačním nástroji nezobrazí a data nelze editovat.
  • Na editační formulář se přechází klepnutím na záznam, a to konkrétně na pole, které je označeno Odkaz na detail. Pokud žádné taková pole neexistuje, opět nebude možné data editovat.
  • V editačním rozhraní je podporováno i hledání záznamů, hledat lze ale jen podle polí, která jsou označena jako Používat při prohledávání.
  • Ve výchozím stavu může data editovat pouze administrátor. Pokud je třeba, aby data editovali i jiní uživatelé, je třeba pro daný katalog zvolit tým či týmy, jejichž členové mohou data editovat – nastavení se provádí ve formuláři Administrace / Práva.


V této fázi tohoto pracovního postupu je již možné přejít k definování grafiky prezentace dat katalogu. Typicky se používá minimálně stránka zobrazující seznam položek, volitelně pak i detailní zobrazení jedné položky a vyhledávání.

Zobrazení stránky se seznamem položek vyžaduje definici tří elementů:

  • Předlohy stránky
  • WebToDate stylu, kterým se formátuje seznam položek
  • Definici grafiky navigační stránkovací lišty


Nejjednodušší je definice stránkovací lišty – použije se nabídka Nastavení / Globální / Navigační lišta, kde lze buď uložit výchozí hodnoty nebo vzhled přizpůsobit potřebám designu.

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í.

Jednoduché je i vytvoření předlohy – jedná se o běžnou stránku WebToDate, která je typicky založená na nějaké šabloně, pro zobrazení dynamicky vkládaných dat tato stránka musí obsahovat pouze klíčová slova pro umístění seznamu položek katalogu a pro navigační lištu, nejjednodušší kód, který tato stránka musí obsahovat vypadá takto:

<p><!--WTD_CATALOGUE(NAVIG)--></p>
<p><!--WTD_CATALOGUE(LIST)--></p>

Složitější tvar má pouze WebToDate styl formátující vlastní seznam položek, tělo stylu vypadá např. takto (začátek a konec HTML tabulky je vhodné vložit do hlavičky a patičky stylu):

<tr>
<td><!--WTD_FC(CATNUMBE)--></td>
<td><!--WTD_FC(ARTINAME)--></td>
<td><a href="<!--WTD_CATALOGUE(DETAILURL)-->"><!--WTD_FC(PRODTITL)--></a></td>
<td><!--WTD_FC(MAJCONFC)--></td>
</tr>

Klíčová slova typu WTD_FC zde reprezentují jednotlivé sloupce tabulky (v závorce klíčového slova je vždy fyzický název sloupce datové tabulky), klíčové slovo <!--WTD_CATALOGUE(DETAILURL)--> zde např. reprezentuje odkaz na detailní pohled na jednu položku katalogu.

Tento styl lze připravit i bez znalosti těchto klíčových slov – pomocí funkce Nástroje / Styly lze vygenerovat pro daný katalog funkční styl formátující seznam položek katalogu, HTML kód stylu lze následně libovolně upravit, je samozřejmě vhodné ponechat ve stylu klíčová slova typu WTD_FC.


Ve chvíli, kdy jsou všechny tři výše zmíněné elementy vytvořené můžeme definovat předpis pro katalog. Pomocí Nastavení / Seznam předpisů nejprve založíme nový předpis – v tomto formuláři se zadává pouze název předpisu.

Po založení předpisu můžeme uložit nastavení pro stránku zobrazující seznam položek katalogu Vyvoláme formulář Nastavení / Předpisy / název předpisu / Seznam položek a vybereme zde příslušnou předlohu a styl:

Nyní je k dispozici vhodný předpis, ten je ale třeba přiřadit dříve založenému katalogu. Ve formuláři Administrace / název katalogu se vybírá v poli Předpis.


Posledním krokem je testování výsledku. Zobrazení seznamu položek katalogu provádí stránka

/scripts/modules/catalogue/list.php?catalogueID=číslo_katalogu

Na této stránce vyzkoušíme zobrazování seznamu položek včetně stránkování a případně upravíme výše zmíněné definiční prvky (styl, předlohu, stránkovací lištu).


Dále pak můžeme případně definovat zobrazení detailního pohledu na jeden záznam – postup je zhruba stejný jako v předchozím případě. Již nezakládáme nový předpis, ale nastavení přidáme do existujícího předpisu (Nastavení / Předpisy / název předpisu / Jedna položka). Klíčová slova pro jednotlivá pole katalogu jsou v tomto případě přímo součástí předlohy, generický fragment, který lze za účelem vygenerování předlohy použít lze získat pomocí funkce Nástroje / Položka.

Formuláře na veřejné části webu

Tento pracovní postup řeší následující úlohu: chceme vytvořit veřejně přístupnou stránku s formulářem, do kterého uživatelé vyplňují nějaká data a tato data jsou ukládána do databáze ve strukturované podobě k dalšímu zpracování. Vhodný pracovní postup je schématicky znázorněn na následujícím obrázku.

Pracovní postup se nijak zásadně neliší od předchozího případu, některé kroky jsou identické.

V prvním kroku se zakládá datová tabulka. Je rovněž třeba (nejlépe jako první) založit sloupec pro jednoznačnou identifikaci záznamu. Lze využít toho, že modul umí automaticky vkládat do takovéhoto pole číselnou řadu, pokud tedy není důvod postupovat jinak, je vhodné založit za tímto účelem sloupec s celočíselným datovým typem.

Dále se zakládá nový katalog. Typická nastavení důležitých polí formuláře jsou na následujícím otisku obrazovky.

Po založení katalogu je třeba nadefinovat pole katalogu, neboli vstupní pole formuláře. Každé pole, které má být součástí formuláře, musí mít zvolenou volbu Data lze vkládat z veřejné části, pole, která požadujete povinně vyplnit označte volbou Povinně vyplnit. Jestliže se pole pro jednoznačnou identifikaci definujte tak, jak je zobrazeno na následujícím otisku obrazovky, bude docházet k automatickému číslování při vkládání dat.

Dalším krokem je vytvoření předlohy pro stránku se vstupním formulářem. Je vhodné založit stránku, která používá nějakou existující šablonu, vytvořit vstupní formulář jako tělo nového fragmentu a tento fragment vygenerovat na tuto stránku. Pro vytvoření takového fragmentu v generické HTML podobě existuje pomocný nástroj v nabídce Nástroje / Vstupní formulář. Po vygenerování lze upravit v těle tohoto fragmentu jak vzhled, tak např. typy polí (pole typu textarea místo text apod.).

Součástí kódu fragmentu je i pole

<input type="hidden" name="returnurl" value="/"/>

Toto pole definuje, jaká stránka se má zobrazit po úspěšném vložení dat. Nejvhodnější je tedy vytvořit běžnými prostředky WebToDate stránku s potvrzením uložení dat, vygenerovat ji jako statickou stránku a její URL vložit jako hodnotu tohoto pole formuláře.

V názvech polí formulářů se rozlišují malá a velká písmena, zachovejte proto názvy polí vždy přesně tak, jak je příslušný pomocný nástroj vygeneroval.

Je-li vytvořena předloha, založí se nový předpis a v předpisu se vybere předloha pro vstupní stránku (Nastavení / Předpisy / název předpisu / Vkládání, volba Předloha pro vstupní stránku). Nově založený předpis se nastaví jako předpis pro daný katalog ve vlastnostech katalogu.

Nyní už je možné vstupní formulář testovat na příslušné URL adrese skriptu iform.php.

Formulářové řešení s výstupem na web

Tento pracovní postup řeší následující úlohu: chceme vytvořit veřejně přístupný vstupní formulář, data ukládat do databáze modulu a rovněž je zobrazovat na veřejné části webu ke čtení. Může jít např. o jednoduchou aplikaci typu návštěvní kniha apod.

Tento postup je v podstatě kombinací obou výše uvedených pracovních postupů. Typické vlastnosti polí pro takovýto katalog jsou znázorněny na následujícím otisku obrazovky.

Předpis pro katalog se samozřejmě definuje jen jeden, definuje se přinejmenším předloha pro vstupní formulář Nastavení / Předpisy / název předpisu / Vkládání) a pro seznam položek (Nastavení / Předpisy / název předpisu / Seznam položek), zpravidla i předloha pro detailní pohled na jednu položku (Nastavení / Předpisy / název předpisu / Jedna položka).