hook_views_data
カスタムモジュールで使用できます。実装に少し時間がかかりますが、VIRTUALビューフィールドが表示されるため、非常にモジュール化されたソリューションになります。
MODULE_NAME.module
ファイルでビューのAPIバージョンを宣言する
function MODULE_NAME_views_api($module = NULL, $api = NULL) {
return array('api' => '3.0');
}
MODULE_NAME.views.inc
内容を含むファイルを追加
function MODULE_NAME_views_data() {
$data = array();
$data['node']['virtual_views_field'] = array(
'title' => t('Virtual views field from X Y Z'),
'help' => t('Virtual views field from X Y Z fields.'),
'field' => array(
'handler' => 'MODULE_NAME_virtual_views_field',
),
);
return $data;
}
MODULE_NAME_handlers.inc
内容を含むファイルを追加
class MODULE_NAME_virtual_views_field extends views_handler_field {
/**
* Overrides views_handler_field::render().
*/
function render($values) {
//uncomment following to see the actual values available
//need DEVEL module for this
//dpm($values);
$X = $values->field_field_X[0]['raw']['value'];
$Y = $values->field_field_Y[0]['raw']['value'];
$Z = $values->field_field_Z[0]['raw']['value'];
//implement your logic here and get result
$result = $X . " " . $Y . " " . $Z;
return $result;
}
function query() {
// do not need to override the parent query.
}
}
あなたのMODULE_NAME.info
ファイルは次のようになります。
name = Custom Virtual Views Field
description = takes X Y Z fields to create virtual field
core = 7.x
package = custom
dependencies[] = views
files[] = MODULE_NAME_handlers.inc
core = "7.x"
モジュールを有効にし(またはclass registry
既存/有効化されたモジュールを変更する場合はクリーンアップ)、呼び出された仮想フィールドを表示/追加できるはずですVirtual views field from X Y Z
これは使用でき、他の通常のビューフィールドの利点があります。