[Opened] Re: jForms et control switch
Posted by PomCompot on 10/09/2009 16:37
Merci Foxmask de t'attarder sur mon problème. Pour le post auquel tu m'envoies, il s'agit d'un problème sur les interfaces, pas sur les classes abstraites. D'autre part, j'ai depuis essayé class_exists qui me donne le même résultat. Je pense que ça vient de l'autoload, mais je n'arrive pas à saisir la source du problème.
[Opened] Re: jForms et control switch
Posted by foxmask on 10/09/2009 16:54
effectivement je reproduis le comportement
soit jelix dit que la classe est deja declarer avec un require(_once) soit si on fait pas de require jelix dit ne pas trouve la class ...
je creuse de mon coté ;)
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Re: jForms et control switch
Posted by PomCompot on 10/09/2009 16:59
Je continue mes investigations.
J'ai testé ça dans mon contrôleur :
$testControl = new jFormsControlOutput('test'); $customControl = new CustomControl('custom');
où CustomControl est le contrôle que j'ai créé.
$testControl s'instancie sans problème, sans même avoir besoin de l'inclure grâce à l'autoload de Jelix (init.php).
J'ai essayé de le mettre dans le dossier classes de mon module et de l'inclure via un jClasses::inc. Échec.
J'ai ensuite essayé de tricher en le nommant jFormsControlCustom (pattern de nommage pour les contrôles qui semble être utilisé par l'autoload) et le placer dans le répertoire lib de Jelix avec les autres contrôles (je sais, c'est mal). Échec également.
Je commence à être dépourvu d'idées.
[Opened] Re: jForms et control switch
Posted by PomCompot on 10/09/2009 17:02
Bon, je vais débaucher. Je regarderai ça ce soir si je suis pas trop crevé parce que ça me turlupine. Merci encore.
[Opened] Re: jForms et control switch
Posted by PomCompot on 10/09/2009 21:22
Ça marche impec ! Merci Foxmask. J'avais effectivement besoin de tes lumières. Je pensais que require_once ne balançait pas d'erreur si la classe avait déjà été chargée. L'habitude de Java et de son mécanisme d'import sans doute.
Je me pose une question par contre. Disons que je crée un deuxième control personnalisé avec sa propre classe. Il aura lui aussi besoin d'hériter de jFormsBase. Or, si j'utilise les deux control dans la même page, je vais de nouveau avoir une erreur car chacun va charger jFormsBase et donc le deuxième à le faire va tomber en erreur. Juste ?
De toute façon, je vais le tester pour vérifier mon intuition.
[Opened] Re: jForms et control switch
Posted by PomCompot on 10/11/2009 21:37
Je n'ai pas tout compris à ton dernier post, désolé :-). Je n'ai pas encore testé de toute façon avec deux controls, et je n'ai finalement pas encore bien saisi pourquoi l'héritage de jFormsBase marche et pas celui de jFormsControlGroups. Je vais me pencher plus avant dessus.
Sinon, j'ai, comme je l'avais évoqué au départ de ce thread, rencontré un problème quand j'ajoute un control, personnalisé ou non, à un formulaire depuis le code et pas depuis le XML. Sauf que cette fois-ci, j'ai analysé le problème, j'ai compris d'où ça venait et je l'ai corrigé (contourné).
Explications. On crée un formulaire via un jForms::create(<selector>), puis on lui ajoute un control via la méthode addControl. Ce formulaire est affiché, puis soumis par l'utilisateur. Problème, si on le récupère via jForms::fill(<selector>), le formulaire récupéré ne contient pas le control ajouté. Normal, puisque l'instanciation alors effectuée se base sur la classe compilée du formulaire qui elle ne contient pas le control. jForms::get(<selector>) a logiquement le même comportement. La solution est donc en lieu et place du fill de faire ceci :
$form = jForms::get(<selector>); $form->addControl($monControl); $form->initFromRequest();
Et là ça marche. Pour que ce soit plus propre, j'ai créé une méthode dans mon contrôleur qui me renvoie mon form complet avec le contrôle ajouté et je l'utilise pour l'envoi du formulaire et son traitement.
Voilà. Je vais, si ça ne vous dérange pas, mettre une note là dessus dans le wiki demain.
[Opened] Re: jForms et control switch
Posted by PomCompot on 10/18/2009 14:54
Un petit up au sujet du wiki. Pensez-vous que ça soit opportun et si oui dans quelle section le voyez-vous le mieux : jForms ou Développement avancé ?
[Opened] Re: jForms et control switch
Posted by PomCompot on 11/09/2009 09:28
J'ai complété le wiki ici http://jelix.org/articles/fr/manuel-1.1/jforms/utilisation#ajouter-des-champs-dynamiquement.
Si l'un de vous veut bien y jeter un œil.
Je rajouterai aussi quelque chose dans la partie développement avancé concernant la création de champs personnalisés.
[Opened] Re: jForms et control switch
Posted by laurentj on 11/12/2009 00:13
j'ai complété cette partie de la doc, et fait la traduction dans la version anglaise. ça a permis de fermer un ticket :)