バウチャーというコンテンツタイプを作成しました。このコンテンツタイプには、Pointsというフィールドがあります。
一方、ユーザーがポイントを取得できるようにする http://drupal.org/project/Userpoints モジュールを有効にしました。
2つのバウチャーノードを作成しました。それらの1つはPointsフィールドの値が10で、もう1つは15です。
その後、コンテンツタイプを表示するビューを作成しました:バウチャー。次に、Pointsフィールドの値がUserよりも低い場合にのみ、バウチャーノードを表示するフィルターを追加する必要があります。 pointsvalue(現在ログに記録されているユーザー)
これを理解できるように、私のキャプチャを見てください。
同じフィルターをプログラムでビューに追加できます。
/**
* Implements hook_views_pre_view().
*/
function YOURMODULE_views_pre_view(&$view, &$display_id, &$args) {
if ($view->name == 'your_view_machine_name') {
$info = array(
'table' => 'field_data_field_points', // name of your “Points” field table.
'field' => 'field_points_value', // name of value field in that table.
'value' => array('value' => userpoints_get_current_points()), // dynamic part.
'operator' => '<',
'id' => 'field_data_field_points_YOURMODULE', // unique id.
'group' => 100, // new group.
);
$handler = views_get_handler($info['table'], $info['field'], 'filter');
$handler->init($view, $info);
$view->display_handler->handlers['filter'][$info['id']] = &$handler;
unset($handler);
}
}
テーブルを自動的に結合し、クエリに条件を追加します。