Wie erstelle ich ein leeres Modul? [geschlossen]

15

Was ist das grundlegendste gültige Modul, das man in Drupal erstellen kann?

Es wäre nützlich, eine einfache Blaupause zur Verfügung zu haben, für alle, die gerade erst mit Drupal anfangen.

Letharion
quelle

Antworten:

26

Die folgenden Anweisungen ermöglichen das Erstellen eines leeren Moduls und sind hilfreich für alle, die gerade erst mit der Modulerstellung beginnen. Wenn Sie Probleme haben, Ihr erstes Modul zum Laufen zu bringen, oder sogar in Drupal auftauchen, stellen Sie sicher, dass Sie alle Anweisungen unten gelesen haben.

Drupal 8

projectZumindest ein Muss

  1. Ein Computername.
  2. Eine nach dem Computernamen benannte Yaml- Info-Datei in der Form module-machine-name.info.ymlmit den folgenden Attributen:
    1. name: Ein für Menschen lesbarer Name
    2. type:Ein Typ, der definiert, dass er ein module.
    3. core:In 8.xdiesem Fall ist das Modul mit der Hauptversion von Drupal Core kompatibel .
  3. Eine leere Moduldatei, Name im Formular module-machine-name.module

Drupal sucht an folgenden Stellen nach Modulen, wie vom Webstamm aus gesehen:

  1. /modules/
  2. sites/[example.com]/modules
  3. sites/default/modules
  4. profiles/[install-profile]/modules

Technisch betrachtet sucht Drupal auch nach Modulen in core/modules, aber man sollte niemals Module dort platzieren, daher ist es nicht in der obigen Liste.

Eine beispielhafte Modulstruktur für ein Modul mit dem Computernamen helloworldsieht folgendermaßen aus:

/modules/helloworld/helloworld.info.yml

/modules/helloworld/helloworld.module

Beachten Sie, dass sowohl die Info- als auch die Moduldatei mit dem Namen des Computers identisch sind, was wichtig ist.

Die Moduldatei kann leer sein, die Infodatei muss jedoch einige Mindestwerte enthalten, damit Drupal sie als Modul erkennt. Für unser helloworld-Modul könnte das so aussehen:

name: 'Hello world module to demonstrate module building'
core: 8.x
type: module

Wenn Sie die obigen Anweisungen befolgen, sollten Sie in der Lage sein, ein neues Modul auf Ihrer Drupal-Site aufzulisten, obwohl es zu diesem Zeitpunkt noch nichts bringt.

Drupal 7

Ein Modul muss mindestens haben

  1. Ein Computername.
  2. Ein für Menschen lesbarer Name
  3. Eine nach dem Computernamen benannte Infodatei.
  4. Eine leere Moduldatei.

Um von Drupal geladen werden zu können, muss außerdem definiert werden, mit welcher Kernversion es kompatibel ist.

Weitere Drupal sucht nach Modulen in diesen Standorten:

  1. sites/all/modules/
  2. sites/[example.com]/modules
  3. sites/default/modules
  4. profiles/[install-profile]/modules

Technisch betrachtet sucht Drupal auch nach Modulen in modules, aber man sollte niemals Module dort platzieren, daher ist es nicht auf der Liste.

Eine beispielhafte Modulstruktur für ein Modul mit dem Computernamen helloworldsieht folgendermaßen aus:

sites/all/modules/helloworld/helloworld.info

sites/all/modules/helloworld/helloworld.module

Beachten Sie, dass sowohl die Info- als auch die Moduldatei mit dem Namen des Computers identisch sind, was wichtig ist.

Die Moduldatei kann leer sein, aber die Infodatei muss den lesbaren Namen des Moduls und die Kernversion enthalten, mit der das Modul kompatibel ist.

Für unser helloworld-Modul könnte das so aussehen:

name = Hello world module to demonstrate module building
core = 7.x

Wenn Sie die obigen Anweisungen befolgen, sollten Sie in der Lage sein, ein neues Modul auf Ihrer Drupal-Site aufzulisten, obwohl es zu diesem Zeitpunkt noch nichts bringt.

Letharion
quelle
und auch sites/default/... nur sagen ...
Tenken
Du hast vollkommen recht, hast es behoben. :) Was mich daran erinnert, dass ich die Bestellung überprüfen und sicherstellen sollte, dass sie korrekt ist.
Letharion
Für Drupal 8 benötigen Sie nur noch das Modul-Rechnername.info.yml. Für die .module-Datei ist kein aktiviertes Modul mehr erforderlich. Nicht, dass es sehr nützlich ist, aber es ist möglich :)
Undersound
1
D8: Modul- und Profildateien werden nicht mehr benötigt. drupal.org/node/2217931
sobi3ch
1
Drupal 8: Was ist mit drupal generate:module?
Screenack
8

Für Drupal 8 würde ich das Drupal Console- Projekt erwähnen, da in der Frage eine Blaupause erwähnt wurde .

Sobald dies installiert ist, kann man Modulcode (und andere Dinge wie Gerüste für benutzerdefinierte Entitäten, Plugins usw.) generieren.

Um ein Grundmodul aus der Befehlszeile zu erzeugen: drupal generate:module. Man wird dann aufgefordert, einige grundlegende Informationen zu sammeln, und erhält am Ende die Moduldateien:

Drupal-Konsolenmodul-Generation

jhedstrom
quelle