comment obtenir mon module pour installer une vue?

8

J'ai développé un module dans un environnement de développement. J'ai construit une vue pour cela en utilisant l'interface utilisateur. J'ai exporté la vue, mais je ne sais pas où la placer pour qu'une installation du module dans un nouvel environnement crée également la vue.

Comment dois-je procéder correctement?

Bonus: comment dois-je faire pour désinstaller la vue du module hook_uninstall?

user1359
la source
Pour Drupal 8, voir - drupal.stackexchange.com/questions/175313/…
iStryker

Réponses:

10

Créez le fichier MODULENAME.views_default.inc (remplacez MODULENAME par le nom de votre module) et copiez le code exporté dans l'implémentation de hook_views_default_views()vous écrivez dans ce fichier.

Par exemple, le module Vues implémente node_views_default_views()le module Node. Les parties pertinentes pour la vue de première page sont les suivantes.

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

Le hook renvoie ensuite le contenu de $views.

Si la vue n'a pas été écrasée par un utilisateur, elle ne doit pas apparaître dans la liste des vues, une fois le module implémentant le hook désinstallé.

kiamlaluno
la source
2
N'oubliez pas d'implémenter hook_views_apidans votre fichier module principal. Voir Views 3.8 hook_views_default_views () a cessé de fonctionner .
Thirdender