CMS Automne http://www.automne-cms.org/forum/ |
|
[Résolu] Problème atm-form-callback http://www.automne-cms.org/forum/viewtopic.php?f=2&t=1142 |
Page 1 sur 1 |
Auteur: | Fouineux [ Mar Jan 03, 2012 5:07 pm ] |
Sujet du message: | [Résolu] Problème atm-form-callback |
Bonjour, Je cherche à lier deux objets d'un même module polymod ensemble, via un formulaire de création. Pour être plus clair, voici la structure de mes deux objets : Affaires : -Libellé (texte) -Code (texte) Doc Qualité -Libellé (texte) -Fichier (fichier) -..... -Affaires (objet de type Affaires) J'ai donc un formulaire atm-form dans une de mes pages pour créer un document qualité. La subtilité est que dans certains cas, un document peut être lié à une affaire. J'ai donc crée une liste déroulante dans mon formulaire pour choisir l'objet Affaires à lier. A la validation, l'id de l'affaire sélectionnée est bien envoyé, mais le formulaire provoque une erreur. Cependant le document est bien créé, seule l'affaire reste vide. A force de chercher, je me suis rendu compte que c'est ma partie atm-form-callback qui semble provoquer l'erreur. c'est cette partie qui est normalement censée lier les deux objets. Voici le code correspondant : Code : <atm-form-callback form="createDoc"> <!-- Ici nous choisissons de rechercher un objet Document_Qualite --> <atm-search what="{Affaires}" name="addDoc" public="false"> <atm-search-param search="addDoc" type="item" value="{request:int:aff}" mandatory="true" /> <atm-result search="addDoc"> <!-- Dans l'actualité trouvée nous ajoutons le nouvel objet Message créé par le formulaire dans le champ stockant les Messages --> <atm-object-link field="{Document_Qualite:Affaires}" objectId="{Affaires:id}" /> </atm-result> </atm-search> </atm-form-callback> En regardant dans les logs d'erreur, j'obtiens cette ligne : Code : 2012-01-03 16:52:43|http|PHP Warning : Parameter 2 to form_createDoc() expected to be a reference, value given line 442 of file /var/www/automneV4/automne/classes/modules/polymod/poly_definition_functions.php Apparemment, il y aurai un paramètre erroné quelque part mais ma connaissance atteint ses limites Peut-être est-ce une mauvaise utilisation de la balise <atm-object-link>? Si quelqu'un peut me donner une piste, je lui en serait fortement reconnaissant |
Auteur: | Sébastien [ Mar Jan 03, 2012 5:15 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
quelle est ta version d'Automne ? |
Auteur: | Fouineux [ Mar Jan 03, 2012 5:20 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
C'est la version Automne 4.1.3! |
Auteur: | Sébastien [ Mar Jan 03, 2012 5:26 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
Il va me falloir le code complet de ta rangée (ou au moins de ton tag atm-form concerné par le callback) sans quoi je vais pas m'en sortir. Peux tu me dire aussi quelle est ta version de PHP ? |
Auteur: | Fouineux [ Mar Jan 03, 2012 5:30 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
Voici le code complet de ma rangée : Code : <row> <block module="QDoc" id="doc" language="fr"> <atm-form what="{Document_Qualite}" name="createDoc" id="createDoc"> <!-- Cette partie permet d'effectuer des opérations suite à l'enregistrement du formulaire. Le contenu de ce tag sera exécuté après la soumission du formulaire et uniquement si la soumission s'est effectuée correctement. --> <atm-form-callback form="createDoc"> <!-- Ici nous choisissons de rechercher un objet Document_Qualite --> <atm-search what="{Affaires}" name="addDoc" public="false"> <atm-search-param search="addDoc" type="item" value="{request:int:aff}" mandatory="true" /> <atm-result search="addDoc"> <!-- Dans l'actualité trouvée nous ajoutons le nouvel objet Message créé par le formulaire dans le champ stockant les Messages --> <atm-object-link field="{Document_Qualite:Affaires}" objectId="73" /> </atm-result> </atm-search> </atm-form-callback> <!-- Cette partie affiche le message indiquant que le formulaire a été correctement enregistré --> <atm-if what="{filled}"> <div class="mess_info">Votre document a bien été publié !</div> </atm-if> <!-- Cette partie affiche le formulaire si il n'est pas rempli ou comporte des erreurs --> <atm-if what="!{filled}"> <!-- Cette partie affiche les erreurs éventuelles survenues lors de la soumission --> <atm-if what="{error}"> <div class="mess_erreur"> Une erreur est survenue durant la publication de votre document ... Veuillez réessayer. </div> </atm-if> <!-- Cette partie affiche une erreur à propos des champs manquants détectés lors de la soumission --> <atm-if what="{required}"> <div class="mess_erreur">Les champs suivants sont requis : <ul> <atm-form-required form="createDoc"> <li>{requiredname}</li> </atm-form-required> </ul> </div> </atm-if> <!-- Cette partie affiche une erreur à propos des champs incorrects détectés lors de la soumission --> <atm-if what="{malformed}"> <div class="mess_erreur">Les champs suivants sont incorrects : <ul> <atm-form-malformed form="createDoc"> <li>{requiredname}</li> </atm-form-malformed> </ul> </div> </atm-if> <!-- ... Ajoutez ici les champs atm-input composant votre formulaire ... --> <!-- Exemple de tag atm-input --> <div> <div class="mess_info"> Pour publier un document, veuillez renseigner les informations ci-dessous. Tous les champs sont obligatoires.<br/><br/> La publication sera effective immédiatement et ne sera pas modifiable. Veuillez donc vérifiez les informations saisies avant de cliquer sur Publier! </div> <br/> <b>Titre :</b><br/> <atm-input field="{Document_Qualite:Titre}" form="createDoc" /><br/><br/> <b>Processus :</b><br/> <atm-input field="{Document_Qualite:Processus}" form="createDoc" /><br/><br/> <b>Type :</b><br/> <atm-input field="{Document_Qualite:Type}" form="createDoc" /><br/><br/> <b>Auteur :</b> <atm-input field="{Document_Qualite:Auteur}" form="createDoc" /><br/><br/> <b>Description :</b><br/> <atm-input field="{Document_Qualite:Description}" form="createDoc" /><br/><br/> <b>Date de publication :</b> <atm-input field="{Document_Qualite:Date_de_publication}" form="createDoc" /><br/><br/> <b>Affaire :</b> <select id="aff" name="aff"> <option value=""></option> <atm-function function="selectOptions" object="{Affaires}" selected="{request:int:aff}"></atm-function> </select><br/><br/> <div id="div_fake_fic"> <b>Fichier :</b> <atm-input field="{Document_Qualite:Fichier}" form="createDoc" /><br/><br/> </div> </div> <!-- Bouton de soumission du formulaire --> <center><input type="button" value="Publier le document" onclick="Valider()" /></center> </atm-if> </atm-form> </block> </row> Pour info, le code JS "Valider()" appelé au clic sur le bouton permet de vérifier que tous les champs ont bien été saisi en amont de la soumission du formulaire. Pour PHP, voici la version telle qu'elle apparait dans Automne : 5.0.67-0ubuntu6-log Merci pour l'aide! |
Auteur: | Sébastien [ Mar Jan 03, 2012 5:37 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
Non c'est pas possible que tu sois sur une version 5.0 de PHP, Automne nécessite une version 5.2 minimum, il n’accepterai même pas de fonctionner. T'es sur de toi ? La version de PHP est la première chose affichée dans l'onglet Informations PHP coté admin (dans paramètres serveur du panneau latéral). |
Auteur: | Fouineux [ Mar Jan 03, 2012 5:42 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
Oups, j'ai copié la ligne MySql Effectivement, la version PHP est : 5.3.2-1ubuntu4.11 Désolé... |
Auteur: | Sébastien [ Mar Jan 03, 2012 6:06 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
me disait bien aussi. Ton pb vient d'un changement entre PHP 5.2 et PHP 5.3 qui n'est pas géré avec Automne 4.1.3. Il est normalement réglé dans Automne 4.2. Tu peux migrer en version 4.2.0 beta 4 et me dire ce que ça donne ? Tu le trouvera là : http://www.automne-cms.org/web/fr/496-t ... 2-beta.php |
Auteur: | Fouineux [ Mar Jan 03, 2012 6:09 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
Arf Il s'agit d'un Intranet pour ma boîte, on a déjà une bonne base développée sur cette version, et passer en version béta en prod va surement poser problème... Est-il possible de corriger ce bug sans passer en version béta?Sinon tant pis, j’essaierai de développer ca directement en PhP et de le coupler à Automne, mais ca va être une autre paire de manche |
Auteur: | Sébastien [ Mar Jan 03, 2012 6:13 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
non, compte tenu de l'impact, tu ne pas pas régler ça sans mettre à jour. Faut y passer. Ceci dit, t'es pas obligé de le régler en prod, tu fais une copie sur un serveur de dev, tu teste et si la migration se passe bien tu l'applique en prod ensuite. |
Auteur: | Sébastien [ Mar Jan 03, 2012 6:17 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
non, attend je me trompe de bug, celui là est simple à régler remplace la ligne indiquée dans ton erreur Citer: line 442 of file /var/www/automneV4/automne/classes/modules/polymod/poly_definition_functions.php par celles là : Code : $funcName = 'form_'.$formID;
if (function_exists('form_'.$formID) && !$funcName($formID, $item)) { |
Auteur: | Sébastien [ Mar Jan 03, 2012 6:19 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
j'ai oublié un truc, j'ai mis à jour le code au dessus. |
Auteur: | Fouineux [ Mar Jan 03, 2012 6:32 pm ] |
Sujet du message: | Re: Problème atm-form-callback |
Parfait!! Ca règle effectivement le problème! Merci beaucoup pour l'aide et la réactivité!Pour la peine je vais quand même monter une version de dèv sous la 4.2 béta, car il y a plusieurs améliorations que j'aimerai tester quand même (notamment le LDAP hinhinhin ) |
Page 1 sur 1 | Le fuseau horaire est UTC [Heure d’été] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |