¿Cómo consigo que mi módulo instale una vista?

8

He desarrollado un módulo en un entorno de desarrollo. Construí una vista usando la interfaz de usuario. He exportado la vista, pero no sé dónde colocarla para que una instalación del módulo en un entorno nuevo también cree la vista.

¿Cómo hago esto correctamente?

Bono: ¿cómo hago para que el módulo desinstale la vista hook_uninstall?

usuario1359
fuente
Para Drupal 8, consulte - drupal.stackexchange.com/questions/175313/…
iStryker

Respuestas:

10

Cree el archivo MODULENAME.views_default.inc (reemplace MODULENAME con el nombre de su módulo) y copie el código exportado en la implementación de lo hook_views_default_views()que escribe en ese archivo.

Por ejemplo, el módulo Vistas se implementa node_views_default_views()para el módulo Nodo. Las partes relevantes para la vista de la página principal son las siguientes.

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

El gancho luego devuelve el contenido de $views.

Si la vista no ha sido sobrescrita por un usuario, no debe mostrarse en la lista de vistas, una vez que se desinstala el módulo que implementa el enlace.

kiamlaluno
fuente
2
No olvide implementar hook_views_apien su archivo de módulo principal. Ver Vistas 3.8 hook_views_default_views () dejó de funcionar .
Thirdender