2017-01-23 4 views
2

J'utilise Plone 4.3 dans un petit intranet et le moteur de recherche me met mal à l'aise. La recherche en direct fonctionne bien mais lorsque vous appuyez sur Entrée, la recherche affiche des résultats différents. Les résultats peuvent être obtenus en ajoutant un "" à la fin du texte, puis il montre les mêmes résultats que livesearch. Donc, je demande, est-il possible d'insérer automatiquement un "" lorsque vous appuyez sur entrer la touche afin d'obtenir les mêmes résultats que livesearch?Personnaliser Recherche de Plone

grâce

pd: mon anglais est pas très bon, désolé

+1

Je vous suggère de déposer un rapport de bogue ici: https://github.com/ plone/Products.CMFPlone/issues – alepisa

+0

Fait référence à: http://stackoverflow.com/questions/19731887/customize-the-search-portlet-in-plone-for-specific-content-types/19763519, chercher "surmonter la des résultats précis "pour le cas où vous vous trouvez sur le formulaire de recherche, provenant d'un lien de recherche avancé de portlets de recherche ou d'une touche de retour dans le champ de saisie du portlet de recherche. –

Répondre

6

que la recherche en direct affiche les résultats que l'utilisateur saisit des lettres, il est logique d'effectuer une requête pour tous les mots commençant avec le terme courant (par exemple si vous avez entré "voiture", vous obtenez des résultats contenant le mot "voiture" mais aussi "prudent", car nous ne pouvons pas encore dire si vous avez fini de taper des lettres). Dans la recherche avancée, lorsque vous recherchez "voiture", le système sait que vous êtes intéressé par les résultats de "voiture", pas par "prudent". Voilà pourquoi les 2 recherches fonctionnent différemment. Et Plone suppose que lorsque nous appuyons sur Entrée dans le moteur de recherche, nous avons fini d'entrer le mot que nous cherchons, donc il redirige vers la page de recherche avancée en utilisant le terme de recherche exact que nous avons entré.

Il est implémenté dans la viewbox de la boîte de recherche, vous trouverez le code dans plone.app.layout/plone/app/layout/viewlets/searchbox.pt, et comme vous pouvez le voir il s'agit d'une forme très basique soumettant l'entrée "SearchableText" à "@@ search".

Pour moi, la meilleure façon de le personnaliser est d'ajouter un petit JS comme ça quelque part dans votre peau:

$('#portal-searchbox form').submit(function(e) { 
    var input = $('#portal-searchbox input[name="SearchableText"]'); 
    input.val(input.val() + '*'); 
}); 
+0

Hey cool, c'est la première fois que je vois une explication de la raison des comportements différents. Votre solution est beaucoup plus élégante que celle de la réponse que j'ai référencée dans le commentaire sur la quête, merci! –

+0

Oui, c'est ce que je cherchais. Merci beaucoup. –