como faço para que meu módulo instale uma visualização?

8

Eu desenvolvi um módulo em um ambiente de desenvolvimento. Eu construí uma visualização usando a interface do usuário. Exportei a visualização, mas não sei onde colocá-la, para que uma instalação do módulo em um ambiente novo também crie a visualização.

Como faço isso corretamente?

Bônus: como faço para o módulo desinstalar a visualização hook_uninstall?

user1359
fonte
Para o Drupal 8, consulte drupal.stackexchange.com/questions/175313/…
iStryker

Respostas:

10

Crie o arquivo MODULENAME.views_default.inc (substitua MODULENAME pelo nome do seu módulo) e copie o código exportado na implementação de hook_views_default_views()sua gravação nesse arquivo.

Por exemplo, o módulo Views é implementado node_views_default_views()no módulo Node. As partes relevantes para a visualização da primeira página são as seguintes.

  $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;

O gancho retorna o conteúdo de $views.

Se a visualização não tiver sido substituída por um usuário, ela não deverá ser mostrada na lista de visualizações, depois que o módulo que implementa o gancho for desinstalado.

kiamlaluno
fonte
2
Não se esqueça de implementar hook_views_apino seu arquivo de módulo principal. Veja Visualizações 3.8 hook_views_default_views () parou de funcionar .
Terceiro #