Иногда нужно сделать в своем Drupal модуле вывод какой-то информации, например, вывести в табличке много полей или сделать другую выборку. Конечно, можно написать код который это будет делать, но в этом случае пользователям не знающим php будет тяжело что-то модифицировать под свои нужды, и время на написание кода будет скорее-всего больше чем создание одного Views. В этом случае будет полезно добавить этот Views прямо в свой модуль. То есть после включения нашего модуля в систему добавиться нужный нам Views, который пользователь сможет достаточно легко модифицировать или добавить что-то свое. Делается все это достаточно просто.

Первое, что нам потребуется - это экспортировать наш views.
snimok_ekrana_2014-01-24_v_14.45.55.png

После этого копируем полученный код для экспорта и вставляем его в хук hook_views_default_views, который мы объявляем в файле my_module.views.default.inc (my_module заменяем на имя модуля). То есть получиться у нас следующее:

// filename: my_module.views.default.inc
/**
 * Implementation of hook_views_default_views().
 */
function my_module_views_default_views() {
  // Код из экспорта views
  $views[$view->name] = $view;
  return $views;
}

Теперь в код главного файла нашего модуля добавляем hook_views_api:

// filename: my_module.module
 
/**
 * Implementation of hook_views_api().
 */
function my_module_views_api() {
  return array(
    'api' => 3,
    'path' => drupal_get_path('module', 'my_module'),
  );
}

После этого шага все готово. Как видите, получилось все достаточно просто, и при условии, что views уже есть, добавить его в импорт в код модуля достаточно просто.

Add new comment