Drupal のビューは使いやすいですが、必要に応じてクエリ条件を動的に変更したい場合があります。そこで、ビューのクエリ条件を変更する良い方法を説明します。同時に、ニーズに応じて法的なクエリ条件を追加することもできます
1. モジュール内で次のようなフックを宣言する必要があります
[php]
関数モジュール名_views_api() {
return array(
'api' => 3、
'path' => drupal_get_path('module', 'modulename') '/',
);
2. モジュール ディレクトリの下にファイル (modulename.views.inc) を作成し、フックとカスタム メソッドを使用してビューのクエリ条件を変更します。
[php]
関数モジュール名_views_query_alter(&$view, &$query) {
If ($view->name == 'viewname') {
$data = _get_views_operationinfo_time_key($query->where[1]['条件']);
If (count($data) > 0) {
foreach ($data as $d) {
$query->where[1]['条件'][$d]['値'] = strtotime($query->where[1]['条件'][$d]['値']) ;
}
}
function _get_views_operationinfo_time_key($conditions) {
$data = 配列();
foreach ($conditions as $key => $val) {
If ($val['フィールド'] == 'フィールド名') {
$data[] = $key;
}
$data を返します。
}
上記の文字の意味:
1. modulename あなたのモジュール名
2. viewname 機械可読なビューの名前
3. fieldname 条件を追加するフィールドの名前 ここではテーブル名.フィールド名
で指定します。
注: 上記の例は、時刻と日付をタイムスタンプに変換するために使用したものです。もちろん、ここで任意の変更を加えることができます。
http://www.bkjia.com/PHPjc/477964.html