Sie können hook_views_data
in einem benutzerdefinierten Modul verwenden. Die Implementierung dauert etwas länger, ist jedoch eine sehr modulare Lösung, da Sie ein VIRTUELLES Ansichtsfeld erhalten.
Deklarieren Sie Ansichten API-Version in Ihrer MODULE_NAME.module
Datei
function MODULE_NAME_views_api($module = NULL, $api = NULL) {
return array('api' => '3.0');
}
Datei MODULE_NAME.views.inc
mit Inhalt hinzufügen
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;
}
Datei MODULE_NAME_handlers.inc
mit Inhalt hinzufügen
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.
}
}
Ihre MODULE_NAME.info
Datei sollte ähnlich aussehen
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"
Aktivieren Sie Ihr Modul (oder bereinigen Sie Ihr Modul, class registry
wenn Sie ein vorhandenes / aktiviertes Modul ändern), und Sie sollten in der Lage sein, das aufgerufene virtuelle Feld anzuzeigen / hinzuzufügenVirtual views field from X Y Z
Dies kann verwendet werden und hat die Vorteile aller anderen regulären Ansichtsfelder.