Ik heb eindelijk mijn eerste (werkende!) class kunnen maken. Werd tijd :-P. Ben er dus ook super trots op, al stelt het voor de meesten van jullie natuurlijk weinig voor.
Ik wilde aan jullie vragen of jullie nog tips/verbeteringen/opmerkingen/aanmerkingen/commentaar/kritiekpuntjes hadden en of jullie zo vriendelijk willen zijn deze te melden. Al zal dat kritiek niet zo moeilijk zijn tegenwoordig, haha :-P.
(Geef overigens ook even je mening over de lay-out van mijn geweldige scriptlib, zelf via htaccess enzo gemaakt :-P.)
Hmm, ik wil het niet afkraken, maar misschien klinkt het wel zo. Maar goed daar gaat ie:
* Ik zie HTML code in de class. Niet zo zeer de option en de verschillende form elementen, maar de table om alles netjes te krijgen. Laat dat aan de designer over. Tegenwoordig worden vooral divs, spans, labels en misschien ook wel lists gebruikt om een formulier te stylen.
* Extra attributen zoals style e.d. kunnen niet toegevoegd worden aan een form element. Het doel die je voor ogen had als zijnde flexibel formulier maker is eigenlijk verdwenen. Je zit vast aan de standaarden van de class, en daar moet je het mee doen. Wat als je een custom JavaScript script hebt, en je wilt een element aanspreken met de attribute 'rel'? Dat kan nu niet.
Desalniettemin heeft deze class ook voordelen voor de gemiddelde programmeur/designer. In één oogopslag is het formulier te zien en in een luttele seconden kan je een formulier samenstellen.
Ik hoop dat je er wat mee kunt.
EDIT: Ik ben erg gecharmeerd van het Prado framework. Daar hebben ze ook custom HTML formulier classes. Een voorbeeldje:
<com:TLabel
ForControl="Username"
Text="Username" /><br />
<com:TTextBox
ID="Username"
CssClass="text" /><br />
<!-- En nog een aantal ingebouwde validator dingen -->
<com:TLabel
ForControl="Password"
Text="Password" /><br />
<com:TTextBox
ID="Password"
TextMode="Password"
CssClass="text" />
<!-- En nog een aantal ingebouwde validator dingen -->
<com:TLabel
ForControl="Email"
Text="Email Address" /><br />
<com:TTextBox
ID="Email"
CssClass="text" />
<!-- En nog een aantal ingebouwde validator dingen -->
En dat wordt dan omgezet in valid (X)HTML, zodat de designer het af kan handelen met zoals je al een beetje ziet CSS styling.
Ja met die HTML code zat ik dus ook mee. Want als je zo'n formulier eenmaal hebt samengesteld, hoe wil je het dan nog opmaken? Dat kan men vooraf dan in de class aanpassen, maar dan is het doel om simpel een formulier samen te kunnen stellen ook gelijk verdwenen, inderdaad.
Ik zit misschien een beetje in de lucht te grijpen als je style attributen wil toevoegen, ik doelde meer op id="" enzo. Die style daar is meer een extra voorbeeldje. Je kunt net zo goed als extra iets met rel opgeven. Hoeft niet per se die id en style te zijn, dat was meer een voorbeeld.
?
Onbekende gebruiker
29-04-2009 17:28
Misschien is het een idee om wat classes door te kijken die al zo'n soort dingen doen. En een beetje ideeën opdoen. Eerlijk gezegd weet ik bij god niet hoe ze dat doen. Wat je WEL kan doen is zoiets:
<?php
$formulier = new Formulier('test'); // name is dan test
$formulier->addElement('text', 'een value', $array(
'attribute' => 'waarde',
'attribute2' => 'waarde',
));
Klopt. Ik zat te denken om de velden en zo in een array terug te geven, zodat men zelf daaromheen kan bouwen. Maar dan zit je ook weer met de form-tag die dan alsnog zelf geschreven moet worden.
'k Heb nu maar iets gedaan, werk nooit met labels dus weet niet of dat goed is :-P.
?
Onbekende gebruiker
29-04-2009 20:45
Overigens wat ik me nu bedenk: Het genereren van een formulier is nog niet eens het meeste werk. Het valideren daarvan is echter wel vreselijk werk. Als je DAT erin kunt verwerken zou het nog beter zijn. Tip: Gebruik regels zoals:
$username->addValidator('required');
$username->addValidator('regex', '[\w]{3,50}');
Jouw concept dingetje is niet echt geweldig overigens. Dan leg je weer teveel werk bij de programmeur en niet zozeer bij de designer.
Nog een ideetje: Wat nou als je de wrapper variabel maakt? Dat je zoiets kun instellen:
Dat Wrapper is wel een goed plan op zich. Alleen, moet ik dan bij Column om beiden (tekst en veld) die twee tags zetten? Lijkt me namelijk niet :-P.
Klopt dat het eigenlijk niet echt geweldig is. Maar het gaat me meer om het OOP gedeelte en of de logica zo een beetje klopt. Ik vind OOP echt geweldig en als ik het zelf goed kan zou dat helemaal top zijn. Maar op dit moment ben ik alleen maar dingetjes aan het uitproberen.