Was ist die Grundstruktur für ein Drupal 7-Modul?


14

Welche Dateien sind zum Erstellen eines Drupal 7-Moduls erforderlich? Was sind die Voraussetzungen für die Erstellung einer grundlegenden INFO-Datei? Der Kern dieser Frage besteht darin, ein Grundgerüst für das Erstellen eines grundlegenden Drupal 7-Moduls von Grund auf neu bereitzustellen.


Wenn Sie die Frage abgelehnt haben, geben Sie bitte einen Grund an, damit sie beantwortet werden kann.
Lester Peabody

Antworten:


13

Minimale Dateien benötigt:

Normalerweise werden für ein Modul mindestens folgende Dateien benötigt:

sites / all / modules / {Name deines Moduls}

  • {your module}.info
  • {your module}.module

Oder nutzen Sie das Beispielmodul:

Das Beispielmodul auf drupal.org bietet Ihnen Grundmodule für die Entwicklung von benutzerdefinierten / Contrib-Modulen. Verwenden Sie dies einfach, um Ihre Module zu kopieren und zu erstellen.

Schauen Sie sich die Projektseite an :

Ziel dieses Projekts ist es, qualitativ hochwertige, gut dokumentierte API-Beispiele für eine breite Palette von Drupal-Kernfunktionen bereitzustellen.

(Interessiert an anderen, nicht zum Kern gehörenden Beispielen?)

Entwickler können lernen, wie eine bestimmte API schnell verwendet wird, indem sie mit den Beispielen experimentieren und sie für ihren eigenen Gebrauch anpassen.

Link zum Git-Repository: http://drupalcode.org/project/examples.git/tree/refs/heads/7.x-1.x

Code aus dem Beispielmodul:

Ich habe auch gerade den Code eingefügt, den Sie aus dem Beispielmodul erhalten können.

example.info Datei:

name = Examples For Developers
description = A variety of example code for you to learn from and hack upon.
package = Example modules
core = 7.x

example.module Datei:

<?php

/**
 * @file
 * This file serves as a stub file for the many Examples modules in the
 * @link http://drupal.org/project/examples Examples for Developers Project @endlink
 * which you can download and experiment with.
 *
 * One might say that examples.module is an example of documentation. However,
 * note that the example submodules define many doxygen groups, which may or
 * may not be a good strategy for other modules.
 */

/**
 * @defgroup examples Examples
 * @{
 * Well-documented API examples for a broad range of Drupal 7 core functionality.
 *
 * Developers can learn how to use a particular API quickly by experimenting
 * with the examples, and adapt them for their own use.
 *
 * Download the Examples for Developers Project (and participate with
 * submissions, bug reports, patches, and documentation) at
 * http://drupal.org/project/examples
 */

/**
 * Implements hook_help().
 */
function examples_help($path, $arg) {
  // re: http://drupal.org/node/767204
  // 5. We need a master group (Examples) that will be in a main
  // examples.module.
  // The examples.module should be mostly doxy comments that point to the other
  // examples.  It will also have a hook_help() explaining its purpose and how
  // to access the other examples.
}

/**
 * @} End of 'defgroup examples'.
 */

8

1) Legen Sie einen Namen für das Modul fest (zum Beispiel: mymodule).

2) Erstellen Sie einen Ordner in sites / all / modules mit dem Namen Ihres Moduls.

3) innerhalb des Ordners eine mymodule.module Datei mit einer Öffnung php tag (Erstellen <?php) - dem schließenden Tag ( ?>) sollte verzichtet werden.

4) Erstellen Sie eine mymodule.info-Datei (im Ordner Ihres Moduls) mit den folgenden 3 Zeilen:

 name = Mymodule
 description = Description for the module
 core = 7.x

Mit dieser Menge haben Sie bereits ein Drupal 7-Modul, das Sie über die GUI aktivieren können (es macht nichts, solange Sie keine Funktionen / Code in der Datei mymodule.module hinzugefügt haben). Beachten Sie, dass alle hier verwendeten mymodule-Instanzen durch den Namen Ihres tatsächlichen Moduls ersetzt werden sollten und 'Beschreibung für das Modul' eine korrekte Beschreibung sein sollte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.