Добрый день, столкнулся с проблемой.
Подключаю к Views свою таблицу для отображения данных, т.е. использую hook_views_data
Если судить по большинству статей в Интернете, то всё просто, создаётся YOUR_MODULE.module файл, в котором:
<?php
/**
* Implements hook_views_api().
*/
function YOUR_MODULE_views_api() {
return array(
'api' => 3,
);
}
?>
и файл YOUR_MODULE.views.inc , в котором:
<?php
/**
* Implements hook_views_data().
*/
function YOUR_MODULE_views_data() {
$data['example_table']['table']['group'] = t('Example table');
$data['example_table']['table']['base'] = array(
'field' => 'nid',
'title' => t('Example table'),
'help' => t('Example table contains example content and can be related to nodes.'),
'weight' => -10,
);
return $data;
}
?>
Вопрос заключается в следующем, а если хочу в одном модуле описать каждую таблицу в отдельном файле, т.е. не помещать всё описание всех таблиц в один файл YOUR_MODULE.views.inc, а для каждой таблицы создать свой файл, в какой нибудь папке includes например, и называть их TABLE_ONE.views.inc, TABLE_TWO.views.inc, ...
Пробовал создавать такие файлы в папке includes в корне модуля, в каждом файле отдельно описывал таблицу
table_one.views.inc
<?php
/**
* Implements hook_views_data().
*/
function YOUR_MODULE_views_data() {
$data['table_one']['table']['group'] = t('Table one');
$data['table_one']['table']['base'] = array(
'field' => 'nid',
'title' => t('Table one'),
'help' => t('Example table one contains example content and can be related to nodes.'),
'weight' => -10,
);
return $data;
}
?>
table_two.views.inc
<?php
/**
* Implements hook_views_data().
*/
function YOUR_MODULE_views_data() {
$data['table_two']['table']['group'] = t('Table two');
$data['table_two']['table']['base'] = array(
'field' => 'nid',
'title' => t('Table two'),
'help' => t('Example table two contains example content and can be related to nodes.'),
'weight' => -10,
);
return $data;
}
?>
После чего добавил в info модуля строки:
files[] = includes/table_one.views.inc
files[] = includes/table_two.views.inc
И поправил .module файл
<?php
/**
* Implements hook_views_api().
*/
function YOUR_MODULE_views_api() {
return array(
'api' => 3,
'path' => drupal_get_path('module', 'YOUR_MODULE') . '/includes',
);
}
?>
Вот только с таким изменениями, никаких новых таблиц не видно в интерфейсе Views при создании нового представления. Может быть я не правильно понимаю, как описывают дополнительные файлы в модуле, или может моя задача в принципе не решатся.
Подскажите пожалуйста