Critère {mots} - comments Critère <code>{mots}</code> 2019-01-26T15:18:46Z https://files.spip.org/Critere-mots#comment499733 2019-01-26T15:18:46Z <p>Je ne sais pas si ce plugin est pertinent pour ce que je veux faire?<br class="autobr" /> Tout se passe du côté public.<br class="autobr" /> Chaque administrateur restreint possède un groupe de mots-clés ayant exactement le même nom que l'auteur. Le premier mot généré dans son groupe est son nom. Ce mot-clé est attribué à l'auteur. De plus avec MOTUS le groupe de mots clés est lié à la rubrique restreinte de l'auteur.<br class="autobr" /> Dans son groupe, sur une page mots.html ou auteur.html je voudrais qu'il puisse ajouter des sous-groupes et des mots, puis lorsqu'il est dans un article ou un document ... qu'il puisse assigner le mot clé de son choix. Enfin je voudrais que la recherche se fasse uniquement dans son groupe de mots.<br class="autobr" /> J'arrive <strong>en partie</strong> à faire ce que je veux avec spipiculous et choix mots mais les mots-clés générés dans -tag- ne sont pas spécifiques à chaque utilisateur. <br class="autobr" /> Je pensais qu'une boucle MOTS dans un boucle auteurs ayant <code>{id_auteur=#SESSION{id_auteur}}</code> ferait l'affaire mais non.Dans tous mes essais il n'y a que ce code (trouvé dans spip@rezo.net) permet d'afficher pour chaque auteur son groupe et ses mots-clés utilisés.</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>[(#REM) On crée le tableau ] #SET{mots, #ARRAY} [(#REM) On remplit le tableau avec les titres des mots liés à l'auteur connecté ] <BOUCLE_mots_auteur(MOTS){id_auteur=#SESSION{id_auteur}}> #SET{mots, #GET{mots}|push{#TITRE}} </BOUCLE_mots_auteur> <h3>Le contenu du tableau (pour info)</h3> [(#GET{mots}|foreach)] <hr /> [(#REM) On sort les articles dont le mot est dans le tableau ] <h3>Les articles</h3> <BOUCLE_articles_mots(ARTICLES){titre_mot IN #GET{mots}}> <p>#TITRE</p> </BOUCLE_articles_mots></code></pre></div> Critère <code>{mots}</code> 2018-05-09T10:42:31Z https://files.spip.org/Critere-mots#comment496838 2018-05-09T10:42:31Z <p>Bon,</p> <p>en fait idéalement, il aurait mieux value la saisie (au sens du plugins saisie) mots pour que ton champs extra permette de gérer plusieurs mots. Là tu courcircuite le mecanisme de construction automatique de formulaire par le plugin champ extra. Mais passons.</p> <p>Deja, je serais toi je stocker l'identifiant du mot clef, et pas le titre, lequel est susceptible de changer.</p> <p>Dans ta boucle auteur, tu dois pouvoir récuperer ce qui est stocké dans le champ preferences, via la balise #PREFERENCES. Comme c'est un tableau, tu peux utiliser le filtre <code>|in_array</code> pour tester si cela correspond au mot courant. Voir exemple ici</p> <p><a href="https://www.spip.net/fr_article4009.html" class="spip_url spip_out auto" rel="nofollow external">https://www.spip.net/fr_article4009.html</a></p> <p>Ensuite, puisque tu stocke tes id de mots dans un tableau #PREFERENCES d'une boucle auteur, il te suffit pour ta recherche d'avoir le critère <code>{mots_selon_id #PREFERENCES}</code> pour la boucle d'evebnement, elle même intégré dans la boucle d'auteur.</p> Critère <code>{mots}</code> 2018-05-09T10:32:08Z https://files.spip.org/Critere-mots#comment496837 2018-05-09T10:32:08Z <p>Merci pour tes conseils Maïeul, cela m'a provoqué une chouette nuit de code... ;-)</p> <p>J'ai donc exploré la piste du champs extra input qui conserve l'array de mes choix.</p> <p>J'ai fait une page de récap' étape par étape. Avec les scripts et boucles utilisées pour ceux que cela intéresse : <a href="http://lakesapp.formatec.be/?page=test_critere_mot" class="spip_url spip_out" rel='nofollow external'>http://lakesapp.formatec.be/?page=t...</a></p> <p>Je coince sur deux choses:</p> <p>- à l'etape3, comment faire pour que mon tableau de choix soit en statut “checked” si c'est le cas dans mon array de preferences ?</p> <p>- et à l'étape 5, là ont est au coeur du plugin “critere mot” que je ne maitrise pas encore bien. Comment faire pour que cette boucle agenda devienne un agenda perso en fonction de mes mots favoris? Je pense que ton plugin est le meilleur moyen, mais je ne vois pas bien comment mettre en oeuvre.</p> Critère <code>{mots}</code> 2018-05-08T10:08:11Z https://files.spip.org/Critere-mots#comment496830 2018-05-08T10:08:11Z <p>Il y a deux points différents: <br />- comment tu stocke les mot clefs pour chaque utilisateur. La piste champ extra est une piste possible, à mon avis la plus pertinente, mais tu pourrais aussi associer des mots clefs aux utilisateurs.<br class="autobr" /> Inconvénient et avantage des deux solutions:<br class="autobr" /> L'avantage de champ extra est que l'interface sans doute plus simple à mettre en place côté publique (juste un formulaire), et les données seraient stockées sous forme de tableau, donc plus simple pour ta future requete. L'inconvénient est que pour le moment la saisie “Mot clefs” ne permet pas de saisir plusieurs mot clefs. A priori cela ne devrait pas être hyper compliqué de l'adapter, mais il faut quand même un peu de temps. Je te propose de le faire toi même, ou de poser la question sur le forum du plugin saisies si tu ne t'en sent pas les compétences.- <br />- comment tu t'en sert pour ensuite afficher un contenu personnalisé. Le plugin critères mots te permettra de faire cela.</p> Critère <code>{mots}</code> 2018-05-08T09:55:52Z https://files.spip.org/Critere-mots#comment496828 2018-05-08T09:55:52Z <p>J'ai besoin des conseils de la communauté car plusieurs pistes se dessinent, mais je ne sais pas pour laquelle opter.</p> <p>OBJECTIF: les visiteurs peuvent accéder à leur profil et modifier leurs centres d'intérêts. Ceux ci se présentent dans des groupes de mots clés. Les mêmes que ceux attribués aux articles, les boucles articles et evenements seront par la suite adaptées pour que chaque auteur/visiteur recoivent un contenu perso.</p> <p>- j'ai ajouté un champs extra 'mot clé' sur la table auteur, mais impossible de faire des choix multiples (ai-je mal vu? est ce possible?).</p> <p>- autre possibilité: faut il opter pour un champs extra 'input' qui recevra une array des choix persos de l'auteur et seront envoyés sur la table via:</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code> $preferences = implode(',', $preferences); $set = array( 'preferences ' => $preferences , ); sql_updateq( "spip_auteurs", $set, (...)</code></pre></div> <p>- mes recherches m'ont mené sur ce plugin 'critère mot' , serait il une autre piste exploitable?</p> <p>Je cherche le plus simple et efficace, mais j'avoue que je suis un peu perdu....</p> <p>Merci de votre aide.</p> <table class="table spip"> <tbody> <tr class="row_odd odd"> <td>K</td></tr> </tbody> </table> Critère <code>{mots}</code> 2017-10-06T05:51:34Z https://files.spip.org/Critere-mots#comment493642 2017-10-06T05:51:34Z <p>Bonjour,<br class="autobr" /> J'utilise ce plugin, mais je rencontre un problème, je m'explique :<br class="autobr" /> Je travaille avec deux groupes de mots clés : groupe1 et groupe2 <br />- Pour groupe1 sont des case a coché et on peut sélectionner un ou plusieurs mots <br />- Pour groupe2 c'est juste une liste déroulant<br class="autobr" /> Voici mon formulaire :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code> <BOUCLE_groupes(GROUPES_MOTS){id_groupe=1}> <ul> <h4>#TITRE</h4> <BOUCLE_mots(MOTS){id_groupe}{par titre}><li> <span class="logotheme"> </li><label>#TITRE</label><input type="checkbox" name="mots[0]" value="#ID_MOT" /></span></li> </BOUCLE_mots> </ul> </BOUCLE_groupes> <select name="mots[1]"> <option value=""> Votre choix</option> <BOUCLE_select_grp(GROUPES_MOTS){id_groupe=2}> <BOUCLE_motg(MOTS){id_groupe}{par titre}> <option value="#ID_MOT">#TITRE </option> </BOUCLE_motg> </BOUCLE_select_grp> </select></code></pre></div> <p>Si je choisis un mot dans groupe1 et un dans le groupe 2, le résultat s'affiche correctement....Par contre si je choisis plusieurs mots dans le groupe1(case cochet), le résultat est erroné</p> <p>Voici la boucle du résultat</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><B_articles> <h2>#GRAND_TOTAL </h2> <ul> <BOUCLE_articles(ARTICLES) {recherche?} {!par #ENV{tri,points}} {mots?}> <li><a href="#URL_ARTICLE">#TITRE</a></li> </BOUCLE_articles> </ul> </B_articles> <h2><em>Pas de résultat trouvé</em></h2> <//B_articles></code></pre></div> <p>En gros sont les case a cochet qui pose probléme<br class="autobr" /> Merci de votre aide</p> Critère <code>{mots}</code> 2017-06-23T15:29:30Z https://files.spip.org/Critere-mots#comment492643 2017-06-23T15:29:30Z <p>Bon, voilà qui devrait résoudre ce point :<br class="autobr" /> <a href="https://zone.spip.org/trac/spip-zone/changeset/104950" class="spip_url spip_out auto" rel="nofollow external">https://zone.spip.org/trac/spip-zone/changeset/104950</a></p> <p>Note : ça marche chez moi.</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re11"><BOUCLE_circuits</span><span class="re12">(XXXS)</span> <span class="re13"> <span class="re41">{id_xxx ?}</span></span> <span class="re13"> <span class="re41">{mots_selon_id? 100% <span class="re1">#ENV</span><span class="re40">{mots}</span>}</span></span> <span class="re13"> <span class="re41">{mots_selon_id? 1 <span class="re1">#ENV</span><span class="re40">{mots_ou_1}</span>}</span></span> <span class="re13"> <span class="re41">{mots_selon_id? 1 <span class="re1">#ENV</span><span class="re40">{mots_ou_2}</span>}</span></span> <span class="re13"> <span class="re41">{mots_selon_id? 1 <span class="re1">#ENV</span><span class="re40">{mots_ou_3}</span>}</span></span> <span class="re13"> <span class="re41">{recherche ?}</span></span> <span class="re13"> <span class="re41">{","}</span></span> <span class="re10">></span></code></pre></div> <p>Où : <br />- <code>mots</code> est une liste optionnelle d'identifiants de mots où je fais des ET systématiques entre eux <br />- <code>mots_ou_n</code> est une liste optionnelle d'identifiants ou je fais des OU entre eux.</p> Critère <code>{mots}</code> 2017-06-23T12:31:41Z https://files.spip.org/Critere-mots#comment492635 2017-06-23T12:31:41Z <p>Quelque chose me dit qu'il faudrait incrémenter dans <code>critere_mots_dist()</code> la variable <code>$mots_where</code> à chaque usage du critère dans une même boucle.</p> <p>Si on savait la position du critère dans la boucle, ça suffirait d'ailleurs comme suffixe.</p> Critère <code>{mots}</code> 2016-12-05T16:16:54Z https://files.spip.org/Critere-mots#comment490075 2016-12-05T16:16:54Z <p>Utilisation de <i>mots</i> dans un include.</p> <p>Je souhaite utiliser ce critères <i>mots?</i> dans un fichier include.</p> <p>inclusion : [(#INCLURE<i>fond=inc_ressource_mot_and</i> <i>id_rubrique=#ENV<i>idrubrique</i></i><i>recherche</i><i>id_mot</i><i>id_auteur</i><i>env</i><i>ajax</i>)]</p> <p>Boucle dans le include : <br class="autobr" /> </p> <p>- peut-on mettre un ? comme pour un autre critère optionnel ? <br />- à première vue il ne comprend pas si on ajoute simplement <i>id_mot</i> à l'include. Faut-il refaire le tableau id_mot ?</p> <p>Merci de votre aide. <br class="autobr" /> Julien</p> Critère <code>{mots}</code> 2016-12-02T08:57:55Z https://files.spip.org/Critere-mots#comment490021 2016-12-02T08:57:55Z <p>Oui, <code>{!id_mot=XX}</code> est parfois piégeux. Pour des boucles de recherches, notamment, j'ai dû utiliser <code>{!titre_mot=exclure}</code> pour avoir le résultat voulu. Ce n'est pas l'idéal mais ça fonctionne.</p> Critère <code>{mots}</code> 2016-12-02T04:57:04Z https://files.spip.org/Critere-mots#comment490018 2016-12-02T04:57:04Z <p>Les joies de l'informatique !</p> Critère <code>{mots}</code> 2016-12-01T21:13:10Z https://files.spip.org/Critere-mots#comment490017 2016-12-01T21:13:10Z <p>pourtant je t'ai donné en 4 heure la réponse pour revenir à l'ancien systeme…</p> <p>et franchement ton cas est à mon avis vraiment exceptionnel…</p> Critère <code>{mots}</code> 2016-12-01T21:00:54Z https://files.spip.org/Critere-mots#comment490016 2016-12-01T21:00:54Z <p>Bonjour Maïeul,</p> <p>J'ai du recoder en urgence le site en utilisant un autre système suite à la défaillance du plugin<br class="autobr" /> Je vais le réutiliser et te donnerais un retour<br class="autobr" /> Merci pour la mise à jour</p> <p>Bien cordialement</p> Critère <code>{mots}</code> 2016-12-01T16:50:00Z https://files.spip.org/Critere-mots#comment490012 2016-12-01T16:50:00Z <p>Testé et approuvé. 👍</p> Critère <code>{mots}</code> 2016-12-01T15:48:38Z https://files.spip.org/Critere-mots#comment490006 2016-12-01T15:48:38Z <p>un petit retour sur la version 4.0.0? apparemment ce n'était pas si urgent que cela…</p> Critère <code>{mots}</code> 2016-12-01T15:48:04Z https://files.spip.org/Critere-mots#comment490005 2016-12-01T15:48:04Z <p>la version 4.0.1 corrige cela, elle devrait être disponible vers 18h.</p> Critère <code>{mots}</code> 2016-12-01T14:50:44Z https://files.spip.org/Critere-mots#comment490003 2016-12-01T14:50:44Z <p>Bonjour.</p> <p>Sur mon site de tests, après passage de la version 3.0.1 à 4.0.0, et sur une page utilisant le critère mots, j'ai le contenu de l'array qui s'affiche au-dessus du doctype (et sur la page<small class="fine"> </small>!) :</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>array(14) { [0]=> string(5) "13192" [1]=> string(5) "13210" [2]=> string(5) "13218" […] [12]=> string(5) "13365" [13]=> string(5) "13594" }</code></pre></div> <p>Les strings correspondent bien aux articles (publiés ou non) ayant le mot-clé demandé. Je n'ai pas vu d'autre problème : le reste de la page s'affiche correctement.</p> <p>SPIP 3.1.3, PHP 5.3.3 (Je sais, je dois demander à notre hébergeur de faire un upgrade…)</p> <p>Joyeux décembre<small class="fine"> </small>!</p> <p>1138.</p> Critère <code>{mots}</code> 2016-11-23T23:13:50Z https://files.spip.org/Critere-mots#comment489920 2016-11-23T23:13:50Z <p>bon, j'ai pu me dégager du temps. La version 4.0.0 évite ce problème tout en optimisant la requete (ou plus précisement, en contournant un bug de mysql 5)</p> Critère <code>{mots}</code> 2016-11-22T09:17:49Z https://files.spip.org/Critere-mots#comment489904 2016-11-22T09:17:49Z <p>mettre</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>define ('_CRITERE_MOTS_OPTIMISE',0);</code></pre></div> <p>dans mes_options.php. Cela rebasculera sur l'ancien système, plus lent mais visiblement fonctionnel. Désolé mais je peux pas m'occuper de voir comment utiliser le système optimisé avant dimanche.</p> Critère <code>{mots}</code> 2016-11-22T06:12:03Z https://files.spip.org/Critere-mots#comment489903 2016-11-22T06:12:03Z <p>Up up relance urgent, site foutu sans !id_mot= ; normalement il devrait y avoir des centaines de milliers de sites foutus suite à cette maj, avec des boucles qui séléctionnent n'importe quoi</p> <p>Une autre manière d'exclure un mot d'une boucle en attendant que celui-ci refonctionne ?</p> <p>Merci d'avance</p> Critère <code>{mots}</code> 2016-11-21T16:59:37Z https://files.spip.org/Critere-mots#comment489902 2016-11-21T16:59:37Z <p>oui, les requetes SQL sont plus rapides. C'était du reste le but de l'optimisation.</p> <p>Faut que je vois pour la question du critère <code>{!id_mot}</code>, mais celui-ci est déjà piègeux dans certains cas.</p> <p>Bref, je vais essayer de voir cela ce week-end. N'hésite pas àme relancer si besoin.</p> Critère <code>{mots}</code> 2016-11-21T13:09:58Z https://files.spip.org/Critere-mots#comment489899 2016-11-21T13:09:58Z <p>Bonjour,</p> <p>Depuis la maj vers plugin SPIP critère mots 3.0.1 le critère <i>!id_mot</i> ne fonctionne plus</p> <p>Fait planter le site, erreur SQL :</p> <div class="coloration_code cadre"><div class="spip_spip cadre"><div class="spip"><ol><li class="li1"><div class="de1"><span class="re11"><BOUCLEa</span><span class="re12">(MONOBJET)</span><span class="re13"><span class="re41">{!id_mot=5}</span><span class="re41">{mots}</span></span><span class="re10">></span></div></li> </ol></div></div></div> <p>Le critère !id_mot n'est pas pris en compte :</p> <div class="coloration_code cadre"><div class="spip_spip cadre"><div class="spip"><ol><li class="li1"><div class="de1"><span class="re11"><BOUCLEa</span><span class="re12">(MONOBJET)</span><span class="re13"><span class="re41">{mots}</span><span class="re41">{!id_mot=5}</span></span><span class="re10">></span></div></li> </ol></div></div></div> <p>On dirait en revanche que les requêtes SQL sont plus rapides.</p> Critère <code>{mots}</code> 2016-11-04T14:36:44Z https://files.spip.org/Critere-mots#comment489731 2016-11-04T14:36:44Z <p>Ça marche au poil. 👍</p> <p>Merci!</p> Critère <code>{mots}</code> 2016-10-30T11:48:28Z https://files.spip.org/Critere-mots#comment489673 2016-10-30T11:48:28Z <p>lA version 3.0.1 corrige ce bug, qui concerne uniquement les versions de PHP < 5.4</p> Critère <code>{mots}</code> 2016-10-29T14:41:22Z https://files.spip.org/Critere-mots#comment489665 2016-10-29T14:41:22Z <p>Je vous ai envoyé les phpinfo par mail ... et je viens de tester sur une nouvelle installation, sans autre plugin, histoire de trouver l'éventuel “coupable”, et avec tous les reports activés.</p> <p>Il se passe exactement la même chose : plantage puis rien.</p> <p>???</p> <p>En scannant les logs, j'ai trouvé ceci dans spip.log</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>Activer le plugin « @plugin@ » (version : @version@) : variables inutilisees version_maj</code></pre></div> <p>Suivi de</p> <p><code>redirige 302 : http://www.enviroboite.net/test/ecrire/?exec=admin_plugin&action=actionner&redirect=http%3A%2F%2Fwww.enviroboite.net%2Ftest%2Fecrire%2F%3Fexec%3Dadmin_plugin</code></p> <p>Je ne sais pas si cela peut aider ?</p> <p>Je vous envoie les logs par mail.</p> Critère <code>{mots}</code> 2016-10-29T13:51:42Z https://files.spip.org/Critere-mots#comment489664 2016-10-29T13:51:42Z <p>imprimer en PDF et m'envoyer un courriel monprenom@monprenom.net</p> Critère <code>{mots}</code> 2016-10-29T13:46:34Z https://files.spip.org/Critere-mots#comment489663 2016-10-29T13:46:34Z <p>Oui, j'y ai pensé ... mais il faut que je trouve la fenêtre de temps.</p> <p>En attendant, j'ai les 2 phpinfos en version html, comment vous les faire parvenir ?</p> <p>Faire un zip des 2 et le renommer en png ? C'est peut-être moyen pour le fil si cela passe ...</p> Critère <code>{mots}</code> 2016-10-29T12:22:53Z https://files.spip.org/Critere-mots#comment489660 2016-10-29T12:22:53Z <p>effectivement des details serait pas mal.</p> <p>Mais sinon installer spip dans un sous dossier le temps des tests?</p> Critère <code>{mots}</code> 2016-10-29T12:21:27Z https://files.spip.org/Critere-mots#comment489659 2016-10-29T12:21:27Z <p>Le problème se produit sur un site en production.</p> <p>La même configuration SPIP (version, plugins installés) sur mon serveur local ne pose aucun problème.</p> <p>Activer toutes les erreurs sur le site en production et le planter est un peu délicat ...</p> <p>En revanche, les 2 configurations APACHE sont différentes.<br class="autobr" /> Je peux vous donner le détails.</p> <p>Url en ligne : http : // www . enviroboite . net</p> Critère <code>{mots}</code> 2016-10-29T07:17:45Z https://files.spip.org/Critere-mots#comment489652 2016-10-29T07:17:45Z <p>il faudrait voir si le fait de mettre</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', 1); define('SPIP_ERREUR_REPORT',E_ALL); error_reporting(E_ALL^E_NOTICE);</code></pre></div> <p>dans <code>mes_options.php</code> affiche des messages d'erreurs spécifiques.</p> Critère <code>{mots}</code> 2016-10-29T07:11:47Z https://files.spip.org/Critere-mots#comment489651 2016-10-29T07:11:47Z <p>il faudrait voir s'il y a pas de conflit avec d'autres plugins. Chez moi aucun souci pour activer.</p> Critère <code>{mots}</code> 2016-10-28T20:58:15Z https://files.spip.org/Critere-mots#comment489649 2016-10-28T20:58:15Z <p>J'ai refait une tentative :</p> <ol class="spip"><li> Désinstaller la version 2.6</li><li> Vider les caches</li><li> Logs détailles</li><li> Installer version 3.0</li></ol> <p>Rien à faire : tout plante, le site devient totalement inaccessible côté public et côté privé.</p> <p>Je n'ai rien trouvé dans les logs ... ceci étant, SPIP plante dès l'activation.</p> Critère <code>{mots}</code> 2016-10-28T15:16:22Z https://files.spip.org/Critere-mots#comment489640 2016-10-28T15:16:22Z <p>En effet, ce n'est pas vraiment corrigé : elle a viré la version 3.0.0 par FTP 😉. J'ai fait pareil et remis la 2.1.6…</p> Critère <code>{mots}</code> 2016-10-28T14:55:40Z https://files.spip.org/Critere-mots#comment489637 2016-10-28T14:55:40Z <p>Vero n'indique pas comment elle a corrigé…</p> Critère <code>{mots}</code> 2016-10-28T14:51:53Z https://files.spip.org/Critere-mots#comment489635 2016-10-28T14:51:53Z <p>J'ai eu exactement le même problème que Vero avec un Spip 3.0.24, et je l'ai corrigé de la même manière qu'elle.</p> <p>J'essayerai après ce long weekend sur le site de dev (3.1.3).</p> Critère <code>{mots}</code> 2016-10-28T10:25:14Z https://files.spip.org/Critere-mots#comment489623 2016-10-28T10:25:14Z <p>Merci pour la rapidité de la réponse !<br class="autobr" /> Je vais attendre une heure de moindre activité pour reprendre calmement cette tentative.<br class="autobr" /> Quoiqu'il arrive, je reviens vers vous pour le bilan.</p> Critère <code>{mots}</code> 2016-10-28T10:04:47Z https://files.spip.org/Critere-mots#comment489620 2016-10-28T10:04:47Z <p>A priori cette mise à jour devrait plutôt être bénéfique. Il faudrait voir quelle est la boucle qui pose souci. Vider le cache aussi. Et activer les logs détaillés pour plus de détails. Voir le dernier paragraphe de cet article : <a href="http://www.spip.net/fr_article4453.html" class="spip_url spip_out auto" rel="nofollow external">http://www.spip.net/fr_article4453.html</a></p> Critère <code>{mots}</code> 2016-10-28T09:56:20Z https://files.spip.org/Critere-mots#comment489619 2016-10-28T09:56:20Z <p>Bonjour,</p> <p>La mise à jour de la version 2.1.6 à 3.0.0 sur un spip 3.1.3 plante complètement le site (obligé de supprimer le répertoire du plugin en ftp ...)</p> <p>Le problème se produit sur le site en production, en revanche, la mise à jour ne me pose aucun problème sur une copie locale.</p> <p>Je n'ai aucune traces dans les logs. Problème version PHP, MySQL ???</p> <p>Merci pour vos lumières ... et pour ce plugin.</p> Critère <code>{mots}</code> 2016-10-21T09:35:00Z https://files.spip.org/Critere-mots#comment489480 2016-10-21T09:35:00Z <p>il n'est techniquement pas possible d'avoir un critère qui produise ta requete, du à des limites du compilateur de SPIP (ou alors à mes propres limite), mais la version 3.0.0 du plugin produit une requete qui contourne le bug de mysql.</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>SELECT articles.titre, articles.id_article, articles.lang FROM `mu_localhost`.spip_articles AS `articles` INNER JOIN `mu_localhost`.spip_mots_liens AS mots_liens ON ( mots_liens.id_objet = articles.id_article AND mots_liens.objet='article') WHERE (articles.statut = 'publie') AND ((mots_liens.id_mot=1) OR (mots_liens.id_mot=2) OR (mots_liens.id_mot=3) OR (mots_liens.id_mot=4) OR (mots_liens.id_mot=5) OR (mots_liens.id_mot=6) OR (mots_liens.id_mot=7) OR (mots_liens.id_mot=8) OR (mots_liens.id_mot=9) OR (mots_liens.id_mot=10)) GROUP BY articles.id_article HAVING COUNT(mots_liens.id_objet) >= 10</code></pre></div> <p>à la place de</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code>SELECT articles.id_article, articles.titre, articles.lang FROM `mu_localhost`.spip_articles AS `articles` WHERE (articles.statut = 'publie') AND articles.id_article IN ( SELECT id_objet FROM `mu_localhost`.spip_mots_liens WHERE id_mot=1 and objet='article' OR id_mot=2 and objet='article' OR id_mot=3 and objet='article' OR id_mot=4 and objet='article' OR id_mot=5 and objet='article' OR id_mot=6 and objet='article' OR id_mot=7 and objet='article' OR id_mot=8 and objet='article' OR id_mot=9 and objet='article' OR id_mot=10 and objet='article' GROUP BY id_objet,objet HAVING SUM(1) >= 10 )</code></pre></div> <p>La première requete est cent fois plus rapide que la seconde.</p> <p>A noter que la lenteur est du à un bug de mysql, résolu dans les nouvelles versions (6.x) <a href="https://bugs.mysql.com/bug.php?id=32665" class="spip_url spip_out auto" rel="nofollow external">https://bugs.mysql.com/bug.php?id=32665</a></p> Critère <code>{mots}</code> 2016-10-18T09:39:38Z https://files.spip.org/Critere-mots#comment489432 2016-10-18T09:39:38Z <p>bon, je viens de retomber sur cette comparaison. <br class="autobr" /> La différence tient principalement à la question de <code>SUM(1) >= 3</code>. Ceci est lié au paramètre de boucle qui permet de faire la recherche y compris s'il n'y a pas 100<small class="fine"> </small>% des mots qui sont affecté à l'objet.</p> <p>Etant donné que ce cas est facilement detectable, on pourrait effectivement mettre un comportement différent pour gagner en vitesse.</p> Critère <code>{mots}</code> 2016-10-18T09:27:53Z https://files.spip.org/Critere-mots#comment489431 2016-10-18T09:27:53Z <p>salut,<br class="autobr" /> je viens de voir ton message. Comme cela je ne sais pas. Il me faudrait vraiment une base de test et un formulaire pour y voir plus clair.</p> Critère <code>{mots}</code> 2016-09-01T19:32:52Z https://files.spip.org/Critere-mots#comment488792 2016-09-01T19:32:52Z <p>Bonjour,</p> <p>Je rencontre un problème de réantrance.<br class="autobr" /> Je m'explique : je veux :</p> <ul class="spip"><li> avoir 3 listes de mots sélectionnables (cases à cocher)</li><li> récupérer les événements qui ont au moins un mot de chaque liste (ou pas de filtre sur cette liste si aucun mot n'est sélectionné dans une liste)</li></ul> <p>Autrement dit, un filtre à la LDLC.com</p> <p>Côté formulaire, c'est bon !</p> <p>Côté boucle, en lisant la doc, j'en ai conclus que</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re11"><BOUCLE_Evt2</span><span class="re12">(EVENEMENTS)</span> <span class="re13"> <span class="re41">{par date_debut}</span></span> <span class="re13"> <span class="re41">{mots? 0 <span class="re1">#ENV</span><span class="re40">{motstheme}</span>}</span></span> <span class="re13"> <span class="re41">{mots? 0 <span class="re1">#ENV</span><span class="re40">{motscible}</span>}</span></span> <span class="re13"> <span class="re41">{mots? 0 <span class="re1">#ENV</span><span class="re40">{motszone}</span>}</span></span> <span class="re10">></span></code></pre></div> <p>devrait marcher.</p> <p>Le Code SQL généré est <strong>presque</strong> bon, à un détail près : il prend en compte 3 fois les mots sélectionnés dans la 3e liste :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="php"><code>SELECT evenements<span class="sy0">.</span>id_evenement<span class="sy0">,</span> evenements<span class="sy0">.</span>date_debut<span class="sy0">,</span> evenements<span class="sy0">.</span>titre FROM spip_evenements <span class="kw1">AS</span> `evenements` WHERE <span class="br0">&#40;</span>evenements<span class="sy0">.</span>statut <span class="sy0">=</span> <span class="st_h">'publie'</span><span class="br0">&#41;</span> AND evenements<span class="sy0">.</span>id_evenement IN <span class="br0">&#40;</span> SELECT id_objet FROM spip_mots_liens WHERE id_mot<span class="sy0">=</span><span class="nu0">27</span> and objet<span class="sy0">=</span><span class="st_h">'evenement'</span> OR id_mot<span class="sy0">=</span><span class="nu0">31</span> and objet<span class="sy0">=</span><span class="st_h">'evenement'</span> GROUP BY id_objet<span class="sy0">,</span>objet HAVING SUM<span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="sy0">>=</span> <span class="nu0">0</span> <span class="br0">&#41;</span> AND evenements<span class="sy0">.</span>id_evenement IN <span class="br0">&#40;</span> SELECT id_objet FROM spip_mots_liens WHERE id_mot<span class="sy0">=</span><span class="nu0">27</span> and objet<span class="sy0">=</span><span class="st_h">'evenement'</span> OR id_mot<span class="sy0">=</span><span class="nu0">31</span> and objet<span class="sy0">=</span><span class="st_h">'evenement'</span> GROUP BY id_objet<span class="sy0">,</span>objet HAVING SUM<span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="sy0">>=</span> <span class="nu0">0</span> <span class="br0">&#41;</span> AND evenements<span class="sy0">.</span>id_evenement IN <span class="br0">&#40;</span> SELECT id_objet FROM spip_mots_liens WHERE id_mot<span class="sy0">=</span><span class="nu0">27</span> and objet<span class="sy0">=</span><span class="st_h">'evenement'</span> OR id_mot<span class="sy0">=</span><span class="nu0">31</span> and objet<span class="sy0">=</span><span class="st_h">'evenement'</span> GROUP BY id_objet<span class="sy0">,</span>objet HAVING SUM<span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="sy0">>=</span> <span class="nu0">0</span> <span class="br0">&#41;</span> ORDER BY evenements<span class="sy0">.</span>date_debut</code></pre></div> <p>J'ai essayer de regarde le code du critère, mais je ne sais pas pourquoi $quoi n'est pas pris en compte pour différencier les 3 IN (SELECT...</p> Critère <code>{mots}</code> 2015-03-14T20:33:09Z https://files.spip.org/Critere-mots#comment480276 2015-03-14T20:33:09Z <p>il y a le formulaire deja proposé, mais ce n'est pas mois l'auteur ... je ne sais pas je n'ai pas trop le tps en ce moment ...</p> Critère <code>{mots}</code> 2015-03-14T20:29:28Z https://files.spip.org/Critere-mots#comment480275 2015-03-14T20:29:28Z <p>Bonjour Maïeul, <br class="autobr" /> je ne suis pas parvenu à faire fonctionner le formulaire CVT demo/parmots, aussi je n'ai pu utiliser <code>{mots}</code> que grâce à tes explications dans ce forum. Donc oui mon article pour “débutant CVT”, n'a pas de rapport exclusif avec <code>{mots}</code>, mais ce serait bien d'avoir (et j'espère parvenir à) un ou des formulaires CVT fonctionnelles pour <code>{mots}</code>, non ?</p> Critère <code>{mots}</code> 2015-03-07T18:12:57Z https://files.spip.org/Critere-mots#comment480092 2015-03-07T18:12:57Z <p>je ne saisi pas le rapport entre votre problème et l'article. L'un parle de <code>{mots}</code> l'autre de CVT.</p> Critère <code>{mots}</code> 2015-03-07T13:52:54Z https://files.spip.org/Critere-mots#comment480091 2015-03-07T13:52:54Z <p>Bonjour, <br class="autobr" /> oui pourquoi ? je me suis plongé calmement dans cet ardu code, avec la doc officiel, et des infos glanées sur le net (d'autres tournent sur le pb), et beaucoup de persévérance je commence à y comprendre un petit peu qcq chose. Je propose <a href="http://contrib.spip.net/Formulaire-b-a-ba-Charger" class="spip_out" rel='nofollow external'>cette article</a> pour les débutants (je l'ai publié, comme ébauche wiki de contribution pédagogique, il m''a été personnellement utile de le faire, mais je ne me vexerai pas si on juge que c'est trop simple et succin)</p> Critère <code>{mots}</code> 2015-03-05T20:09:38Z https://files.spip.org/Critere-mots#comment479988 2015-03-05T20:09:38Z <p>Bonjour, <br class="autobr" /> m'agace, ça marche (liens ci-dessus, code ci-dessous) mais, <strong>pourquoi ?!</strong><br class="autobr" /> (et toute mes tentatives de faire autrement, de décomposer le pb, se solde par des échecs. Pourtant ça devrait pas marcher avec name=mots[] pour tous les checkbox ?...)<br class="autobr" /> le code (qui marche) :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><form class="form-inline" role="form" method="get" action="<span class="re1">#SELF</span>"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SELF</span><span class="re50">|parametre_url</span><span class="re40">{mots,''}</span><span class="re50">|form_hidden</span><span class="re4">)</span><span class="re4">]</span> <span class="re11"><BOUCLE_mots1</span><span class="re12">(MOTS)</span><span class="re13"><span class="re41">{id_groupe=1}</span> <span class="re41">{par num titre}</span> <span class="re41">{2,11}</span> </span><span class="re10">></span> <label class="checkbox-inline" for="mot<span class="re1">#ID_MOT</span>"> <input type="radio" class="checkbox" name="mots[]" id="mot<span class="re1">#ID_MOT</span>" value="<span class="re1">#ID_MOT</span>"<span class="re4">[</span><span class="re4">(</span><span class="re1">#ENV</span><span class="re40">{mots}</span><span class="re50">|find</span><span class="re40">{<span class="re1">#ID_MOT</span>}</span><span class="re50">|oui</span><span class="re4">)</span> checked="checked"<span class="re4">]</span> /> <span class="re1">#TITRE</span></label> <span class="re15"></BOUCLE_mots1></span> <span class="coMULTI"><!-- type="checkbox" type="radio" --></span> <span class="re11"><BOUCLE_mots4</span><span class="re12">(MOTS)</span><span class="re13"><span class="re41">{id_groupe=4}</span> <span class="re41">{par num titre}</span><span class="re41">{", "}</span></span><span class="re10">></span> <label class="checkbox-inline" for="mot<span class="re1">#ID_MOT</span>"> <input type="checkbox" class="checkbox" name="mots[]" id="mot<span class="re1">#ID_MOT</span>" value="<span class="re1">#ID_MOT</span>"<span class="re4">[</span><span class="re4">(</span><span class="re1">#ENV</span><span class="re40">{mots}</span><span class="re50">|find</span><span class="re40">{<span class="re1">#ID_MOT</span>}</span><span class="re50">|oui</span><span class="re4">)</span> checked="checked"<span class="re4">]</span> /> <span class="re1">#TITRE</span></label> <span class="re15"></BOUCLE_mots4></span> <p class="boutons"> <input type="submit" class="submit" value="<span class="re30"><:bouton_chercher:></span>" /></p> </form> <span class="re4">[</span><span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Albums trouves <span class="re4">]</span> <span class="re11"><BOUCLE_albums</span><span class="re12">(ALBUMS)</span><span class="re13"> <span class="re41">{mots}</span> <span class="re41">{branche?}</span> <span class="re41">{0,100}</span> <span class="re41">{pagination 10}</span></span><span class="re10">></span> ...</code></pre></div> Critère <code>{mots}</code> 2014-12-06T21:05:57Z https://files.spip.org/Critere-mots#comment478359 2014-12-06T21:05:57Z <p>Bonjour, <br class="autobr" /> un mixte des 2 cas précédents : sélection selon 2 groupes de mots clés avec des cases à cocher. Pour le 1er groupe un seul mot peut être choisi, pour le 2<sup class="typo_exposants">nd</sup> on peut en choisir plusieurs. <a href="http://bleaulib.org/spip.php?page=recherche_blocs" class="spip_out" rel='nofollow external'>recherche_blocs</a> . cool ! merci Maïeul</p> <p>Le critére <code>{mot}</code> se traduit donc par des <strong>&</strong> sur les mots clés sélectionnés <br class="autobr" /> Dois-je abandonner son utilisation pour essayer de faire des “<strong>ou</strong>” ? comme le ferait : <br class="autobr" /> <code><BOUCLE_objets(OBJETS) {id_mot IN gpe1} {id_mot IN gpe2}></code><br class="autobr" /> (avec <code>{mot}</code> selectionner Enfant + Caramel abouti à 0 résultat car un <a href="http://bleaulib.org/spip.php?page=circuits" class="spip_out" rel='nofollow external'>circuit</a> ne peut pas être les 2 . J'ai vainement longuement essayé de faire sortir ceux qui était l'un <strong>ou</strong> l'autre, l'idée me semblait de renvoyer 2 #GET, un pour le gpe1 et un pour le gpe2 , mais je m'en sors pas, (et c'est déjà pas si mal comme ça ! ) mais si vous avez des suggestions, doc plus concrète que programmer.spip , des exemples plus simple à décrypter que page=demo/parmots (qui ne marche pas), je suis preneur.</p> Critère <code>{mots}</code> 2014-09-30T17:07:19Z https://files.spip.org/Critere-mots#comment477195 2014-09-30T17:07:19Z <p>Merci Maïeul, c'est exactement ce qu'il me fallait, ça marche niquel. Encore merci !</p> Critère <code>{mots}</code> 2014-09-29T23:58:06Z https://files.spip.org/Critere-mots#comment477190 2014-09-29T23:58:06Z <p>si j'ai bien compris ton besoin, alors dans la parti optionell utilise</p> <p><code>[(#ENV{mots}|oui) texte à afficher si le formulaire a bien été rempli mais ne fournit pas de résultat]</code>.</p> Critère <code>{mots}</code> 2014-09-29T22:17:02Z https://files.spip.org/Critere-mots#comment477188 2014-09-29T22:17:02Z <p>Bonsoir,</p> <p>Alors j'ai testée le critère optionnel en remplaçant <i>mots</i> par <i>mots?</i> cela semble fonctionner, mais je n'ai pas le résultat attendu.<br class="autobr" /> En faite, je veux afficher par défaut toutes les brèves, puisque le formulaire reste optionnel (sinon les visiteurs ne vont pas comprendre pourquoi ils arrivent sur une page vide).</p> <p>Or, si j'utilise le critère <i>mots?</i> vu qu'aucun paramètre n'est passé en environnement quand on arrive sur la page, et bien je me retrouve effectivement avec une page vide.<br class="autobr" /> Par contre ça fonctionne bien, si jamais je lance une recherche sur le formulaire pour sélectionner par exemple des “chatons” “mâles” et qu'il y en a pas cela ne rend aucun résultat. Cependant, j'aimerais alors afficher toutes les brèves, mais en précisant que la recherche n'a pas donnée de résultat (histoire que les visiteurs ne pensent pas qu'il y a un problème avec le formulaire).</p> <p>Avec le code alternatif de la balise /B>, j'arrive à afficher par défaut l'ensemble de mes brèves, le formulaire est fonctionnel, cependant, si je lance une recherche qui ne donne aucun résultat, j'ai alors toutes mes brèves qui s'affichent (jusque là c'est ce que je veux) MAIS je n'ai pas possibilité de laisser un message pour dire que la recherche n'a aboutie sur aucun résultat (car si je mets ce message dans mon code alternatif, alors il apparaît aussi quand les visiteurs arrivent sur la page, sans même avoir utiliser le formulaire).</p> <p>Je sais pas si je suis claire dans mes explications, mais je ne vois pas tellement comment solutionner ce soucis.</p> Critère <code>{mots}</code> 2014-09-19T11:50:10Z https://files.spip.org/Critere-mots#comment477011 2014-09-19T11:50:10Z <p>a ben si mon code utilise le plugin : c'est le critère <code>{mots}</code>. je ne suis pas responsable de la création du formulaire en question, et j'ignore comment il fonctionne.</p> <p>Pour ta question, les critères de spip peuvent avoir un <code>?</code>, ce qui signifie qu'ils sont optionnels : si les paramètres nécessaires sont passés en environnement, alors le critère est utilisé, sinon non. Voir <a href="http://programmer.spip.net/Criteres-optionnels" class="spip_url spip_out auto" rel="nofollow external">http://programmer.spip.net/Criteres-optionnels</a>.</p> <p>Donc dans ton cas : <code>{mots?}</code></p> Critère <code>{mots}</code> 2014-09-18T19:23:10Z https://files.spip.org/Critere-mots#comment476996 2014-09-18T19:23:10Z <p>C'est encore moi.</p> <p>J'ai trouvée la réponse à ma dernière question.</p> <p>Pour afficher par défaut toute les brèves j'ai utilisées un code alternatif avec la balise /B_nom_de_ma_boucle>, j'ai juste retirée le critère “mots” sur cette boucle qui est strictement identique à la première.<br class="autobr" /> Par contre, du coup, si je n'obtiens aucun résultat (imaginons que l'utilisateur cherche un chaton mâle et qu'il n'y en a pas, du coup le résultat affiche toutes les brèves).</p> <p>Du coup je ne pense pas que ce soit la solution idéale, car il faudrait que par défaut cela affiche toutes les brèves, mais que si le formulaire ne donne aucun résultat, cela affiche toutes les brèves, mais en affichant aussi un message du type “Aucun résultat” pour que l'utilisateur ne pense pas que le formulaire ne fonctionne pas.</p> <p>Du coup je ne sais pas comment procéder. Une idée ?</p> Critère <code>{mots}</code> 2014-09-17T15:15:34Z https://files.spip.org/Critere-mots#comment476981 2014-09-17T15:15:34Z <p>Un grand Merciiii Maïeul pour ton aide ! (En plus tu es super réactif !)</p> <p>Du coup si je comprends bien, avec ta solution on utilise pas le plugin enfin de compte ? En tout cas je ne vois pas la balise qui s'y rapporte ?</p> <p>Concernant mon formulaire, effectivement en l'état il n'était pas fonctionnel, je l'avais fais juste pour voir ce que ça donnerait sur la page web en question. Puis, de toute façon, je n'aurais pas su qu'il fallait utiliser la boucle SELF, les formulaires c'est effectivement pas ma spécialité comme tu peux constater. lol</p> <p>En gros, moi je me cassais les dents sur ça “[(#FORMULAIRE_RECHERCHE_PAR_MOTS)]” pensant que ce serait la clé de mon problème.</p> <p>Du coup encore merci pour le code, car non seulement il fonctionne mais en plus c'est bien expliqué pour que je comprenne (et puisse le réutiliser si besoin).</p> <p>J'aurais encore une question, comment afficher sur ma page par défaut toutes les brèves ?<br class="autobr" /> En gros, ce que je souhaite, c'est que si l'utilisateur n'utilise pas le formulaire (et donc ne passe pas de mot clef en URL), toutes les brefs soient par défaut afficher sur la page.<br class="autobr" /> Le formulaire ayant pour but juste de faire une sélection pour facilité les recherches de l'utilisateur, mais il reste facultatif.</p> Critère <code>{mots}</code> 2014-09-16T13:12:43Z https://files.spip.org/Critere-mots#comment476970 2014-09-16T13:12:43Z <p>Commençons par le formulaire. Je te conseille très fortement de lire une documentation sur comment fonctionnent les formulaires en HTML, parce que là ton formulaire, en l'état, ne peux rien faire.</p> <p>deja, virons le ajax, pour le moment. On verra cela plus tard.</p> <p>Ensuite, il faut que le formulaire poste quelque part, donc</p> <p><span class="coloration_code code"><code class="spip_spip code"><form method="get" action="<span class="re1">#SELF</span>"></code></span></p> <p>On va repasser également tous les paramètres de la page, sauf mots qui change d'une fois sur l'autre. Pour cela on utilise le filtre |form_hidden appliqué sur un #SELF (url de la page) lui même filtré du paramètre “mots”:</p> <div class="coloration_code code"><div class="spip_spip code"><div class="spip"><ol><li class="li1"><div class="de1"><span class="re4">[</span><span class="re4">(</span><span class="re1">#SELF</span><span class="re50">|parametre_url</span><span class="re40">{mots,''}</span><span class="re50">|form_hidden</span><span class="re4">)</span><span class="re4">]</span></div></li> </ol></div></div></div> <p>Il faut enfin préciser la variable où sera transmis la valeur de chaque menu déroulant, en l'occurance “mots[]” : <code><select name="mots[]"></code>. Reste ensuite à indiquer la valeur passé pour chaque option du select : <code><option value="#ID_MOT">#TITRE</option></code>.</p> <p>En affinant un peu pour permettre que le formulaire propose de ne pas choisir dans un mot et utilise les précédentes valeurs comme valeurs par défaut, on obtient le formulaire suivant:</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><form method="get" action="<span class="re1">#SELF</span>"> Vous recherchez... <span class="re4">[</span><span class="re4">(</span><span class="re1">#SELF</span><span class="re50">|parametre_url</span><span class="re40">{mots,''}</span><span class="re50">|form_hidden</span><span class="re4">)</span><span class="re4">]</span> <span class="re15"><B_triesexe></span> <select name="mots[]"> <option value=""></option> <span class="re11"><BOUCLE_triesexe</span><span class="re12">(MOTS)</span><span class="re13"> <span class="re41">{type=sexe}</span> </span><span class="re10">></span> <option <span class="re4">[</span><span class="re4">(</span><span class="re1">#ENV</span><span class="re40">{mots}</span><span class="re50">|find</span><span class="re40">{<span class="re1">#ID_MOT</span>}</span><span class="re50">|oui</span><span class="re4">)</span> selected="selected"<span class="re4">]</span> value="<span class="re1">#ID_MOT</span>"><span class="re1">#TITRE</span></option> <span class="re15"></BOUCLE_triesexe></span> </select> <span class="re15"></B_triesexe></span> <span class="re15"><B_trieage></span> <select name="mots[]"> <option value=""></option> <span class="re11"><BOUCLE_trieage</span><span class="re12">(MOTS)</span><span class="re13"> <span class="re41">{type=age}</span></span><span class="re10">></span> <option <span class="re4">[</span><span class="re4">(</span><span class="re1">#ENV</span><span class="re40">{mots}</span><span class="re50">|find</span><span class="re40">{<span class="re1">#ID_MOT</span>}</span><span class="re50">|oui</span><span class="re4">)</span> selected="selected"<span class="re4">]</span> value="<span class="re1">#ID_MOT</span>"><span class="re1">#TITRE</span></option> <span class="re15"></BOUCLE_trieage></span> </select> <span class="re15"></B_trieage></span> <input type='submit' /> </form></code></pre></div> <p>(Bon, il faudrait affiner pour avoir une structure html correcte. Voir <a href="http://www.spip.net/fr_article3791.html" class="spip_url spip_out auto" rel="nofollow external">http://www.spip.net/fr_article3791.html</a>.</p> <p>Reste ensuite à passer le critère <code>{mots}</code> :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re15"><B_breves></span> <ul> <span class="re11"><BOUCLE_breves</span><span class="re12">(BREVES)</span><span class="re13"> <span class="re41">{id_rubrique}</span> <span class="re41">{!par date}</span><span class="re41">{mots}</span></span><span class="re10">></span> <li class="adoption"> <div class="breveleft"> <a href="<span class="re1">#URL_BREVE</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_BREVE</span><span class="re50">|image_reduire</span><span class="re40">{190,0}</span><span class="re50">|image_recadre</span><span class="re40">{140,140,center}</span><span class="re4">)</span><span class="re4">]</span></a> </div> <div class="breveright"> <span class="re4">[</span><a href="<span class="re1">#URL_BREVE</span>"><span class="titre_chat"><span class="re4">(</span><span class="re1">#TITRE</span><span class="re4">)</span><span></a><span class="re4">]</span> <span class="re4">[</span><span><strong>Sexe :</strong> <span class="re4">(</span><span class="re1">#LISTER_VALEURS</span><span class="re40">{sexe}</span><span class="re4">)</span></span><span class="re4">]</span> <span class="re4">[</span><span><strong>Date de naissance :</strong> <span class="re4">(</span><span class="re1">#DATE_NAISSANCE</span><span class="re50">|date_relative</span><span class="re4">)</span></span><span class="re4">]</span> <span class="re4">[</span><span><strong>Lieu :</strong> <span class="re4">(</span><span class="re1">#LIEU</span><span class="re4">)</span></span><span class="re4">]</span> <span class="re4">[</span><span><span class="re4">(</span><span class="re1">#COURT_DESCRIPTIF</span><span class="re4">)</span></span><span class="re4">]</span> </div> <div class="nettoyeur"></div> </li> <span class="re15"></BOUCLE_breves></span> </ul> <span class="re15"></B_breves></span></code></pre></div> Critère <code>{mots}</code> 2014-09-16T12:04:08Z https://files.spip.org/Critere-mots#comment476967 2014-09-16T12:04:08Z <p>Bonjour,</p> <p>J'ai besoin de ce plugins pour insérer un formulaire de recherche sur un site que je suis en train de réaliser.<br class="autobr" /> Voilà un bon moment que je me casse les dents dessus.</p> <p>Mon objectif :<br class="autobr" /> Sur une page réunissant plusieurs brèves, je souhaite que les visiteurs puissent effectuer un trie de ces brèves selon les mots clefs qu'ils auront choisie.<br class="autobr" /> J'ai 3 groupes de mots clefs et je souhaite que le trie soit effectué selon deux de ces groupes (le troisième me servant ailleurs, mais pas dans ce cas présent).<br class="autobr" /> Mes deux groupes comportes chacun plusieurs mots clefs :<br class="autobr" /> Il y a le groupe “Age” qui a pour mots clefs : “chaton”, “junior”, “adulte”, “senior”.<br class="autobr" /> Et le groupe “Sexe” qui a pour mots clefs : “mâle” et “femelle”</p> <p>Les visiteurs peuvent ne choisir que l'un des deux groupes s'il le souhaite (par exemple il recherche un chaton, mais n'ont pas de préférence sur le sexe), ou les deux (si par exemple ils recherchent précisement un chat adulte femelle).</p> <p>Je veux donc que sur un même page, par défaut toutes les brèves s'affichent, et que si le visiteur le désire, un tri soit effectué selon ses critères et que cela recharge la liste des brèves sur cette même page.</p> <p>Pour afficher mes brèves j'ai ce code :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re15"><B_breves></span> <ul> <BOUCLE_breves(BREVES) <span class="re40">{id_rubrique}</span> <span class="re40">{!par date}</span>}> <li class="adoption"> <div class="breveleft"> <a href="<span class="re1">#URL_BREVE</span>"><span class="re4">[</span><span class="re4">(</span><span class="re1">#LOGO_BREVE</span><span class="re50">|image_reduire</span><span class="re40">{190,0}</span><span class="re50">|image_recadre</span><span class="re40">{140,140,center}</span><span class="re4">)</span><span class="re4">]</span></a> </div> <div class="breveright"> <span class="re4">[</span><a href="<span class="re1">#URL_BREVE</span>"><span class="titre_chat"><span class="re4">(</span><span class="re1">#TITRE</span><span class="re4">)</span><span></a><span class="re4">]</span> <span class="re4">[</span><span><strong>Sexe :</strong> <span class="re4">(</span><span class="re1">#LISTER_VALEURS</span><span class="re40">{sexe}</span><span class="re4">)</span></span><span class="re4">]</span> <span class="re4">[</span><span><strong>Date de naissance :</strong> <span class="re4">(</span><span class="re1">#DATE_NAISSANCE</span><span class="re50">|date_relative</span><span class="re4">)</span></span><span class="re4">]</span> <span class="re4">[</span><span><strong>Lieu :</strong> <span class="re4">(</span><span class="re1">#LIEU</span><span class="re4">)</span></span><span class="re4">]</span> <span class="re4">[</span><span><span class="re4">(</span><span class="re1">#COURT_DESCRIPTIF</span><span class="re4">)</span></span><span class="re4">]</span> </div> <div class="nettoyeur"></div> </li> <span class="re15"></BOUCLE_breves></span> </ul> <span class="re15"></B_breves></span></code></pre></div> <p>Et mon formulaire ressemblerait à quelque chose comme ça (il n'est pas fonctionnel pour le moment) :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code>Vous recherchez... <div class='ajax'> <form> <select> <span class="re11"><BOUCLE_triesexe</span><span class="re12">(MOTS)</span><span class="re13"> <span class="re41">{type=sexe}</span> </span><span class="re10">></span><option><span class="re1">#TITRE</span></option><span class="re15"></BOUCLE_triesexe></span> </select> <select> <span class="re11"><BOUCLE_trieage</span><span class="re12">(MOTS)</span><span class="re13"> <span class="re41">{type=age}</span></span><span class="re10">></span><option><span class="re1">#TITRE</span></option><span class="re15"></BOUCLE_trieage></span> </select> <input type='submit' name='ok' value='ok' /> </form> </div></code></pre></div> <p>J'ai essayée toute sorte de chose pour faire fonctionner le plugin critère mot, sans résultat.<br class="autobr" /> Juste pour info j'utilise SPIP 3.</p> <p>Et après vérification sur la page de démo du plugins, je peux choisir parmi mes 3 groupes de mots clefs (Age, Sexe et Date adoption - ce dernier groupe ne m'étant pas utile sur cette page -), mais ensuite, une fois un groupe sélectionné, je ne peux pas choisir de mot clef y correspondant (j'ai juste un “mot clef même groupe” affiché).</p> <p>Donc voilà ou j'en suis, si vous pouvez apporter de l'aide (et des explications) je suis preneuse, parce que là, je suis complètement bloquée et désespérée. Snif !</p> <p>Merci par avance.</p> Critère <code>{mots}</code> 2014-08-01T14:33:44Z https://files.spip.org/Critere-mots#comment476385 2014-08-01T14:33:44Z <p>C'est super!!</p> <p>J'ai ajouté <code>{id_rubrique}</code> pour permettre de faire la recherche uniquement dans la rubrique que je souhaite et le tour est joué.</p> <p>Un grand merci! :D</p> Critère <code>{mots}</code> 2014-08-01T13:47:43Z https://files.spip.org/Critere-mots#comment476384 2014-08-01T13:47:43Z <p>oui, parce que dans mes testes suite au fait que le plugin n'était pas activé, j'ai oublié le ? dans <code>{mots?}</code>.</p> <p>Ca devrait aller mieux comme cela.</p> <p>Et maintenant, la réponse de l'exercice ;-)</p> Critère <code>{mots}</code> 2014-08-01T12:35:15Z https://files.spip.org/Critere-mots#comment476383 2014-08-01T12:35:15Z <p>Super! Plus de message d'erreur!</p> <p>Une fois le mot clé sélectionné, la liste apparait bien.<br class="autobr" /> Par contre, vous disiez plus haut que ce code doit faire apparaitre tous les articles si aucun mot clé n'est sélectionné, ce n'est pas le cas.</p> Critère <code>{mots}</code> 2014-08-01T11:44:53Z https://files.spip.org/Critere-mots#comment476381 2014-08-01T11:44:53Z <p>a mais oui,</p> <p>c'est le code</p> <div class="coloration_code code"><div class="spip_spip code"><div class="spip"><ol><li class="li1"><div class="de1"><span class="re4">[</span><span class="re4">(</span><span class="re1">#ID_MOT</span><span class="re50">|in_array</span><span class="re40">{<span class="re1">#ENV</span>{mots}}</span><span class="re50">|oui</span><span class="re4">)</span> checked="checked"<span class="re4">]</span></div></li> </ol></div></div></div> <p>qui est mauvais. Le but c'est de tester si le mot courant se trouve dans la liste des mots du précédent formulaire. Si oui, on coche la case.</p> <p>Mais sauf que ca va pas.</p> <p>Et donc la doc sur #ARRAY que vous avez trouvé donne la solution. Désolé un peu fatigué (et chez moi les messages d'erreurs sont désactivés.</p> <p>La solution est de remplacer par :</p> <div class="coloration_code code"><div class="spip_spip code"><div class="spip"><ol><li class="li1"><div class="de1"><span class="re4">[</span><span class="re4">(</span><span class="re1">#ENV</span><span class="re40">{mots}</span><span class="re50">|find</span><span class="re40">{<span class="re1">#ID_MOT</span>}</span><span class="re50">|oui</span><span class="re4">)</span> checked="checked"<span class="re4">]</span></div></li> </ol></div></div></div> Critère <code>{mots}</code> 2014-08-01T09:17:15Z https://files.spip.org/Critere-mots#comment476378 2014-08-01T09:17:15Z <p>J'ai trouvé ceci dans <a href="http://www.spip.net/fr_article4009.html" class="spip_out" rel='nofollow external'>cet article spip sur #ARRAY</a> (dans les notes de bas de page) :</p> <p>« |find correspond à la fonction PHP in_array, à la différence que ce filtre ne produit pas le message d'erreur “Warning : in_array() [function.in-array] : Wrong datatype for second argument.” si la variable n'est finalement pas un tableau. En effet, lorsqu'une variable est générée dynamiquement, on ne sait pas toujours si elle existera et s'il s'agira bien d'un tableau. »</p> <p>Ca parle de mon problème, mais par contre, ça dépasse mes compétences là!</p> Critère <code>{mots}</code> 2014-08-01T07:02:36Z https://files.spip.org/Critere-mots#comment476377 2014-08-01T07:02:36Z <p>Excusez moi de la réponse tardive...<br class="autobr" /> PHP Version 5.2.17</p> <blockquote class="spip"> <p>ne surtout jamais modifié le dossier squelette.</p> </blockquote> <p>Pas d'inquiétude, je ne modifie pas le dossier squelette dist, mais j'insère mes squelettes dans un dossier squelettes personnels :)</p> Critère <code>{mots}</code> 2014-07-31T16:30:23Z https://files.spip.org/Critere-mots#comment476375 2014-07-31T16:30:23Z <p>quelle version de PHP (allez dans <code>http://urldusite/ecrire/?exec=info pour savoir).</code></p> Critère <code>{mots}</code> 2014-07-31T16:24:01Z https://files.spip.org/Critere-mots#comment476374 2014-07-31T16:24:01Z <p>Ca y est presque!<br class="autobr" /> Juste ceci apparait au dessus de ma liste a choix multiple :</p> <p><code> Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/<toto>/www/ecrire/public/composer.php(69) : eval()'d code on line 45</code></p> Critère <code>{mots}</code> 2014-07-31T16:19:45Z https://files.spip.org/Critere-mots#comment476373 2014-07-31T16:19:45Z <p>videz le cache le cas échéant ...</p> Critère <code>{mots}</code> 2014-07-31T16:17:35Z https://files.spip.org/Critere-mots#comment476372 2014-07-31T16:17:35Z <p>ne surtout jamais modifié le dossier squelette.</p> <p>A tout hasard, le plugin est bien activé?</p> <p>Sinon pour SPIP 2.1, il faut mettre</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re15"><B_mots></span> <div class="formulaire_spip formulaire_recherche_mot"> <form method="post" action="<span class="re1">#SELF</span>"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SELF</span><span class="re50">|form_hidden</span><span class="re4">)</span><span class="re4">]</span> <ul> <span class="re11"><BOUCLE_mots</span><span class="re12">(MOTS spip_mots_articles)</span><span class="re13"><span class="re41">{par titre}</span><span class="re41">{id_article>0}</span></span><span class="re10">></span> <li> <label for="mot<span class="re1">#ID_MOT</span>"><span class="re1">#TITRE</span></label> <input type="checkbox" class="checkbox" name="mots[]" id="mot<span class="re1">#ID_MOT</span>" value="<span class="re1">#ID_MOT</span>"<span class="re4">[</span><span class="re4">(</span><span class="re1">#ID_MOT</span><span class="re50">|in_array</span><span class="re40">{<span class="re1">#ENV</span>{mots}}</span><span class="re50">|oui</span><span class="re4">)</span> checked="checked"<span class="re4">]</span> /> </li> <span class="re15"></BOUCLE_mots></span> </ul> <p class="boutons"><input type="submit" class="submit" value="<span class="re30"><:bouton_enregistrer:></span>" /></p> </form> </div> <span class="re15"></B_mots></span> <span class="re15"><B_articles></span> <ul> <span class="re11"><BOUCLE_articles</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{mots}</span><span class="re41">{par titre}</span></span><span class="re10">></span> <li><a href="<span class="re1">#URL_ARTICLE</span>"><span class="re1">#TITRE</span></a></li> <span class="re15"></BOUCLE_articles></span> </ul> <span class="re15"></B_articles></span></code></pre></div> Critère <code>{mots}</code> 2014-07-31T16:03:42Z https://files.spip.org/Critere-mots#comment476371 2014-07-31T16:03:42Z <p>SPIP 2.1.23</p> <p>Et j'ai mis le code dans le fichier “recherche_par_mots.html” dans mon dossier squelettes. J'ai même testé de le mettre dans le dossier plugin directement. Rien à faire. J'ai l'impression que le critère “mots” n'est pas accepté! A chaque fois ça me renvoi un bug!</p> Critère <code>{mots}</code> 2014-07-31T15:55:55Z https://files.spip.org/Critere-mots#comment476370 2014-07-31T15:55:55Z <p>heu, je vous assure que j'ai testé cela avant de vous envoyé.</p> <p>Quelle config de SPIP avez vous? où avez vous mis le code?</p> Critère <code>{mots}</code> 2014-07-31T15:51:00Z https://files.spip.org/Critere-mots#comment476369 2014-07-31T15:51:00Z <p>Aie... déjà erreur à la 1e ligne!<br class="autobr" /> Spip m'indique:</p> <p>1 Erreur(s) dans le squelette (...)<br class="autobr" /> Critère inconnu = _mots</p> <p>Et sinon, tous les articles de mon site apparaissent.</p> Critère <code>{mots}</code> 2014-07-31T15:37:28Z https://files.spip.org/Critere-mots#comment476368 2014-07-31T15:37:28Z <p>Bon, alors on va faire une chose simple: je vous donne un code qui marche. Ce qu'il fait:</p> <p>- lister les mots clefs avec case à cocher <br />- afficher les articles avec ces mots clefs, sauf si aucun mot clefs n'a été choisi, dans ce cas il affiche tout.</p> <p>Vous testez ce code, et ensuite vous me faite un retour en m'indiquant lignes par lignes ce que fait le code. Comme cela je vous fournis un code déjà prêt ET en plus vous vous formez.</p> <p>Avec la doc de base de SPIP + du plugins + notions de HTML vous devrez le comprendre. Et sinon vous posez des questions.</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re15"><B_mots></span> <div class="formulaire_spip formulaire_recherche_mot"> <form method="post" action="<span class="re1">#SELF</span>"> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SELF</span><span class="re50">|form_hidden</span><span class="re4">)</span><span class="re4">]</span> <ul> <span class="re11"><BOUCLE_mots</span><span class="re12">(MOTS)</span><span class="re13"><span class="re41">{par titre}</span><span class="re41">{objet=article}</span></span><span class="re10">></span> <li> <label for="mot<span class="re1">#ID_MOT</span>"><span class="re1">#TITRE</span></label> <input type="checkbox" class="checkbox" name="mots[]" id="mot<span class="re1">#ID_MOT</span>" value="<span class="re1">#ID_MOT</span>"<span class="re4">[</span><span class="re4">(</span><span class="re1">#ID_MOT</span><span class="re50">|in_array</span><span class="re40">{<span class="re1">#ENV</span>{mots}}</span><span class="re50">|oui</span><span class="re4">)</span> checked="checked"<span class="re4">]</span> /> </li> <span class="re15"></BOUCLE_mots></span> </ul> <p class="boutons"><input type="submit" class="submit" value="<span class="re30"><:bouton_enregistrer:></span>" /></p> </form> </div> <span class="re15"></B_mots></span> <span class="re15"><B_articles></span> <ul> <span class="re11"><BOUCLE_articles</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{mots?}</span><span class="re41">{par titre}</span></span><span class="re10">></span> <li><a href="<span class="re1">#URL_ARTICLE</span>"><span class="re1">#TITRE</span></a></li> <span class="re15"></BOUCLE_articles></span> </ul> <span class="re15"></B_articles></span></code></pre></div> Critère <code>{mots}</code> 2014-07-31T14:55:43Z https://files.spip.org/Critere-mots#comment476367 2014-07-31T14:55:43Z <p>Plutôt débutante! <br class="autobr" /> J'arrive à faire quelques boucles simples pour appeler des articles ou des documents dans mes squelettes mais je me base souvent sur les codes fournis pour essayer de les comprendre.</p> Critère <code>{mots}</code> 2014-07-31T14:35:21Z https://files.spip.org/Critere-mots#comment476366 2014-07-31T14:35:21Z <p>quelles connaissances SPIP avez vous?</p> Critère <code>{mots}</code> 2014-07-31T14:31:28Z https://files.spip.org/Critere-mots#comment476365 2014-07-31T14:31:28Z <p>Bonjour, petit up pour ce post.<br class="autobr" /> Je souhaiterais moi aussi pouvoir avoir une liste à cocher plutôt qu'un/deux menu(s) déroulant et pouvoir choisir en même temps dans deux listes de mots clés. Les explications fournies ne suffisent pas à mon niveau!<br class="autobr" /> Pourrais-je avoir plus d'explications?</p> <p>Et pour ajouter une difficulté, je souhaiterais que d'abord tous les articles (de la rubrique concernée par ma recherche) apparaissent dans la page et qu'ensuite en sélectionnant les mots clés, la sélection devienne plus restrictive. Alors qu'actuellement seule la sélection de mots fait apparaitre une liste d'articles, en commençant par une page vide.</p> <p>J'espère être assez claire.<br class="autobr" /> Merci d'avance.</p> Critère <code>{mots}</code> 2014-04-24T13:02:01Z https://files.spip.org/Critere-mots#comment475098 2014-04-24T13:02:01Z <p>Oups petite erreur de lien dans mon commentaire précédent: <a href='https://files.spip.org/Afficher-les-articles-connexes-tries-par-pertinence' class="spip_in" hreflang="fr" rel='nofollow'>Afficher les articles connexes, triés par pertinence</a>...</p> Critère <code>{mots}</code> 2014-04-09T15:42:41Z https://files.spip.org/Critere-mots#comment474875 2014-04-09T15:42:41Z <p>Bien vu b_b, c'était ça ! <br class="autobr" /> Merci beaucoup ;)</p> <p>(Bon du coup, aucun rapport avec le plugin, désolé pour le bruit ^^)</p> Critère <code>{mots}</code> 2014-04-09T15:40:21Z https://files.spip.org/Critere-mots#comment474874 2014-04-09T15:40:21Z <p>Hop, “il suffit de nommer le critère pagination”, par exemple <code>{pagination 15 #ID_TRUC}</code>, cf :</p> <p><a href="http://www.spip.net/fr_article3367.html#pagination" class="spip_url spip_out auto" rel="nofollow external">http://www.spip.net/fr_article3367.html#pagination</a></p> <p>Ça devrait fixer le pb ;)</p> Critère <code>{mots}</code> 2014-04-09T15:38:04Z https://files.spip.org/Critere-mots#comment474873 2014-04-09T15:38:04Z <p>ca veut dire quoi elle affecte tout le bloc de résultat?</p> Critère <code>{mots}</code> 2014-04-09T15:25:40Z https://files.spip.org/Critere-mots#comment474872 2014-04-09T15:25:40Z <p>Bonjour,</p> <p>Je rencontre un problème très étrange de <strong>pagination erratique sur boucle imbriquée avec critère_mots</strong>.</p> <p>Je suis sur une page <strong>mot.html </strong> <br class="autobr" /> revue pour lister tous les articles d'une certaine rubrique, classés par familles.</p> <p>Mes familles sont dans un <strong>autre groupe de mot-clé</strong></p> <p>Une première boucle récupère le nom d'une famille,<br class="autobr" /> Une seconde boucle imbriquée, récupère les article tagué à la fois par l'id_mot sur lequel on se trouve ET l'id_mot de la famille remontée par le premier niveau.</p> <p>Tout fonctionne sauf la pagination. Si j'essaie d'utiliser la pagin sur un des blocs de résultats, en fait elle affecte TOUS les blocs de résultats.</p> <p>Le code :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class=""><code><BOUCLE_mot_principal(MOTS){id_mot}> <h1>#TITRE</h1> <BOUCLE_familles(MOTS){id_groupe = 19}{par num titre}> <BOUCLE_affiche_famille(ARTICLES){id_rubrique=2}{mots 100% #ARRAY{0,#_mot_principal:ID_MOT,1,#_familles:ID_MOT}}{0,1}> <h3 class="header">#_familles:TITRE</h3> </BOUCLE_affiche_famille> [(#REM) Listes des formations mot + famille <!-- INCLURE{fond=liste/formations-resume,env}/ --> ] [(#REM) Articles de la rubrique Formations lies au mot-cle ] <B_list_formations> #ANCRE_PAGINATION <BOUCLE_list_formations(ARTICLES){id_rubrique=2}{mots 100% #ARRAY{0,#_mot_principal:ID_MOT,1,#_familles:ID_MOT}}{par num titre}{pagination 4}> [<div class="h3"><a rel="bookmark" href="[(#URL_ARTICLE|url_absolue)]">(#TITRE)</a></div>] </BOUCLE_list_formations> <p class="pagination">#PAGINATION{page_precedent_suivant}</p> </B_list_formations> <p>Pas de formation disponible</p> <//B_list_formations> <div class="clear"></div> </BOUCLE_familles> </BOUCLE_mot_principal></code></pre></div> <p>Si quelqu'un a une idée de où ca merdoie...</p> <p>Merci d'avance ;)</p> Critère <code>{mots}</code> 2014-04-04T14:23:18Z https://files.spip.org/Critere-mots#comment474804 2014-04-04T14:23:18Z <p>je confirme avoir essayé cet exemple chez moi avant de te l'envoyer. Et même si les crochets sont encodés dans l'URL cela n'empêche pas le bon fonctionnement du critère.</p> <p>Du reste tu n'a qu'à vérifer en faisant <code>[(#ENV{mots}|var_dump)]</code> > tu verra que tu a bien affaire à un tableau.</p> <p>Ton pb doit venir d'ailleur, mais de quoi?</p> Critère <code>{mots}</code> 2014-04-04T13:54:48Z https://files.spip.org/Critere-mots#comment474803 2014-04-04T13:54:48Z <p>J'ai essayé avec cet exemple. Les crochets ne passent pas plus. Il sont systématiquement encodé en %5B et %5D dans l'Url. Test fait en local et sur serveur. Si quelqu'un a une piste....</p> Critère <code>{mots}</code> 2014-04-03T18:08:03Z https://files.spip.org/Critere-mots#comment474789 2014-04-03T18:08:03Z <p>les crochets ne sont pas responsables du problème. Ils sont normaux.</p> <p>Le pb doit venir d'ailleurs. Exemple là sur une page toto.html</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><form method="get"> <input type="hidden" name="page" value="toto" /> <span class="re15"><B_mots></span> <select name="mots[1]"> <span class="re11"><BOUCLE_mots</span><span class="re12">(MOTS)</span><span class="re13"><span class="re41">{par titre}</span></span><span class="re10">></span> <option value="<span class="re1">#ID_MOT</span>"><span class="re1">#TITRE</span></option> <span class="re15"></BOUCLE_mots></span> </select> <span class="re15"></B_mots></span> <span class="re11"><BOUCLE_articles</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{mots}</span><span class="re41">{par titre}</span></span><span class="re10">></span> <span class="re1">#TITRE</span> <span class="re15"></BOUCLE_articles></span> <input type="submit" value="chercher" name="ok"> </form></code></pre></div> <p>Fonctionne parfaitement.</p> Critère <code>{mots}</code> 2014-04-03T13:49:17Z https://files.spip.org/Critere-mots#comment474782 2014-04-03T13:49:17Z <p>Merci, cela appelle en effet la bonne page mais les crochets restent transformés dans l'URL ( &mots<strong>%5B</strong>2<strong>%5D</strong>=1), du coup la page résultats ne donne toujours rien.</p> Critère <code>{mots}</code> 2014-04-03T13:37:02Z https://files.spip.org/Critere-mots#comment474779 2014-04-03T13:37:02Z <p>il faut que tu mette l'url de page en hidden</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="html"><code><input type="hidden" name="page" value="recherche3" /></code></pre></div> <p>le fait d'être en zpip ne change rien à la question.</p> <p>(bon dans l'idéal faudrait faire un vrai form propre sous la forme de CVT)</p> Critère <code>{mots}</code> 2014-04-03T08:19:24Z https://files.spip.org/Critere-mots#comment474770 2014-04-03T08:19:24Z <p>Pour la rubrique, cela fonctionne, erreur d'étourderie ma part, il fallait mettre <i>id_secteur=XXX</i>, car les articles étaient dans des sous rubrique de la rubrique en question. Mais pour le passage des variables à l'URL, je ne vois pas comment faire...</p> Critère <code>{mots}</code> 2014-04-03T07:13:17Z https://files.spip.org/Critere-mots#comment474769 2014-04-03T07:13:17Z <p>Merci du retour rapide.</p> <p>La méthode get me renvoie à la page d'accueil car l'url créée donne ceci :</p> <blockquote class="spip"> <p>spip.php?mots%5B0%5D=12&mots%5B1%5D=17&mots%5B2%5D=2&ok=chercher</p> </blockquote> <p>Sinon oui, j'ai bien mis le numéro de rubrique.<br class="autobr" /> Petite précision, le site fonctionne avec zpip, cela peut éventuellement expliquer ces problèmes ?</p> Critère <code>{mots}</code> 2014-04-02T15:26:51Z https://files.spip.org/Critere-mots#comment474760 2014-04-02T15:26:51Z <p>1. Sans être expert en la question, je pense que tu devrait remplacer <code>method="post"</code> par <code>method="get"</code>. Cela passera correctement les variables à l'URL. <br class="autobr" /> 2. <code>{id_rubrique=XXX}</code> tu as bien remplacé XXX par la rubrique où tu veux limiter?</p> Critère <code>{mots}</code> 2014-04-02T14:50:21Z https://files.spip.org/Critere-mots#comment474758 2014-04-02T14:50:21Z <p>Voici le formulaire :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><form action="spip.php?page=recherche3" method="post" name="mot" > <select name="mots[0]"> <span class="re11"><BOUCLE_gr1</span><span class="re12">(GROUPES_MOTS)</span><span class="re13"><span class="re41">{id_groupe=4}</span></span><span class="re10">></span> [<option><span class="re1">#TITRE</span></option>] <span class="re11"><BOUCLE_mots4</span><span class="re12">(MOTS)</span><span class="re13"><span class="re41">{id_groupe}</span></span><span class="re10">></span> <option value="<span class="re1">#ID_MOT</span>"><span class="re1">#TITRE</span></option> <span class="re15"></BOUCLE_mots4></span> <span class="re15"></BOUCLE_gr1></span> </select> <select name="mots[1]"> <span class="re11"><BOUCLE_gr2</span><span class="re12">(GROUPES_MOTS)</span><span class="re13"><span class="re41">{id_groupe=5}</span></span><span class="re10">></span> [<option><span class="re1">#TITRE</span></option>] <span class="re11"><BOUCLE_mots5</span><span class="re12">(MOTS)</span><span class="re13"> <span class="re41">{id_groupe}</span></span><span class="re10">></span> <option value="<span class="re1">#ID_MOT</span>"><span class="re1">#TITRE</span></option> <span class="re15"></BOUCLE_mots5></span> <span class="re15"></BOUCLE_gr2></span> </select> <select name="mots[2]"> <span class="re11"><BOUCLE_gr3</span><span class="re12">(GROUPES_MOTS)</span><span class="re13"><span class="re41">{id_groupe=6}</span></span><span class="re10">></span> [<option><span class="re1">#TITRE</span></option>] <span class="re11"><BOUCLE_mots6</span><span class="re12">(MOTS)</span><span class="re13"> <span class="re41">{id_groupe}</span></span><span class="re10">></span> <option value="<span class="re1">#ID_MOT</span>"><span class="re1">#TITRE</span></option> <span class="re15"></BOUCLE_mots6></span> <span class="re15"></BOUCLE_gr3></span> </select> <input type="submit" value="chercher" name="ok"> </form></code></pre></div> <p>Et voici la page de résultats :</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re11"><BOUCLE_mot</span><span class="re12">(MOTS)</span><span class="re13"><span class="re41">{id_mot in <span class="re1">#ENV</span><span class="re40">{mots}</span>}</span></span><span class="re10">></span><span class="re1">#TITRE</span> <span class="re15"></BOUCLE_mot></span> <span class="re15"><B_recherche_par></span> <div classe="liste"> <h3><span class="re30"><:resultats_recherche:></span></h3> <ul class="liste-items"> <span class="re11"><BOUCLE_recherche_par</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{mots}</span><span class="re41">{pagination 5}</span></span><span class="re10">></span> <li class="item"> <a href="<span class="re1">#URL_ARTICLE</span>"><span class="re1">#TITRE</span></a> </li> <span class="re15"></BOUCLE_recherche_par></span> </ul> <p id="pagination" class="clearfix pagination nettoyeur"> <span class="re1">#PAGINATION</span> </p><span class="coMULTI"><!-- #pagination --></span> </div> <span class="re15"></B_recherche_par></span> </code></pre></div> <p>J'ai deux problèmes :</p> <p>1. Le formulaire passe les mots via #ENV à la page de résultats (et les mots sont affichés sur cette page) mais les articles ne s'affichent pas, sauf si j'écris dans l'URL "&mot[]=10&mot[1]=3...</p> <p>2. Si j'ajoute <code>{id_rubrique=XXX}</code> à ma boucle “recherche_par”, il n' a plus de résultat.</p> <p>Merci de toute lumière !</p> Critère <code>{mots}</code> 2014-04-02T14:20:39Z https://files.spip.org/Critere-mots#comment474757 2014-04-02T14:20:39Z <p>Salut,</p> <p>Je lis ton message un peu tardivement...</p> <p>Tu trouveras une ancienne technique similaire (ancienne aussi) ici: <a href='https://files.spip.org/spip.php?page=article&#38;id_article=1538#new' rel='nofollow'>article 1538</a> et qui est détaillée pour un usage similaire au critère mots ici: <a href="http://thread.gmane.org/gmane.comp.web.spip.user/165524/focus=165539" class="spip_url spip_out" rel='nofollow external'>http://thread.gmane.org/gmane.comp....</a>.</p> <p>Pour moi, ça s'est avéré environ 10x plus rapide à l'exécution que critère mots... Toutefois c'est moins souple (ou plus difficile à manipuler).</p> <p>Voici le code:</p> <div class="precode"><pre dir="ltr" style="text-align: left;" class="spip"><code><span class="re4">[</span> <span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Une première boucle qui prépare une pile avec doublons nommée liste_0 (Ici on peut rajouter des critères si on veut choisir des articles en particulier à filtrer avec des mots) Ça peut marcher aussi pour d'autres boucles que ARTICLES... <span class="re4">]</span> <span class="re11"><BOUCLE_Une_pile</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{doublons liste_0}</span> </span><span class="re10">></span><span class="re15"></BOUCLE_Une_pile></span> <span class="re4">[</span> <span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Ensuite pour chaque mot de mon tableau... "ma_liste_de_mots" contient une liste de mots qui servent de filtres <span class="re4">]</span> <span class="re11"><BOUCLE_Les_mots</span><span class="re12">(MOTS)</span><span class="re13"><span class="re41">{id_mot IN <span class="re1">#GET</span><span class="re40">{ma_liste_de_mots}</span>}</span></span><span class="re10">></span> <span class="re4">[</span><span class="re4">(</span><span class="re1">#SET</span><span class="re40">{moinsun,<span class="re4">[</span><span class="re4">(</span><span class="re1">#<span class="re2">_Les_mots:</span>COMPTEUR_BOUCLE</span><span class="re50">|moins</span>{1}<span class="re4">)</span><span class="re4">]</span>}</span><span class="re4">)</span><span class="re4">]</span> <span class="re4">[</span> <span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> on choisi parmi les articles de la pile précédente (liste_x où x est compteur_boucle-1) les articles qui sont rattachés au mot. Et on les empile avec un doublons dans la pile suivante (liste_y où y=compteur de boucle) <span class="re4">]</span> <span class="re11"><BOUCLE_les_articles_du_mot</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{id_mot}</span></span> <span class="re13"> <span class="re41">{!doublons liste_<span class="re1">#GET</span><span class="re40">{moinsun}</span>}</span></span> <span class="re13"> <span class="re41">{doublons liste_<span class="re1">#<span class="re2">_Les_mots:</span>COMPTEUR_BOUCLE</span>}</span> </span><span class="re10">></span><span class="re15"></BOUCLE_les_articles_du_mot></span> <span class="re15"></BOUCLE_Les_mots></span> <span class="re4">[</span> <span class="re4">(</span><span class="re1">#REM</span><span class="re4">)</span> Au final, on a une pile (nommée liste_z où z=nombre de tour de boucle "Les_mots") qui contient bien seulement les articles qui ont tous les mots du tableau C'est ce que liste la boucle d'après. (ça peut être l'occasion de les trier d'une façon ou d'une autre...) <span class="re4">]</span> <span class="re11"><BOUCLE_Articles_empile</span><span class="re12">(ARTICLES)</span><span class="re13"><span class="re41">{!doublons</span> <span class="re13">liste_<span class="re1">#<span class="re2">_Les_mots:</span>COMPTEUR_BOUCLE</span>}</span></span><span class="re10">></span> <span class="re1">#TITRE</span><br> <span class="re15"></BOUCLE_Articles_empile></span></code></pre></div> Critère <code>{mots}</code> 2014-04-02T12:48:31Z https://files.spip.org/Critere-mots#comment474752 2014-04-02T12:48:31Z <p>le critère s'appliquant à une boucle, il suffit de mettre le critère classique <code>{id_rubrique=XXX}</code> sur cette boucle.</p> Critère <code>{mots}</code> 2014-04-02T12:44:40Z https://files.spip.org/Critere-mots#comment474751 2014-04-02T12:44:40Z <p>Bonjour,</p> <p>Est-il possible de limiter le résultat de la recherche à une rubrique ? La solution donnée sur le post du 27 mai 2011 à 15:59 ne semble pas fonctionner.</p> Critère <code>{mots}</code> 2014-03-26T23:59:55Z https://files.spip.org/Critere-mots#comment474649 2014-03-26T23:59:55Z <p>ce plugin de fou...</p> <p>J'ai passé des centaines d'heures pour réaliser divers moteurs multicritères ces dernières années. Et ce soir je tombe sur ce plugin, tout fait, tout simple, tout bête et en 5mn j'ai un moteur qui fonctionne...</p> <p>Pourquoi j'avais jamais cherché avant ??? Pourquoi ???</p> <p>Merci !!!!</p> Critère <code>{mots}</code> 2014-03-25T10:20:16Z https://files.spip.org/Critere-mots#comment474611 2014-03-25T10:20:16Z <p>OK je vais creuser par là alors. Je sais pas pourquoi je m'étais immaginé un truc plus compliqué. Je vais voir ça, merci :)</p> Critère <code>{mots}</code> 2014-03-18T18:04:14Z https://files.spip.org/Critere-mots#comment474488 2014-03-18T18:04:14Z <p>je comprend rien à tes propos...</p> <p>c'est pas compliqué l'ajax avec spip : <code><INCLURE{toto}{ajax}{env}></code>. Il suffit juste que ton form de select des mots clef soit dans toto et ca roule ...</p> Critère <code>{mots}</code> 2014-03-18T17:59:51Z https://files.spip.org/Critere-mots#comment474487 2014-03-18T17:59:51Z <p>Bah en fait non c'est vraiment pas un problème lié à l'ajax. Moi le fonctionement ajax me convient bien mieux que des params d'url classiques.</p> <p>Là justement, je cherche à savoir si on peut ajaxer un peu le fonctionnement de ce plugin en fait ?</p> Critère <code>{mots}</code> 2014-03-18T17:50:24Z https://files.spip.org/Critere-mots#comment474486 2014-03-18T17:50:24Z <p>oui tu es clair, mais alors c'est un pb plus général à l'ajaxation, pas spécifique ici. A mon avis tu devrais en discuter sur user.</p> Critère <code>{mots}</code> 2014-03-18T17:36:46Z https://files.spip.org/Critere-mots#comment474484 2014-03-18T17:36:46Z <blockquote class="spip"> <p>L'ajax made in spip passe automatiquement les params get...</p> </blockquote> <p>C'est à dire ?</p> <blockquote class="spip"> <p> je vois pas en quoi ajax change quoique ce soit à ce pb</p> </blockquote> <p>En fait, si, ca change quand même pas mal de chose à mon niveau :)</p> <p>En substance, quand Google croise page.html, page.html?plop=pwet et page.html?truc=machin&bidule=schmurtz, pour lui ca fait 3 pages distinctes à indexer même si chaque paramètre ne change réellement que 2 mots dans la page (donc contenu dupliqué à plus de 99% pour autant de page qu'il y a de valeur à chaque paramètre = pas bon pour ton ref !</p> <p>Alors que page.html, page.html#!plop=pwet etc... ne seront bien reconnue que comme une seule et même page (les fragments indépendants s'affichant en mode noJS pouvant alors être facilement non indexés</p> <p>Je ne sais pas si je suis clair là ? :D )</p> Critère <code>{mots}</code> 2014-03-18T17:23:53Z https://files.spip.org/Critere-mots#comment474483 2014-03-18T17:23:53Z <p>heu, je vois pas en quoi ajax change quoique ce soit à ce pb. L'ajax made in spip passe automatiquement les params get...</p> Critère <code>{mots}</code> 2014-03-18T17:18:20Z https://files.spip.org/Critere-mots#comment474482 2014-03-18T17:18:20Z <p>Hello ! :)</p> <p>Bon... plus j'utilise ce plugin et plus je le trouve génial.</p> <p>Mais là j'ai un cas de conscience. Sur une page rubrique, je liste un *très* grand nombre d'articles paginés par 15 que je souhaite pouvoir trier par mot clés, lesquels appartiennent à 2 groupes. Le premier exemple me parait approprié :</p> <p><code>http://www.toto.fr/?page=toto&amp;amp;mots[0]=XX&amp;amp;mots[1]=YY.</code></p> <p>Mais je cherche à savoir si l'on peut obtenir la même transmission de variable au contexte avec des paramètres ajax (donc passés avec des !# plutôt que des ? et des &) ?</p> <p>soit une écriture du style</p> <p><code>http://www.toto.fr/ma-rubrique#!mots[0]=XX&amp;amp;mots[1]=YY.</code></p> <p>Dans le but d'éviter des duplications de contenus malheureuse, ce qui arrive quasi systématiquement dès que l'on joue avec les paramètres d'url</p> <p>Une idée ?</p> <p>Merci d'avance ;)</p> Critère <code>{mots}</code> 2014-03-14T12:46:00Z https://files.spip.org/Critere-mots#comment474382 2014-03-14T12:46:00Z <p>Je viens de tester le cas où on applique plusieurs fois le critère <code>{mots}</code> sur la même boucle</p> <div class="precode"><pre dir="ltr" style="text-align: left;"><code><BOUCLE_a(ARTICLES) {mots 1 #LISTE{1,2}} {mots 1 #LISTE{3,4}} {mots 1 #LISTE{5,6}}> <li>#ID_ARTICLE</li> </BOUCLE_a></code></pre></div> <p>Dans ce cas, seul le dernier critère (<code>{mots 1 #LISTE{5,6}}</code>) est pris en compte et les précédents (<code>{mots 1 #LISTE{1,2}}{mots 1 #LISTE{3,4}}</code>) sont ignorés.</p> <p>Peut-être pourrait-on ajouter un paragraphe pour le préciser.</p> Critère <code>{mots}</code> 2014-02-02T10:27:13Z https://files.spip.org/Critere-mots#comment473630 2014-02-02T10:27:13Z <p>Bonjour</p> <p>Je me sers de ce plugin efficace d'ailleurs, pour créer un moteur de recherche multicritères sur plusieurs groupes de mots clés. Je souhaiterai modifier le formulaire de sélection pour faire afficher directement les 4 groupes de mots clé que j'utilise : <br />- Groupe 1 -> menu déroulant avec les mots clés du groupe <br />- Groupe 2 -> menu déroulant avec les mots clés du groupe <br />- Groupe 3 -> menu déroulant avec les mots clés du groupe <br />- Groupe 4 -> menu déroulant avec les mots clés du groupe<br class="autobr" /> Actuellement il propose d'abord -> Dans le groupe : liste déroulante avec Groupe 1, Groupe 2, Groupe 3, etc. puis un autre choix, etc.</p> <p>J'ai regardé la page recherche_par_mot.html, mais je n'y arrive pas vraiment... <br class="autobr" /> Quelqu'un pourrait il m'aider ?</p>