IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[eZ Publish] eZ Find: le mot recherché surligner dans le résultat de la recherche


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Par défaut [eZ Publish] eZ Find: le mot recherché surligner dans le résultat de la recherche
    Bonjour à tous

    Voilà j'aimerais savoir si avec eZ find il est possible de faire un truc comme décrit ci-dessous de manière simple ou si je dois utiliser un autre procédé ?

    Lorsque je lance une recherche alors dans le résultat de la recherche qui est proposer j'ai :
    2- le mot recherché surligner dans le résultat de la recherche
    1- et lorsque je clique sur le résultat j'ai également le mot recherché surligner dans l’article visualisé pour aider la personne à trouver l’endroit où on parle du sujet qui l’intéresse

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Par défaut
    Après avoir décortiquer la documentation de eZ find et SOLR, je pense avoir trouver :

    La recherche Solr me retourne une liste de d’objets/nœuds, et je peux utiliser le « $node.highlight » qui va tout seul me mettre en gras le mot clé que je recherchais
    cf doc http://doc.ez.no/Extensions/eZ-Publi...sult-templates

  3. #3
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Bonus : check ezfind.ini, tu peux configurer la façon dont le highlight est présenté.

    Plus d'infos : https://github.com/ezsystems/ezfind/...zfind.ini#L267

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Par défaut
    Cool merci pour cette précision que je ne connaissais pas!

    Je rencontre du coup un autre problème :
    j'utilise le qui me permet donc d'avoir en surbrillance mon texte recherché.
    Maintenant j'aimerais lorsque je clique sur un de mes résultats ouvrir mon "article" et que dans la vue full de mon article tous les mots de ma recherche soient également en surbrillance.
    J'utilise un {attribute_view_gui ...} pour visualiser le contenu de mon objet qui est un texte riche.

    J'ai surchargér le fichier ezxmltext.tpl et j'ai mis le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {if is_set($search_criteria)}
    	{def $str_replace=concat("<b style='background-color:yellow'>",$search_criteria,"</b>")}
    	{$attribute.content.output.output_text|str_replace($search_criteria, $str_replace)}
    {else}
    	{$attribute.content.output.output_text}
    {/if}
    Tout fonctionne correctement SAUF que si mon mot clé de recherche est par exemple "le" alors il va me remplacer tous les mots "le" trouvés par "le" mais aussi dans les balise < > que l'on retrouve dans le {$attribute.content.output.output_text} or moi je ne veux pas qu'il prenne en compte les balises !!!

    Comment faire cela ??? J'ai une piste d'utiliser une expression régulière mais je suis un nullos en expression régulière

  5. #5
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Salut,

    Citation Envoyé par maxou2009 Voir le message
    Tout fonctionne correctement SAUF que si mon mot clé de recherche est par exemple "le" alors il va me remplacer tous les mots "le" trouvés par "le" mais aussi dans les balise < > que l'on retrouve dans le {$attribute.content.output.output_text} or moi je ne veux pas qu'il prenne en compte les balises !!!
    Je ne comprends pas bien, particulièrement le "mais aussi dans les balise < >". Tu pourrais me reformuler ton problème ?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Par défaut
    en fait lorsque je fais le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {def $str_replace=concat("<b style='background-color:yellow'>",$search_criteria,"</b>")}
    {$attribute.content.output.output_text|str_replace($search_criteria, $str_replace)}
    le contenu de
    $attribute.content.output.output_text
    semble être interprété comme une chaîne de caractères mais qui inclus les balises XML donc du coup il me remplace tous les "le" qu'il trouve dans mon texte mais aussi les "le" qui pourrait se trouver dans les balises XML comme le <table

    J'ai mis un exemple en pièces jointes du résultat
    Tu constateras qu'après le mot Magnésium étant donné que dans mon texte riche j'ai mis un tableau alors il m'a remplacé le "le" de la balise "<table" et du coup tout part en live...

    j'espère que c'est plus clair
    Images attachées Images attachées  

  7. #7
    Membre éprouvé
    Homme Profil pro
    VP Community
    Inscrit en
    Septembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : VP Community
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 63
    Par défaut
    Pourquoi ne travaillerais tu pas en JS, sur le DOM directement ?
    Tu pourrais générer la fonction JS depuis le language de template (ou bien rendre dynamique la chaîne à remplacer par biais de
    un objet de config, que tu créerais depuis le language de template)

    Exemple:
    http://stackoverflow.com/questions/5...inside-of-html

    L'alternative est bien sûr de travailler avec une expression régulière, en créant un opérateur de template eZ, qui ne ferait qu'un preg_replace dans le PHP en back-end.

    J'espère que cela t'aide,

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/09/2018, 18h54
  2. Mots en gras dans les résultats d'une recherche
    Par Freedolphin dans le forum Langage
    Réponses: 9
    Dernier message: 25/11/2011, 19h07
  3. Comment supprimer 'mots recherchés'?
    Par bucky dans le forum Windows XP
    Réponses: 3
    Dernier message: 04/12/2003, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo