Crayons : Contrôleurs et Vues - commentaires Crayons : Contrôleurs et Vues 2017-09-19T14:37:22Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment493434 2017-09-19T14:37:22Z <p>Bonjour,<br class="autobr"> je viens de mettre à jour le <a href="https://contrib.spip.net/Crayons-controleurs-et-vues-doc-complementaire" class="spip_out" rel='nofollow external'>wiki</a> avec un exemple d'utilisation du datepicker pour un champ date</p> Crayons : Contrôleurs et Vues 2014-06-21T10:54:17Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment475928 2014-06-21T10:54:17Z <p>bonjour</p> <p>impossible de faire fonctionner cet exemple en SPIP3</p> <p>les <code class="spip_code spip_code_inline" dir="ltr">#ENV{name_xxx)</code> ne sont pas passés dans le controleur</p> <p>J'ai essayé de les reconstituer en écrivant</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>name="content_#ENV{key)_xxx"</code></pre></div> <p>mais à ma grande surprise cela ne fonctionne pas non plus.... si quelqu'un a une piste merci<small class="fine d-inline"> </small>!</p> Crayons : Contrôleurs et Vues 2014-02-11T11:18:21Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment473819 2014-02-11T11:18:21Z <p>C'est décrit dans <a href="http://contrib.spip.net/Crayons-controleurs-et-vues-doc-complementaire" class="spip_url spip_out auto" rel="nofollow external">http://contrib.spip.net/Crayons-controleurs-et-vues-doc-complementaire</a> :</p> <blockquote class="spip"> <p>Nom servant d'index dans l'environnement reçu par un contrôleur</p> <p>Le contrôleur reçoit un environnement avec la valeur de l'index de l'enregistrement édité, affecté à un nom qui est bien l'index de la table si la table suit les conventions de nommage élémentaires de SPIP : c'est à dire lorsque le nom du champ index est de la forme 'id_table' et la table s'appelle 'TABLE' ou 'TABLES'.</p> <p>Si donc la table est «<small class="fine d-inline"> </small>PLOUF', l'index reçu a pour nom 'id_plouf' même si le vrai champ index de la table PLOUF est<small class="fine d-inline"> </small>»mon_idploc". Il faudra alors dans ce cas faire le lien dans la boucle avec :<br class="autobr"> </p> </blockquote> Crayons : Contrôleurs et Vues 2011-10-11T19:49:16Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment450739 2011-10-11T19:49:16Z <p>J'ai voulu utiliser les saisies pour un controleur perso. Dans mon cas : des radio-boutons.</p> <p>Le code :</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code>#CACHE{0} <ul> <li class="fieldset" style="#ENV{largeur}px;#ENV{style}"> <ul> <li class="editer_monchamp"> <input type="hidden" name="#ENV{name_monchamp}"/> [(#SAISIE{radio, #ENV{name_monchamp}, label=<:monplugin:monchamp:>, valeur_forcee=#GET{monchamp}, datas=#ARRAY{ 0, <:monplugin:label_monchamp_false:>, 1, <:monplugin:label_monchamp_true:>} })] </li> </ul> </li> </ul></code></pre></div> <p>A noter :</p> <ul class="spip"><li> Sans inclure le champ caché : <code class="spip_code spip_code_inline" dir="ltr"><input type="hidden" name="#ENV{name_monchamp}"/></code>, la saisie est vide. <strong>Il faut rajouter absolument cette ligne</strong>.</li><li> il a fallu aussi passer la valeur du champ, avec <code class="spip_code spip_code_inline" dir="ltr">valeur_forcee</code>, elle ne passe pas toute seule.</li></ul> <p>Bon, a vérifier dans d'autres cas, mais il semblerait qu'il est necessaire de créer un champ caché pour utiliser les saisies dans les controleurs des crayons.</p> Crayons : Contrôleurs et Vues 2011-07-28T22:38:01Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment448229 2011-07-28T22:38:01Z <p> :-(</p> <p>Les crayons ne prennent pas en compte les « surnoms » pour les nouveaux objets créés dans des plugins... Par exemple, j'utilise un objet appelé « entidad », soit au pluriel « entidades » (en espagnol). Le contrôleur et la vue doivent s'appeler :</p> <ul class="spip"><li> controleurs/entidade.html</li><li> vues/entidade.html<br class="autobr"> pour que ca marche, et dans ces fichiers, je dois mettre : <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><BOUCLE_a(ENTIDADES){id_entidad=#ENV{id_entidade}}{tous}></code></pre></div> <p>pour avoir un resultat dans ma boucle... C'est a dire que les crayons retirent simplement un « s » a la table pour récupérer le nom de l'objet.</p> </li></ul> <p>J'imagine qu'on pourrait faire le test avec « hibou/hiboux » et on obtiendrait le même résultat problématique...</p> <p>(j'utilise SPIP 3.0.0-alpha et Crayons 1.12.1)</p> Crayons : Contrôleurs et Vues 2010-11-24T18:15:35Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment437376 2010-11-24T18:15:35Z <p>Hourra, j'ai enfin trouvé<small class="fine d-inline"> </small>!</p> <p>Après avoir mis des</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code>{tout}</code></pre></div> <p>dans toutes mes boucles auteurs, j'ai supprimé le</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code> {#ENV*{tests}}</code></pre></div> <p>de l'exemple, et ça marche<small class="fine d-inline"> </small>!</p> Crayons : Contrôleurs et Vues 2010-11-16T02:57:53Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment436958 2010-11-16T02:57:53Z <p>Le problème venait d'un critère d'une boucle AUTEURS dans le fichier vue... Une boucle sur un auteur qui n'a pas écrit d'article ne renvoie rien, il faut lui mettre le critère <i>tout</i> pour qu'elle renvoie qqchose.</p> Crayons : Contrôleurs et Vues 2010-11-15T23:44:08Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment436956 2010-11-15T23:44:08Z <p>j'ai le même problème que toi. Je dois recharger la page. As-tu trouvé la solution<small class="fine d-inline"> </small>? <br class="autobr"> Mais il est vrai que ce n'est pas très propre comme méthode, l'idéal serait de récupérer les données (stockées sous format JSON je crois) du champs extra<small class="fine d-inline"> </small>!</p> Crayons : Contrôleurs et Vues 2010-10-21T13:41:44Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment436010 2010-10-21T13:41:44Z <p>Chez moi, cela n'a marché qu'en mettant les valeurs partout.<br class="autobr"> C'est à dire qu'à la place de :</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><option value="1" [(#GET{tests}|=={1}|?{selected})]>Janvier</option></code></pre></div> <p>J'ai mis :</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><option value="Janvier" [(#GET{tests}|=={Janvier}|?{selected})]>Janvier</option></code></pre></div> <p>Par contre, je suis obligée de recharger la page pour que la modification s'affiche.</p> Crayons : Contrôleurs et Vues 2010-10-20T17:40:57Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment435973 2010-10-20T17:40:57Z <p>dans la boucle</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><BOUCLE_r(ARTICLES){id_article} {tests}></code></pre></div> <p>il faut mettre :</p> <div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code><BOUCLE_r(ARTICLES){id_article} {par tests}></code></pre></div> <p>(Merci à Cyril Marion<small class="fine d-inline"> </small>!)</p> Crayons : Contrôleurs et Vues et champ menu-enum d'extras2 2009-12-01T12:42:19Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment423804 2009-12-01T12:42:19Z <p>On ne se relit jamais assez :-(</p> <p>il y a une erreur sur le dernier code</p> <p>voici le bon :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><div class="#EDIT{tests} tests">#LISTER_VALEURS{tests}</div></code></pre></div> Crayons : Contrôleurs et Vues et champ menu-enum d'extras2 2009-12-01T12:36:39Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment423803 2009-12-01T12:36:39Z <p>Exemple d'utilisation avec champ extra.</p> <p>Cela doit être possible de le faire plus simplement au niveau de mon contrôleur car je n'utilise pas les valeurs stockées dans la table meta, et du coup je suis obligé de répéter au niveau de mon « select » toutes les « options », mais en tout cas cela fonctionne, <i>si quelqu'un sait faire cela plus propre, je suis preneur</i> :-)</p> <p>j'ai créer un champ extra (avec extras2) lié à un article, ce champ est en type : menu-enum, pour cet l'exemple je l'appelle « tests ». pour l'exemple je suis parti sur les mois de l'année mais cela aurait pu être, des fruits, des qualifications, ou tout autre choses ...</p> <p>Je crée donc dans mon répertoire squelette un répertoire « controleurs » et un répertoire « vues ».</p> <p>dans mon répertoire « controleurs » je crée un fichier « tests.html » avec ce code :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>[(#REM) Controleur pour le crayon 'tests', lié à un article ] #CACHE{0} <BOUCLE_a(ARTICLES){id_article}{statut==.}> #SET{tests,#tests} </BOUCLE_a> <BOUCLE_a(ARTICLES){id_article}{statut==.}> #SET{tests,#TESTS} </BOUCLE_a> <select class="crayon-active" name="#ENV{name_tests}" > <BOUCLE_r(ARTICLES){id_article} {tests}> <option value="1" [(#GET{tests}|=={1}|?{selected})]>Janvier</option> <option value="2" [(#GET{tests}|=={2}|?{selected})]>Février</option> <option value="3" [(#GET{tests}|=={3}|?{selected})]>Mars</option> <option value="4" [(#GET{tests}|=={4}|?{selected})]>Avril</option> <option value="5" [(#GET{tests}|=={5}|?{selected})]>Mai</option> <option value="6" [(#GET{tests}|=={6}|?{selected})]>Juin</option> <option value="7" [(#GET{tests}|=={7}|?{selected})]>Juillet</option> <option value="8" [(#GET{tests}|=={8}|?{selected})]>Août</option> <option value="9" [(#GET{tests}|=={9}|?{selected})]>Septembre</option> <option value="10" [(#GET{tests}|=={10}|?{selected})]>Octobre</option> <option value="11" [(#GET{tests}|=={11}|?{selected})]>Novembre</option> <option value="12" [(#GET{tests}|=={12}|?{selected})]>Décembre</option> </BOUCLE_r> </select></code></pre></div> <p>et dans mon répertoire « vues » je crée un fichier « tests.html » avec ce code :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>[(#REM) Vue pour le crayon "tests" Cf. controleurs/tests.html ] <BOUCLE_tests(ARTICLES) {id_article=#ENV*{id_article}} {#ENV*{tests}} {statut==.}> #LISTER_VALEURS{tests} </BOUCLE_tests></code></pre></div> <p>et dans mon squelette « article.html » j'utilise cette ligne :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><div class="#EDIT{mois} mois">#LISTER_VALEURS{mois}</div></code></pre></div> <p>Si cela peut aider quelqu'un<small class="fine d-inline"> </small>!!</p> Crayons : Contrôleurs et Vues 2009-04-20T17:48:21Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment415569 2009-04-20T17:48:21Z <p>moi aussi, « j'me réponds »<small class="fine d-inline"> </small>;-)</p> <p>pour que le select correspondant soit sélectionné à l'ouverture du crayon, il faut mettre dans la boucle qui « set » le « id » :<br class="autobr"> <code class="spip_code spip_code_inline" dir="ltr">#SET{id,#ID_TYPE_ACTION}</code></p> <p>et comme critère à la boucle :<br class="autobr"> <code class="spip_code spip_code_inline" dir="ltr"><BOUCLE_a(ACTIONS){id_action=#ID_ACTIONS}></code></p> <p>Je pense que le #ID_xx doit prendre le nom de la table, et non le nom de la variable comme je faisais avant...</p> <p>Cyril</p> Crayons : Contrôleurs et Vues 2009-04-20T17:24:20Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment415568 2009-04-20T17:24:20Z <p>Hello,</p> <p>Petit exemple de réalisation sur une table non-spip.</p> <p><strong>Objectif</strong> : dans une page servant à la mise au point d'une table, dans une colonne affichant un INT, je voulais dérouler avec les crayons une liste de noms en clair plutôt que d'ouvrir un bête input et de saisir l'entier correspondant à la main. A la place d'un nombre donc je voulais une valeur « en texte clair ».</p> <p><strong>Réalisation</strong> : je me suis inspiré du contrôleur « id_parent » livré dans le répertoire « controleurs » des crayons, du fait qu'il présnetait une liste.</p> <p><strong>Code</strong> :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>#CACHE{0} [(#REM) Contrôleur pour le crayon 'id_type_action' , uniquement html ] <BOUCLE_a(ACTIONS){id_action}> #SET{id,#ID_TYPE_ACTION} </BOUCLE_a> <select class="crayon-active" name="#ENV{name_id_type_action}" > [(#REM) on récupère le texte "nom_type_action" correspondant à l'entier "id_action" dans une la table "types_actions" ] <BOUCLE_ta(TYPES_ACTIONS){par id_type_action}> <option value="#ID_TYPE_ACTION" [(#GET{id}|=={#ID_TYPE_ACTION}|?{selected})]>#NOM_TYPE_ACTION</option> </BOUCLE_ta> </select></code></pre></div> <p><strong>Important</strong> : la valeur de l'attribut « name » du select doit être de la forme #ENV<i>name_nom_du_champ</i></p> <p>Pour l'instant je n'ai pas encore réussi à faire fonctionner le « selected »... mais j'ai bon espoir<small class="fine d-inline"> </small>!</p> <p>Bonne utilisation,<br class="autobr"> Cyril</p> Crayons : Contrôleurs et Vues 2008-05-11T06:27:56Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment405857 2008-05-11T06:27:56Z <p>Je me réponds :</p> <p>Pour la boucle SITES, il faut mettre comme critère de sélection <code class="spip_code spip_code_inline" dir="ltr">{id_syndic=#ENV{id_site}}</code><br class="autobr"> Du coup, les contrôleurs fonctionnent</p> <p>Voir le contrôleur « hyperlien », présent dans ce plugin, pour plus d'information.</p> <p>PS : Promis, j'arrête de me servir de ce forum comme bloc note :)</p> Crayons : Contrôleurs et Vues 2008-05-11T04:33:28Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment405855 2008-05-11T04:33:28Z <p>En définitive, je me retrouve avec :</p> <p>L'obligation d'utiliser les contrôleurs et vues pour la boucle SYNDIC_ARTICLES</p> <p>L'obligation de ne pas utiliser les contrôleurs et vues pour la boucle SYNDIC</p> <p>Est-ce normal docteur<small class="fine d-inline"> </small>?</p> <p>Quelqu'un aurait-il déjà utiliser les crayons pour ces 2 boucles<small class="fine d-inline"> </small>?</p> Crayons : Contrôleurs et Vues 2008-05-09T15:31:32Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment405835 2008-05-09T15:31:32Z <p>J'ai oublié de préciser que je suis en 1.9.2<sup class="typo_exposants">d</sup></p> Crayons : Contrôleurs et Vues 2008-05-09T15:17:57Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment405834 2008-05-09T15:17:57Z <p>J'ai l'impression qu'il y a un problème avec la boucle SITES et les contrôleurs.</p> <p>Dés que j'utilise un contrôleur avec la boucle SITES, je me retrouve avec juste les 2 boutons (rien ne s'affiche).</p> <p>Exemple sur le #STATUT d'une boucle SITES : <br class="autobr"> Nom de mon fichier : statutsite.html</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_g(SITES){id_syndic}{statut==.}> #SET{id,#STATUT} <select class="crayon-active" name="#ENV{name_statut}" style="width:#ENV{largeur}px;" > <option value="publie"[(#GET{id}|=={publie}?{selected})]>publié</option> <option value="prop"[(#GET{id}|=={prop}?{selected})]>proposé</option> <option value="refuse"[(#GET{id}|=={refuse}?{selected})]>refusé</option> </select> </BOUCLE_g></code></pre></div> <p>Appel par :</p> <div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code> <div class="#EDIT{statutsite} mis_a_jour">#STATUT</div></code></pre></div> <p>Le même contrôleur adapté à la boucle SYNDIC_ARTICLES fonctionne parfaitement.<br class="autobr"> Le problème se répète sur plusieurs contrôleurs (comme sur celui adapté de « syndic_article_hyperlien » par exemple).</p> <p>Si je n'utilise pas de contrôleur, aucun problème.<br class="autobr"> J'ai une version à jour.</p> <p>Merci</p> Crayons : Contrôleurs et Vues 2008-05-09T13:05:08Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment405820 2008-05-09T13:05:08Z <p>Merci</p> <p>J'utilise beespip et leur crayon n'est pas à jour</p> <p>++</p> Crayons : Contrôleurs et Vues 2008-05-08T17:12:46Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment405798 2008-05-08T17:12:46Z <p>Dans la version actuelle il n'y a plus de /</p> <p><a href="http://zone.spip.org/trac/spip-zone/browser/_plugins_/_stable_/crayons/controleurs/statut.html" class="spip_url spip_out" rel='nofollow external'>http://zone.spip.org/trac/spip-zone...</a></p> Crayons : Contrôleurs et Vues 2008-05-08T16:49:55Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment405796 2008-05-08T16:49:55Z <p>Une petite erreur dans le contrôleur statut :</p> <p>Un slash / en trop à la fin de la balise select.</p> <p>Maintenant la liste déroulante fonctionne mieux :)</p> Crayons : Contrôleurs et Vues 2008-04-12T03:14:22Z https://files.spip.org/Crayons-Controleurs-et-Vues#comment405050 2008-04-12T03:14:22Z <p>Bonjour,<br class="autobr"> je réalise mon premier controleur qui sert à modifier les mots-clefs d'un objet.</p> <p>Le formulaire dans <i>controleurs/objet_machin.html</i> est parfaitement chargé, le squelette s'éxécute, le formulaire est affiché avec les données de la base, magnifique.</p> <p>Mon problème est : comment renvoyer les données dans la base<small class="fine d-inline"> </small>? il semble que les zones du formulaire doivent s'appeler quelque chose comme #ENV<i>name_machin</i><small class="fine d-inline"> </small>? Comment faire pour des données multiples (plusieurs mots-clefs pour 1 article<small class="fine d-inline"> </small>?)</p> <p>Merci des lumières (et je m'engage à compléter l'article dès que ca fonctionne, avec même lien url).</p> <p>Michel</p>