Там справді витончений спосіб зробити це з допомогою по- видимому , що не мають документів hook_query_node_access_alter()
:
function yourmodule_query_node_access_alter(QueryAlterableInterface $query) {
$search = FALSE;
$node = FALSE;
// Even though we know the node alias is going to be "n", by checking for the
// search_index table we make sure we're on the search page. Omitting this step will
// break the default admin/content page.
foreach ($query->getTables() as $alias => $table) {
if ($table['table'] == 'search_index') {
$search = $alias;
}
elseif ($table['table'] == 'node') {
$node = $alias;
}
}
// Make sure we're on the search page.
if ($node && $search) {
$db_and = db_and();
// I guess you *could* use global $language here instead but this is safer.
$language = i18n_language_interface();
$lang = $language->language;
$db_and->condition($node . '.language', $lang, '=');
$query->condition($db_and);
}
}
Примітка: цей код 100% по відношенню до відмінного Пошуку Config модуля.
Мова користувача щодо мови вмісту
На деяких сайтах може бути налаштовано функцію виявлення мови для відображення інтерфейсу на бажаній мові користувача, тоді як вміст сторінки відображається на основі URL-адреси або мови вмісту.
У такому випадку розгляньте можливість заміни
$language = i18n_language_interface();
з
$language = i18n_language_content();