layout | parent | nav_order | title |
---|---|---|---|
default |
Onderdelen |
1 |
Formulier |
Formulier is een klasse die gebruikt kan worden om formulieren op te bouwen en te valideren. Alle bestanden gerelateerd aan Formulier zijn te vinden in lib/view/formulier
. Een formulier kan een hele pagina in beslag nemen, in een smarty template voorkomen of als popup gebruikt worden.
Velden zijn te vinden in FormElement.abstract.php
, FormKnoppen.class.php
, GetalVelden.class.php
, InvoerVelden.class.php
, KeuzeVelden.class.php
en UploadVelden.class.php
.
Een stuk losse HTML in het formulier.
$comment |
De HTML |
---|
$fields[] = new HtmlComment('<strong>Dit gedeelte is belangrijk</strong>');
Een stuk losse HTML met mogelijke BBCode in het formulier
$comment |
De HTML |
---|
$fields[] = new HtmlBbComment('[b]Dit gedeelte is belangrijk[/b]');
Het begin van een nieuwe fieldset, alle volgende elementen zitten in deze FieldSet, totdat een veld new HtmlComment('</fieldset>');
volgt.
$titel |
De titel van de fieldset |
---|
$fields[] = new FieldSet('Adres');
...
$fields[] = new HtmlComment('</fieldset>');
Maak een subkopje aan, de standaard is <h3>
. De eigenschap $h
kan gebruikt worden om dit aan te passen.
$tekst |
De inhoud van de titel |
---|
$subkopje = new SubKopje('Persoonlijke gegevens');
$subkopje->h = 2;
$fields[] = $subkopje;
Maak een Subkopje met alles eronder collapsable, moet afgesloten worden met new HtmlComment('</div>');
$id |
De id gebruikt in de JavaScript |
$titel |
De titel van het kopje |
$collapsed = false |
Of het subkopje collapsed is bij laden |
$single = false |
Of andere kopjes ook ingeklapt moeten worden |
$hover_click = false |
Of het kopje moet uitklappen bij hover |
$animate = true |
Of het uitklappen geanimeerd moet zijn |
$fields[] = new CollapsableSubKopje('optioneel', 'Optionele gegevens', true);
...
$fields[] = new HtmlComment('</div>');
Een normaal <input type="text".../>
veld.
$name |
Naam van de input, gebruikt om waarde op te halen met POST |
$value |
Waarde van de input |
$description |
Beschrijving, bij mouse-over |
$max_len = 255 |
Maximale lengte van de input |
$min_len = 0 |
Minimale lengte van de input |
$model = null |
Ongebruikt |
$fields[] = new TextField(
'voornaam',
'Voornaam',
'Vul hier je voornaam in',
255,
2
);
$fields[] = new RequiredTextField(
'achternaam',
'Achternaam',
'Vul hier je achternaam in',
255,
2
);
Zie TextField, valideert of een TextField een geldige bestandsnaam bevat.
$fields[] = new FileNameField('foto', 'Foto', 'Geef de foto een naam');
$fields[] = new RequiredFileNameField('album', 'Album', 'Geef een albumnaam');
Zie TextField, geeft suggesties voor landen: 'Nederland', 'België', 'Duitsland', 'Frankrijk', 'Verenigd Koninkrijk', 'Verenigde Staten'.
$fields[] = new LandField('geboorteland', 'Geboorteland', '');
$fields[] = new RequiredLandField('land', 'Land', '');
Zie TextField, geeft suggesties voor specifieke rechtengroepen en valideert deze.
$fields[] = new RechtenField('maglezen', 'Mag lezen', '');
$fields[] = new RequiredRechtenField('magschrijven', 'Mag schrijven', '');
Zie TextField, geeft suggesties voor leden. Opties zijn 'leden', 'oudleden', 'novieten', 'alleleden', 'allepersonen', 'nobodies'.
$name |
Naam van de input |
$value |
Beginwaarde van de input |
$description |
Beschrijving, bij mouse-voer |
$zoekin = 'alleleden' |
Groep om in te zoeken |
$fields[] = new LidField('lid', 'Lid', '');
$fields[] = new RequiredLidField('noviet', 'Noviet', '', 'novieten');
|HtmlComment | $html | | |HtmlBbComment |FieldSet |Subkopje |CollapsableSubKopje | |(Required)TextField |(Required)FileNameField |(Required)EntityField |StudieField |(Required)EmailField |(Required)UrlField |(Required)UsernameField |(Required)DuckField |(Required)TextareaField |(Required)WachtwoordField |(Required)WachtwoordWijzigenField | |(Required)IntField |(Required)BedragField |(Required)TelefoonField |(Required)FloatField | |(Required)ColorField |(Required)SelectField |MultiSelectField |(Required)EntityDropDown |(Required)WeekdagField |(Required)VerticaleField |(Required)KerkField |(Required)RadioField |(Required)GeslachtField |(Required)JaNeeField |(Required)DateField |(Required)TimeField |(Required)CheckboxField |(Required)DateTimeField |(Required)SterrenField | |(Required)FileField |(Required)ImageField |BestandBehouden |UploadFileField |ExistingFileField |DownloadUrlField
class MijnForm extends Forumulier {
function __construct(Voorbeeld $model) {
parent::__construct($model, '/voorbeeld/', false, true);
$fields[] = new RequiredTextField('voornaam', $model->voornaam, 'Voornaam');
$fields[] = new TextField('achternaam', $model->voornaam, 'Achternaam');
$fields[] = new RequiredTextField('verhaal', $model->verhaal, 'Verhaal');
$fields['btn'] = new FormDefaultKnoppen();
$this->addFields($fields);
}
}
class VoorbeeldController extends Controller {
...
public function voorbeeld() {
if ($this->isPosted()) {
$voorbeeld = new Voorbeeld();
$voorbeeld->voornaam = filter_input(INPUT_POST, 'voornaam', FILTER_SANITIZE_STRING);
$voorbeeld->achternaam = filter_input(INPUT_POST, 'achternaam', FILTER_SANITIZE_STRING);
$voorbeeld->verhaal = filter_input(INPUT_POST, 'verhaal', FILTER_SANITIZE_STRING);
$form = new MijnForm($voorbeeld);
if ($form->validate()) {
VoorbeeldModel::instance()->create($voorbeeld);
MeldingUtil::setMelding("Voorbeeld met succes aangemaakt", 1);
$this->view = new MijnForm(new Voorbeeld());
} else {
$this->view = $form;
}
} else {
$this->view = new MijnForm(new Voorbeeld());
}
}
}