FORMOL, PACKAGE PHP5 DE GESTION DE FORMULAIRES XHTML

malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
- 7 sept. 2007 à 13:46
cs_alterHD
Messages postés
1
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
19 août 2008
- 19 août 2008 à 15:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43999-formol-package-php5-de-gestion-de-formulaires-xhtml

cs_alterHD
Messages postés
1
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
19 août 2008

19 août 2008 à 15:07
Bonjour,

Super, sauf que je ne comprends pas pourquoi formol génère automatiquement un id pour le formulaire ?

Enfin, voulant l'intégrer dans une page de Joomla(framework CMS), je me trouve embêter avec le système de gestion de session formol (qui doit rentrer en conflit avec celui de joomla :-((.
La même page en externe permet bien d'enregistrer les var de session

A suivre
tmaziere
Messages postés
4
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
17 octobre 2007

17 oct. 2007 à 22:27
Re,

J'en profite pour vous redonner les exemples pour la nouvelle version :

- validateur "date" :

$field->registerValidator('date', 'vous devez entrer une date valide (jj/mm/aaaa)')
$field->registerValidator('date:fr2,-', 'vous devez entrer une date valide (jj-mm-aa)')
$field->registerValidator('date:eng4,.', 'vous devez entrer une date valide (mm.jj.aaaa)')

- plugin "fValidator", au sein de la vue/template/page :

$fValidator = $form->activatePlugin('fValidator');
echo $fValidator->getJavascript();

N'hésitez pas si vous souhaitez quelques précisions.
tmaziere
Messages postés
4
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
17 octobre 2007

17 oct. 2007 à 22:12
Bonjour à tous,

Merci pour vos commentaires, sachez que je note vos meilleures suggestions pour les intégrer au fur et à mesure. La version 0.7.5 introduit un validateur "date" et un système de plugins, inauguré par un plugin pour fValidator (http://zend.lojcomm.com.br/fvalidator/) qui permet une élégante validation côté client (js). La classe fValidator (présente dans l'archive) et Mootools sont requis pour ce plugin.
N'hésitez à me dire ce que vous en pensez !

Bonne fin de semaine,
webdeb
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
4
22 sept. 2007 à 13:06
Je n'ai pas encore eu l'occasion de tester ton package mais ça ne serait tarder. D'après ce que j'ai pu voir sur le site dédié à l'application, ça semble être du sacré bon boulot. Bravo à toi. Par contre, je regrette une chose que tu pourrais ajouter pour améliorer tout ça. A savoir une méthode pour ajouter une zone de texte Wysiwig (avec TinyMCE par contre) ainsi qu'un champ texte de type date sur lequel un calendrier javascript apparait lorsque l'on clique dedans. Voir ici pour un exemple :

http://calendar.swazz.org/

Ca rendrait encore plus parfaite ton application et les formulaires plus "user friendly".

++

PS : je mets 9/10 parceque tu n'as encore terminé ton appli ^^
cs_zeguizmo
Messages postés
138
Date d'inscription
vendredi 1 août 2003
Statut
Membre
Dernière intervention
16 juillet 2009

20 sept. 2007 à 11:24
Salut, c'est re-moi

Bon, après quelques jours d'utilisation, voici quelques remarques (modification que j'ai du effectuer) :

- Implantation du javascript necessaire (pas pour la validation, pour n'importe quel effet graphique, que l'on souhaite avoir sur nos zolis champs de formulaire, ou pour l'utilisation de l'AJAX par exemple (verification de la disponibilité d'un pseudo, par exemple))

Exemple (a insérer dans le renderfield de inputtext) :

$jsString="";
if (isset($args['js']))
{
foreach ($args['js'] as $val => $option) {
$jsString .= " ".$val."=".$option." ";
}
}
return "_field->name."" id="".$this->_field->name.""$class value="".$this->_field->value.""".$jsString.$disabled.$maxlength." />\n";

l'utilisation serait alors la suivante :

$js = array ('onKeyUp'=>'"mafonctionJS();"');
echo $F->champ_texte->render(array("js"=>$js));;

et on aurait un peu de JS sur nos champs.
A faire pour les autres renderer aussi

- Possibilité de nommer nos formulaires lors de l'enregistrement en session (on peut avoir plusieurs formulaires par pages), mais également possibilité de désigner le formulaire a enregistrer : tu utilises self::$instance dans la fonction save, on pourrait faire un truc du genre :

public static function save(&$persistenceManager,$name="",$F="") {
if ($name=="")
$name = 'form';
if ($F=="")
$F = self::$instance;

if (is_array($persistenceManager)) {
$persistenceManager[$name] = $F;
return true;
} else if (is_object($persistenceManager)) {
$persistenceManager->form = $F;
return true;
} else {
throw new FormException("Wrong parameter type : must be array or object");
}

}

c'est ce que j'ai fait, ca marche très bien, même si c'est peut-être pas ultra propre. Ca nous permet de désigner quels sont les formulaires a enregistrer en variable de session.

Il y a quelques petites broutilles dont je ne me rapelle plus qui m'ont demandé un peu de retouche, sinon le reste est vraiment bien !

Et bien sur, des validators plus travaillés, mais c'était déja dans tes objectifs si j'ai bien compris.

Amuse toi bien :)

Bonne journée
Afficher les 10 commentaires