プログラミングメモ

主にWeb(PHP, JavaScript, etc.)関連のプログラミングメモをしていきます。

多言語化時の検索結果を表示中の言語のノードのみにする

hook_query_alter()でがんばる。

<?php
function mymodule_query_alter(QueryAlterableInterface $query) {
	if ($query->hasTag('node_access') && $query->hasTag('pager')) {
		global $language;

		$tables = $query->getTables();
		foreach ($tables as $table) {
			if ($table['table'] == 'node') {
				$query->condition('n.language', $language->language, '=');
			}
		}
	}
}