Wie kann ich die Ergebnisse einer Standardsuche in Drupal 7 einschränken, damit nur die Knoten in der aktuellen Sprache angezeigt werden?
Meine Website verfügt über einen dreisprachigen Umschalter. Der Benutzer wählt aus, welche Sprache er beim Anzeigen der Site verwenden möchte. Wenn er etwas sucht, bringt die Ergebnisseite Ergebnisse aus anderen Sprachen. Heute habe ich nur 3 aktivierte Sprachen, aber wir planen, dies auf 6 oder mehr zu erweitern.
Es gibt einen sehr eleganten Weg, dies mit dem scheinbar undokumentierten zu tun
hook_query_node_access_alter()
:Hinweis: Dieser Code basiert zu 100% auf der ausgezeichneten Suchkonfiguration Modul .
Sprache des Benutzers vs. Inhalt
Bei einigen Websites ist die Spracherkennung möglicherweise so konfiguriert, dass die Benutzeroberfläche in der vom Benutzer bevorzugten Sprache angezeigt wird, während der Seiteninhalt anhand der URL oder der Inhaltssprache angezeigt wird.
In diesem Fall sollten Sie eine Ersetzung in Betracht ziehen
mit
quelle
Ich hatte die gleichen Anforderungen und benutzte das Modul Benutzerdefinierte Suche , das ein Untermodul namens Benutzerdefinierte Suche Internationalisierung enthält : " Suche nach Inhalten aus allen oder nur aus der aktuellen Sprache und Übersetzung aller Labels und Selektoren " (beachten Sie, dass dieses Modul auch einige andere nützliche Funktionen bietet Funktionen wie benutzerdefinierte Suchblöcke). Funktioniert perfekt.
quelle
Ich bin mir nicht sicher, ob der Suchkern dies unterstützt.
Ich sehe das Projekt i18nluceneapi aber es unterstützt momentan Version 7 nicht.
Ich benutze searchapi und erstelle Facetten Sprache :). Es kann für Ihren Fall verwendet werden, um Facetten und Standardfilter auf der Suchseite zu erstellen.
quelle
Sie können das Display Suite-Modul verwenden, in dem Sie die Option Ansichtsmodus-> Sprache auswählen können, mit der die Suchergebnisse in der aktuellen Sprache der aktuellen Site-Sprache angezeigt werden.
quelle