French : Fonctions principales du plugin php en fran?ais ?

jeromehej

Member
Bonjour,

Je reviens progressivement sur Fabrik suite ? des probl?mes de sant? desquels je ne suis pas encore sortis et je viens vers vous pour savoir si quelqu'un pourrait me donner en fran?ais bri?vement les principales fonctions du plugin php permettant par exemple :

1) de v?rifier que deux ?l?ments d'un formulaire sont ?gaux
2) de rendre visible/de cacher un ?l?ment cach?/visible apr?s la saisie d'un ?l?ment
3) de faire en sorte qu'un ?l?ment cach? devienne ?gal ? un ?l?ment ? remplir
4) etc

Pouvez vous me pr?ciser en m?me temps si c'est ? mettre dans le plugin php du formulaire ou d'un des ?l?ments svp ?

Exemples concrets :

1) J'ai un formulaire d'inscription. Le Username et le Name doivent ?tre obligatoirement rempli selon Joomla mais moi je n'ai besoin que du Username. Par cons?quent, je souhaite que mon formulaire remplisse automatiquement le Name avec le Username juste avant la sauvegarde du formulaire. Comme cela, je ne demande aux visiteurs de mon site internet qu'une saisie de pseudo.

2) J'ai un formulaire d'inscription. Le Username et le Name doivent ?tre obligatoirement rempli selon Joomla mais moi je n'ai besoin que du Username. Par cons?quent, je souhaite utiliser le Name comme champs de v?rification du Username. Il faut donc que juste avant la sauvegarde du formulaire, il y ait une v?rification d'?galit? entre le Name et l'Username. Sinon, la sauvegarde ne se fait pas.

3) J'ai un ?l?ment qui liste les r?gions. Lorsque j'ai s?lectionn? une r?gion, l'?l?ment qui liste les d?partements correspondant s'affichent.

Bien cordialement.
J?r?me
 
Bonjour,

Ce sont des fonctions "standard" de Fabrik.

Vous pouvez par exemple utiliser l'?l?ment "calc" pour attribuer une valeur ? "name" fonction de ce qui a ?t? mis dans "username". Il suffit d'inclure dans la fen?tre "calcul" du param?trage de l'?l?ment calc la ou les quelques lignes n?cessaires (en l?occurrence return '{votreliste___element}'). Le champ sera visible mais non utilisable ou carr?ment cach?.

Si par contre vous voulez que les deux champs apparaissent et que les utilisateurs soient libres ou pas de saisir le second, il vaut mieux utiliser un fonction de validation (si vide on met la valeur de nom, sinon on v?rifie qu'ils sont diff?rent). Ou alors, plus ?l?gant, un JScript qui remplit le second champ avec le contenu du premier d?s que le curseur se d?place (on blur dans JS actions de l'?l?ment field) associ? avec la validation sur le fait que les deux champs sont identiques.

Le point 3 correspond ? l'?l?ment "cascading dropdown". Un premier champ permet de s?lectionner la r?gion (dbjoin vers une table r?gion) et un second champ (CDD) permet de ne proposer que les d?partements de la r?gion choisie (dans une table d?partements ou dans la m?me table ?ventuellement mais il faut une clef qui permette d'associer les d?partements aux r?gions). Le wiki explique bien. Il y a aussi un site de d?mo http://demo.fabrikar.com/ sections "elements", panneau "lookup"

Bon courage
 
Oui ?a marche tr?s bien.

Pour r?pondre plus simplement par rapport ? ma propre utilisation de Fabrik :

- Avec le plugin php des formulaires : on peut demander des modifications en BDD selon le contenu du formulaire.

- Avec les r?gles Javascript des ?l?ments : on peut conditionner l'affichage d'?l?ment ou groupes d'?l?ments selon le contenu de certains champs.

? plus et bon courage !
 
Merci beaucoup.
J'ai utilis? le Calc et ?? fonctionne nickel malgr? le message d'erreur suivant lors de l'enregistrement de l'?l?ment :
"BLOB/TEXT column 'name' used in key specification without a key length SQL=ALTER TABLE `test03_users` CHANGE `name` `name` TEXT"
:cool:

Et dire que j'?tais parti dans des choses plus complexes en php qui ne fonctionnaient pas :oops:
 
En changeant l'?l?ment "name" en type "calc", Fabrik cherche ? modifier la colonne de la table correspondante de "varchar" ? "text". Il devait y avoir un index sur cette colonne et mysql "n'aime" pas les index sur les colonnes de type "text"...
Si fabrik a d?cid? de d?finir un index sur cette colonne c'est qu'elle devait ?tre utilis?e pour un filtre, jointure ou autre... La solution pour ne plus avoir ce message d'erreur est de supprimer cet index dans pypmyadmin (drop index...). Mais le risque c'est que les performances soient mauvaises si l'index ?tait vraiment utile et que la table est importante.
 
Bonjour,

J'ai un champ "statut_inscription" avec les valeurs 0, 1 et 2 ("inscrit ?tape 1", "inscrit ?tape 2" et "inscrit valid?"). Par d?faut, le champ est ? 0. Lorsque le visiteur s'est inscrit et a rempli une fiche fabrik, le champ passe ? 1 et pr?vient l'administrateur par mail. Si les donn?es sont ok alors l'administrateur passe le champ ? 2.

Sauf qu'ici (suite ? cette discussion : http://fabrikar.com/forums/index.ph...création-modification-par-lutilisateur.39486/), l'utilisateur peut modifier sa fiche apr?s l'?tape 2, donc avant la validation de l'administrateur et m?me apr?s. o_O

Quel code utiliseriez vous pour d?sactiver un champ de la fiche lorsque le champ "statut_inscription" a sa valeur > 0 svp ?
M?me question pour un sous-groupe complet ?
 
Vous souhaiteriez qu'un champ ou un groupe de champ soit non modifiable par l'utilisateur en fonction de la valeur d'un autre champ alors que d'autres champs sur le m?me formulaire le sont ?

Pour ma part, j'essayerai avect du Javascript "on load" sur le champ clef pour d?sactiver les champs en question. Quelque chose comme :
$('votreliste___votreelement').disabled = true;
mais je ne sais pas si cette syntaxe marche encore sous F3.2.
On doit aussi pouvoir faire du php dans un form plugin "onBeforeRender" pour changer la classe de certains ?l?ments (readonly ?).
Peut-?tre que quelqu'un d'autre aura une autre id?e ?...
 
We are in need of some funding.
More details.

Thank you.

Members online

No members online now.
Back
Top