Как я могу ограничить результаты поиска по умолчанию в Drupal 7, чтобы выводить только узлы на текущем языке?
На моем сайте есть три языковых переключателя; Пользователь выбирает, какой язык он хочет использовать при просмотре сайта. Если он что-то ищет, страница результатов принесет результаты с других языков. Сегодня у меня есть только 3 включенных языка, но мы планируем расширить это до 6 или более.
Есть действительно элегантный способ сделать это, используя явно недокументированное
hook_query_node_access_alter()
:Примечание: этот код на 100% основан на превосходном модуле настройки поиска .
Язык пользователя против контента
Некоторые сайты могут иметь обнаружение языка, настроенное для отображения интерфейса на предпочитаемом языке пользователя, в то время как содержимое страницы отображается на основе URL-адреса или языка содержимого.
В этом случае рассмотрите возможность замены
с
источник
У меня были те же требования, и я использовал модуль пользовательского поиска , который включает подмодуль под названием « Интернационализация пользовательского поиска» : « поиск контента по всему или только на текущем языке, а также обработка перевода всех меток и селекторов » (обратите внимание, что этот модуль предоставляет также несколько других полезных такие функции, как пользовательские блоки поиска). Работает отлично.
источник
Я не уверен, что поисковое ядро поддерживает это.
Я вижу проект i18nluceneapi, но на данный момент он не поддерживает версию 7.
Я использую searchapi и создаю грани языка :). Он может использовать для вашего случая, создать фасеты и фильтр по умолчанию на странице поиска.
источник
Вы можете использовать модуль Показать комплект, где вы можете выбрать опцию Режим просмотра-> Язык, которая дает результаты поиска на текущем языке, который находится на текущем языке сайта.
источник