CMS Automne http://www.automne-cms.org/forum/ |
|
Problème de recherche dans polymod http://www.automne-cms.org/forum/viewtopic.php?f=2&t=2663 |
Page 1 sur 1 |
Auteur: | jpg [ Lun Jan 14, 2013 10:59 pm ] |
Sujet du message: | Problème de recherche dans polymod |
Bonjour, Je tente de faire une recherche dans un polymod sur un champ string qui contient une simple quote (') Le système ne retourne pas l'entrée bien qu'elle existe. Le problème vient de la quote car si je modifie les termes c'est ok Je pense qu'il s'agit d'un problème d'encodage, j'ai essayé différentes solutions mais rien à faire La condition est du style: <atm-search-param search="newsresult" type="keywords" value="test avec ' une quote" mandatory="true" operator="phrase" /> marche pas ou <atm-search-param search="newsresult" type="keywords" value="test avec ' une quote" mandatory="true" operator="phrase" /> marche pas (dans la base ' est encodé en ' pour un string) Une idée ? Merci pour votre aide |
Auteur: | atm4u [ Mar Jan 15, 2013 10:19 am ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Salut, La value que tu cherches (value="test avec ' une quote") est en dure dans ta rangée ou est-elle récupérée d'un request ? |
Auteur: | Fred [ Mar Jan 15, 2013 10:50 am ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Bonjour, Je pense que ta requête ne retourne rien parce-que dans la classe CMS_object_search d'Automne il y a une ligne de code qui nettoie les mots clés des virgules et point-virgules : Code : //clean user keywords (never trust user input, user is evil) $value = strtr($value, ",;", " "); Donc quand tu recherches "test avec ' une quote" le test se fait en fait sur "test avec ' une quote". J'ai essayé en désactivant la ligne qui supprime les , et ; et ça fonctionne en mettant ' ! Reste à trouver une vrai solution... Chez moi ça passe avec operator=any (valeur par défaut) mais je pense que ça utilise ASE (moteur de recherche Automne) d'après le code que j'ai parcouru rapidement. |
Auteur: | atm4u [ Mar Jan 15, 2013 10:56 am ] |
Sujet du message: | Re: Problème de recherche dans polymod |
De mon côté, je préconiserais plutôt un encodage url ou une mise en variable avant utilisation. Mes tests en local sont concluants sur un request, Automne semble gérer cela correctement mais dans certains cas. Mettre la chaine dans une variable et exploitée la variable fonctionne. Donc, perso, je toucherais pas au code source |
Auteur: | Fred [ Mar Jan 15, 2013 11:13 am ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Ah oui c'est sûr, je ne préconise pas de modifier le code source, c'est une mauvaise idée, je cherchais juste la manière dont Automne traitait la requête |
Auteur: | jpg [ Mar Jan 15, 2013 5:38 pm ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Merci à tous les 2, atm4u : le texte n'est pas en dur et j'utilise des variables pour encoder le texte du genre : <atm-setvar vartype="var" varname="search" value="{helper:io::htmlspecialchars:{var:string:txt}}" /> (pour encoder) <atm-search-param search="newsresult" type="keywords" value="{var:string:search}" mandatory="true" operator="phrase"/> fred : j'avais pas vu cette ligne de code ... mais effectivement ça coince car la recherche concerne un string et la quote est encodée en ' dans la table (par ex table mod_subobject_string_public champ value) => on ne peut pas faire de recherche exacte sur une phrase qui contient une quote si le champ est un string J'ai testé le truc sans le moteur de recherche ASE. De plus au niveau de l'admin d'un module polymod qui contient un champ string indexé, si on fait une recherche avec "Phrase exacte" de sélectionné on aura un résultat si on remplace la quote par ' dans l'admin le ; ne semble pas être supprimé. a++ |
Auteur: | atm4u [ Mer Jan 16, 2013 5:15 pm ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Ton operator="phrase" est une notion obligatoire de ton développement ? Je ne pense pas que tu sois obligé d'encoder ton string avant la mise en variable, mais j'ai pas de certitude la-dessus. |
Auteur: | jpg [ Mer Jan 16, 2013 5:23 pm ] |
Sujet du message: | Re: Problème de recherche dans polymod |
atm4u a écrit: Ton operator="phrase" est une notion obligatoire de ton développement ? oui |
Auteur: | atm4u [ Mer Jan 16, 2013 9:29 pm ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Je persiste, de mon côté pas de problème Ma solution se base sur un request, ma recherche est ainsi : Code : <atm-search-param search="catalogResult" type="keywords" value="{request:string:search}" mandatory="true" operator="phrase"/> Et cela fonctionne parfaitement. Donc, je pense qu'il faut chercher ailleurs : 1 - Supprimer ton encodage lors de la mise en variable, je pense même que ta mise en variable est inutile 2 - Le champ est bien en un champ de type "Chaine de caractères" 3 - S'assurer que tu as mis cache="0" dans ton block polymod, car la variable sinon n'est pas ré-actualisée. Peux-tu vérifier ces éléments et me tenir au courant ? |
Auteur: | jpg [ Mer Jan 16, 2013 11:07 pm ] |
Sujet du message: | Re: Problème de recherche dans polymod |
merci d'avoir testé mais non ... moi aussi je persiste. marche pas si la chaine possède une ' as-tu le moteur de recherche ASE installé ? ce n'est pas mon cas a++ |
Auteur: | atm4u [ Jeu Jan 17, 2013 1:02 pm ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Ok, bon j'ai monté deux test case et effectivement, j'ai un soucis sur le 2nd qui ressemble a ce que tu décris. Pas de ASE de mon côté, je vais creuser un peu : http://demo.automne4you.com/web/demo/12 ... t-case.php |
Auteur: | atm4u [ Mer Jan 30, 2013 9:45 pm ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Sans solution ni compréhension du problème j'ai fait une issue sur guithub. A voir si cela est pris en compte ou pas. |
Auteur: | jpg [ Ven Fév 01, 2013 12:04 pm ] |
Sujet du message: | Re: Problème de recherche dans polymod |
Je te remercie ! Il va falloir que je me penche sérieusement sur guithub. |
Page 1 sur 1 | Le fuseau horaire est UTC [Heure d’été] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |