Wie kann ich mein Modul dazu bringen, eine Ansicht zu installieren?

8

Ich habe ein Modul in einer Entwicklungsumgebung entwickelt. Ich habe eine Ansicht dafür über die Benutzeroberfläche erstellt. Ich habe die Ansicht exportiert, weiß aber nicht, wo ich sie ablegen soll, damit bei einer Installation des Moduls in einer neuen Umgebung auch die Ansicht erstellt wird.

Wie mache ich das richtig?

Bonus: Wie kann ich das Modul dazu bringen, die Ansicht zu deinstallieren hook_uninstall?

user1359
quelle
Für Drupal 8 siehe - drupal.stackexchange.com/questions/175313/…
iStryker

Antworten:

10

Erstellen Sie die Datei MODULENAME.views_default.inc (ersetzen Sie MODULENAME durch den Namen Ihres Moduls) und kopieren Sie den exportierten Code in der Implementierung, in der hook_views_default_views()Sie in diese Datei schreiben.

Beispielsweise implementiert das Views-Modul node_views_default_views()für das Node-Modul. Die relevanten Teile für die Titelseitenansicht sind die folgenden.

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

Der Hook gibt dann den Inhalt von zurück $views.

Wenn die Ansicht nicht von einem Benutzer überschrieben wurde, sollte sie nicht in der Ansichtsliste angezeigt werden, sobald das Modul, das den Hook implementiert, deinstalliert wurde.

kiamlaluno
quelle
2
Vergessen Sie nicht, hook_views_apiin Ihrer Hauptmoduldatei zu implementieren . Siehe Ansichten 3.8. Hook_views_default_views () funktioniert nicht mehr .
Thirdender