web-dev-qa-db-ja.com

モジュールを取得してビューをインストールするにはどうすればよいですか?

開発環境でモジュールを開発しました。 UIを使用してビューを作成しました。ビューをエクスポートしましたが、どこに配置すればよいかわからないため、新しい環境にモジュールをインストールすると、ビューも作成されます。

これを正しく行うにはどうすればよいですか?

おまけ:モジュールにhook_uninstallのビューをアンインストールさせるにはどうすればよいですか?

8
user1359

MODULENAME.views_default.incファイルを作成し(MODULENAMEをモジュールの名前に置き換えます)、エクスポートしたコードを hook_views_default_views() の実装にコピーして、そのファイルに書き込みます。

たとえば、Viewsモジュールは、Nodeモジュールに対して node_views_default_views() を実装しています。フロントページビューの関連部分は次のとおりです。

  $views = array();

  // Omissis

  $view = new view;
  $view->name = 'frontpage';
  $view->description = 'Emulates the default Drupal front page; you may set the default home page path to this view to make it your front page.';
  $view->tag = 'default';
  $view->base_table = 'node';
  $view->human_name = 'Front page';
  $view->core = 0;
  $view->api_version = '3.0';
  $view->disabled = TRUE; /* Edit this to true to make a default view disabled initially */

  // Omissis

  $views['frontpage'] = $view;

次に、フックは$viewsのコンテンツを返します。

ビューがユーザーによって上書きされていない場合、フックを実装するモジュールがアンインストールされると、ビューリストに表示されません。

10
kiamlaluno