Jak mogę ograniczyć wyniki wyszukiwania domyślnego w Drupal 7, aby wyświetlać tylko te węzły, które są w bieżącym języku?
Moja strona ma przełącznik trzech języków; użytkownik wybiera język, którego chce używać podczas przeglądania strony. Jeśli czegoś szuka, strona wyników przynosi wyniki z innych języków. Dzisiaj mam tylko 3 włączone języki, ale planujemy rozszerzyć to do 6 lub więcej.
Istnieje naprawdę elegancki sposób na zrobienie tego za pomocą pozornie nieudokumentowanej
hook_query_node_access_alter()
:Uwaga: ten kod jest w 100% oparty na doskonałym module Search Config .
Język użytkownika a treść
Niektóre witryny mogą mieć skonfigurowane wykrywanie języka, aby wyświetlać interfejs w preferowanym języku użytkownika, podczas gdy zawartość strony jest wyświetlana na podstawie adresu URL lub języka treści.
W takim przypadku rozważ wymianę
z
źródło
Miałem te same wymagania i korzystałem z niestandardowego modułu wyszukiwania , który zawiera podmoduł o nazwie Niestandardowa wyszukiwarka internacjonalizacji : „ przeszukuj treść ze wszystkich lub tylko bieżącego języka oraz wszystkie funkcje tłumaczenia etykiet i selektorów ” (zwróć uwagę, że moduł ten zawiera również kilka innych pomocnych funkcje takie jak niestandardowe bloki wyszukiwania). Działa świetnie.
źródło
Nie wiem, czy wyszukiwarka obsługuje to.
Widzę projekt i18nluceneapi, ale obecnie nie obsługuje on wersji 7.
Używam searchapi i tworzę aspekty Język :). Może używać dla twojego przypadku, tworzyć aspekty i domyślny filtr na stronie wyszukiwania.
źródło
Możesz użyć modułu wyświetlacza, w którym możesz wybrać opcję Tryb widoku-> Język, który daje wyniki wyszukiwania w bieżącym języku, który jest w bieżącym języku strony.
źródło