Differences between revisions 14 and 15
Revision 14 as of 2013-01-24 13:27:07
Size: 5491
Editor: jenca
Comment:
Revision 15 as of 2024-04-11 11:47:16
Size: 0
Editor: jenca
Comment: spam
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Formuláre =

<<Pozor>>
Momentalne nejde. Je to dlhodobo neudrzovane,
zrejme to uz ani nepojde.
<<Pohov>>


Aby ste toto tu porozumeli, musíte mať približnú
predstavu o tom, čo to je HTML formulár a ako funguje.

== Čo to je ==

Formuláre do MoinMoin dorobil v rámci bakalárskej práce študent FEI STU Peter Bódi.
Sú implementované ako sústava špeciálnych
[[HelpOnMacros|makier]] a [[HelpOnActions|akcií]], ktoré umožňujú autorom
wiki stránok (teda aj Vám) umiestniť na stránku formulár, ktorý slúži na zber údajov.

== Na čo je to dobré ==

Typické aplikácie v našich podmienkach sú zrejme:

 * zbieranie vypracovaných zadaní od študentov
 * registrácia na konferenciu.

== Pôvodný zdroj ==

Pôvodná dokumentácia a aj zdrojové kódy sú na týchto stránkach

 * http://moinmo.in/ActionMarket/FormSubmit
 * http://moinmo.in/MacroMarket/FormCreate

== Príklady ==

Toto je formulár, ktorý umožní zbierať komentáre od návštevníkov tejto stránky.
{{{
<<FormHeader(submitcsv,targetfile=komentare.csv)>>
|| Meno: || <<FormText(Meno,maxlength=20)>> ||
|| Priezvisko: || <<FormText(Priezvisko,maxlength=30)>> ||
|| Komentár: || <<FormTextarea(Komentar,rows=10,cols=20)>> ||
<<FormSubmit(Zaslať)>>
<<FormFooter()>>
}}}

<<FormHeader(submitcsv,targetfile=komentare.csv)>>
|| Meno: || <<FormText(Meno,maxlength=20)>> ||
|| Priezvisko: || <<FormText(Priezvisko,maxlength=30)>> ||
|| Komentár: || <<FormTextarea(Komentar,rows=10,cols=20)>> ||
<<FormSubmit(Zaslať)>>
<<FormFooter()>>

Nazbierané údaje sú uložené tu: [[attachment:komentare.csv]]

== Ďalšie príklady ==

 * [[FormularPrikladZadania|Zber zadaní]]
 * [[FormularPrikladKonferencia|Registrácia na konferenciu]]

== Ako sa to používa ==

Dokumentácia je pomerne strohá, preto sa tu pokúsim vysvetliť, o čo ide.

Ak chceme zbierať dáta nejakým formulárom musia nám byť dopredu jasné dve veci.

 1. Aké dáta chceme zbierať.
 1. Čo s nimi po zaslaní robiť.

Najprv sa venujme druhému bodu.

=== Čo s dátami po zaslaní ===
Bódiho systém umožňuje urobiť s dátami dve veci (aj obe naraz).

 1. Poslať ich v e-maile na nejakú adresu.
 1. Uložiť ich do súboru typu [[http://en.wikipedia.org/wiki/Comma-separated_values|CSV]], ktorý je v prílohe nejakej stránky.

==== FormHeader ====

Na určenie toho, čo s dátami po zaslaní, slúži makro `FormHeader`.

==== Akcia submitemail ====

Ak chceme obsah formulára posielať na adresu konferencia@math.sk, uvedieme takéto parametre
{{{
<<FormHeader(submitemail,targetemail=konferencia@math.sk>>
}}}

==== Akcia submitcsv ====

Ak cheme, aby sa dáta ukladali do súboru `data.csv` priloženého k tej stránke, na ktorej je formulár, uvedieme takéto parametre
{{{
<<FormHeader(submitcsv,targetfile=data.csv>>
}}}
To však znamená, že obsah súboru `data.csv` si môžu všetci záujemci prečítať, čo nie je vždy žiadúce.

Ak chceme, aby sa dáta ukladali do súboru `data.csv` priloženého k stránke `!SecretData`,uvedieme takéto parametre.
{{{
<<FormHeader(submitcsv,targetfile=data.csv,targetpage=SecretPage>>
}}}
!SecretPage potom nastavíme ako [[InterneStranky|internú stránku]].

<<Pozor>>
CSV súbory sa dajú importovať do !OpenOffice, a uložiť potom ako XLS. Kódovanie diakritiky je UTF-8.
Myslím, že to ide importovať aj priamo do Excelu.
<<Pohov>>


==== Akcia submitattachment ====

Ak chceme od užívateľov abu nám nielen vyplnili formulár, ale aj zaslali nejaké súbory
(vypracované zadania, abstrakty na konferenciu), musíme použiť akciu submitattachment.

Toto
{{{
<<FormHeader(submitcsv,submitattachment,targetfile=data.csv)>>
}}}
zabezpečí, že sa zaslané súbory uložia ako prílohy na stránku, na ktorej je formulár.
Ostatné položky formulára sa uložia do prílohy `data.csv`.

Je možné aj v tomto prípade uviesť {{{targetpage=SecretPage}}}, dáta potom pôjdu tam.

=== Aké dáta chceme zbierať ===

Všetky podporované formulárové elementy sú tu (Formulár nie je funkčný, lebo nemá
`FormHeader` ani `FormFooter`
{{{
|| First name: || <<FormText(First name,maxlength=50)>> ||
|| Last name: || <<FormText(Last name,maxlength=50)>> ||
|| Gender: || Male<<FormRadio(Gender, Male)>> Female<<FormRadio(Gender, Female)>> ||
|| Status: || <<FormSelect(Status, Single, Married, Divorced)>> ||
|| Children: || <<FormCheckbox(Children, Yes, No)>> ||
|| Note: || <<FormTextarea(Note, rows=10, cols=20)>> ||
|| Attachment: || <<FormUpload(Attachment)>> ||
}}}
|| First name: || <<FormText(First name,maxlength=50)>> ||
|| Last name: || <<FormText(Last name,maxlength=50)>> ||
|| Gender: || Male<<FormRadio(Gender, Male)>> Female<<FormRadio(Gender, Female)>> ||
|| Status: || <<FormSelect(Status, Single, Married, Divorced)>> ||
|| Children: || <<FormCheckbox(Children, Yes, No)>> ||
|| Note: || <<FormTextarea(Note, rows=10, cols=20)>> ||
|| Attachment: || <<FormUpload(Attachment)>> ||