Autor Zpráva
Mastodont
Profil
Prošel jsem všechny větší frameworky a hledal i jinde, ale zdá se, že nikdo nezveřejnil nějaké řešení na tvorbu formulářů ze šablon. Myslím tím asi toto - šablona třeba v YAML:
form:

name: user
method: post # post/get, implicit: post, can be omitted
action: some.php
enc: multipart/form-data # implicit: multipart/form-data, can be omitted
layouts:
table: { hints: under, style: default }
# options: html (lines terminated with <br>, control groups made by FIELDSET tag)
# table (implicit 2 cols, left column for labels, right column for controls)
# implicit - html: { labels: upon, hints: mouseover, style: default }
controls:
name:
type: input
label: 'Name:'
hint: 'Type your name here'
args: { length: 20 }
validation: [required, 'strip all tags' ]
surname:
type: input
label: 'Surname:'
hint: 'Type your surname here'
args: {length: 20}
validation: [required, 'strip all tags' ]
save:
type: submit
args: { value: 'Save to database' }

A kód PHP:

$form = New FormBuilder('user.yaml');

if ($form->Render()) { echo $form->OutputHTML;}


Nenarazil někdo z vás na něco podobného hotového?
zero0x
Profil
jeej to musi byt fakt super

no nic, bude treba daco take naprogramovat

prazdniny idu, hura do praace :D
zero0x
Profil
btw kde si nasiel tu sablonu?
Mastodont
Profil
Ve své hlavě, kde jinde. Je to jen první nástřel.
zero0x
Profil
no, este som neskusal yaml parser v php, ale keby to bolo v xml, tak myslim, ze by som to vedel spracovat pre bezne form generatory.. napriklad pre tie z PEAR
Mastodont
Profil
XML nechci a PEAR taky ne :-)
zero0x
Profil
lol

oki.

napis aky form generator pouzivas (a ja ti poviem kto si :D)

no teraz vazne. napriklad, HTML_QuickForm (to je z PEARu) chce takyto vstup

// Add some elements to the form

$form->addElement('header', null, 'QuickForm tutorial example');
$form->addElement('text', 'name', 'Enter your name:', array('size' => 50, 'maxlength' => 255));
$form->addElement('submit', null, 'Send');

// Define filters and validation rules
$form->applyFilter('name', 'trim');
$form->addRule('name', 'Please enter your name', 'required', null, 'client');


takze pomocou tohto [ http://spyc.sourceforge.net/ ] si vytvoris z yaml pole, a jednoducho volas tieto metody pre kazdy prvok.. hmm??
Mastodont
Profil
To by ale znamenalo, že budeš mít v hlavním kódu mraky řádků

$form->addElement( ... );


To já nechci, mně jde právě o to, aby celé generování bylo skryté v třídě. V hlavním kódu jen ty dva řádky shora. Nebo ještě úsporněji

if (FormBuilder::Render('user.yaml')) { echo FormBuilder::OutputHTML();}


:)
bukaj
Profil
Mastodont
tak to ta třída rozkouskuje, uloží do pole, které projde a vrátí onen výstup.
Mastodont
Profil
bukaj

HTML_QuickForm mají 250 KB kódu. Já myslím, že se to dá napsat úsporněji :-))

Jo kdyby PEAR byl všude už nainstalován, tak prosím ...
zero0x
Profil
ja pear pouzivam iba koli prehladnosti

nechcem mat priecinok lib plny kadejakych kniznic, ktore som nasiel na nete, ked pear ponuka centralny system kniznic

tiez by ma potesilo keby bol vsade nainstalovany, ale na vecsine platenych hostingov aj je

a inac ten kod o ktorom som sa zmienil

ty ho nebudes mat po hlavnom kode. ty si vytvoris vlastnu triedu, ktoru ulozis samostatne, a ktora sa bude starat o to, aby to YAML previedla na nieco, comu porozumie generator form-ov

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0