Ах. Просмотры. Мне тоже понадобилось время. Этот ответ предназначен для Drupal 6 и в резюме показывает, как определять поля, а также как использовать отношения, чтобы поля могли связываться с таблицей узлов.
Внутри modulename.module вам нужна функция, которая работает:
function modulename_views_api() {
return array(
'api' => 2,
);
}
Затем вы хотите создать файл с именем modulename.views.inc и определить функцию, подобную этой:
function modulename_views_data() {
$data['modulename_table'] = array(
'table' => array(
'group' => 'ModuleName',
'title' => 'Module name title',
),
'join' => array(
// to join to node, we'll use a field in modulename_table called 'nid'
'node' => array(
'left_field' => 'nid',
'field' => 'nid',
),
),
);
// now we define the fields in the table like this
// check out modules/views/handlers to see more specific handlers
$data['modulename_table']['fieldname'] = array(
'title' => 'fieldname',
'help' => 'fieldname description',
'field' => array(
'handler' => 'views_handler_field',
),
);
$data['modulename_table']['nid'] = array(
'title' => 'related node',
'help' => 'the field that relates back to {node}',
// here we implement a relationship to nid
'relationship' => array(
'base' => 'node',
'field' => 'nid',
'handler' => 'views_handler_relationship',
'label' => 'modulename row node',
),
// this relationship can be turned on in views
);
return $data;
}