Comment puis-je restreindre les résultats d'une recherche par défaut dans Drupal 7, pour n'apporter que les nœuds qui sont dans la langue actuelle?
Mon site Web a un commutateur en trois langues; l'utilisateur choisit la langue qu'il souhaite utiliser lors de la consultation du site. S'il recherche quelque chose, la page de résultats affiche les résultats d'autres langues. Aujourd'hui, je n'ai que 3 langues activées, mais nous prévoyons de l'étendre à 6 ou plus.
Il existe une façon très élégante de le faire en utilisant le document apparemment non documenté
hook_query_node_access_alter()
:Remarque: ce code est basé à 100% sur l'excellent module Search Config .
Utilisateur vs langue du contenu
Certains sites peuvent avoir la détection de la langue configurée pour afficher l'interface dans la langue préférée de l'utilisateur, tandis que le contenu de la page est affiché en fonction de l'URL ou de la langue du contenu.
Dans ce cas, envisagez de remplacer
avec
la source
J'avais les mêmes exigences, et j'ai utilisé le module de recherche personnalisée , qui comprend un sous-module appelé Internationalisation de la recherche personnalisée : " recherche de contenu à partir de toutes les langues ou de la langue actuelle uniquement, et de tous les libellés et sélecteurs de gestion de la traduction " (notez que ce module fournit également plusieurs autres informations utiles fonctionnalités telles que les blocs de recherche personnalisés). Fonctionne parfaitement.
la source
Je ne suis pas sûr que le noyau de recherche le supporte.
Je vois le projet i18nluceneapi mais il ne prend pas en charge la version 7 pour le moment.
J'utilise searchapi et crée des facettes Language :). Il peut utiliser pour votre cas, créer des facettes et un filtre par défaut sur la page de recherche.
la source
Vous pouvez utiliser le module de la suite d'affichage où vous pouvez choisir l'option Mode d'affichage-> Langue qui donne les résultats de la recherche dans la langue actuelle qui est dans la langue actuelle du site.
la source