Ein eigenes Modul schreiben
Ein eigenes Modul zu schreiben ist nicht so schwer wie es sich anhört. Ein Modul besteht nur aus einem Ordner ("modulname") und mindestens 2 Dateien (modulname.info und modulname.module). Der Ordner wird im Verzeichnis sites/all/modules angelegt und hat den gleichen Namen wie die beiden Dateien.
Das hier verwendete Beispiel ist diesem Beitrag als ZIP-Datei zum download angehängt.
Die Datei modulname.info
Die Datei mit der Endung .info liefert die Informationen die auf der Modulübersicht im Backend ausgegeben werden. Dabei sind die Angaben "name", "description" und "core" erforderlich (6.x bedeutet dieses Modul ist für Drupal 6 gedacht).
; $Id:$
name = Modulname
description = Modul Beschreibung.
core = 6.x
Die Datei modulname.module
Die Datei mit der Endung .module beinhaltet den eigentlichen Modul Code. Der folgende Code ist das Grundgerüst. Er beinhaltet nur den PHP Start-Tag. Der Zusatz // $Id$ ist Drupal Coding Standard. Er kann theoretisch weggelassen werden. Wenn man sein Modul auf drupal.org veröffentlichen will ist er aber zwingend.
<?php
// $Id$Ein etwas funktionaleres Code-Gerüst beinhaltet einen Beispiel Hook
<?php
// $Id$
/**
* Implementation of hook_init().
*/
function modulname_init() {
// Der hook_init wird bei jedem Seitenaufruf ausgelöst. Hier kann man
// z.B. CSS oder JS Dateien einbinden.
drupal_add_js( drupal_get_path('module', 'modulname') .'/modulname.js', 'theme');
drupal_add_css( drupal_get_path('module', 'modulname') .'/modulname.css');
}Weitere sehr nützliche Hooks sind.
- hook_form_FORM_ID_alter
Um die Ausgabe eines bestimmten Formulars zu verändern. - hook_block
Um eigene Blöcke anzulegen. - hook_nodeapi
Um in Operationen rund um Nodes einzugreifen und diese zu verändern (z.B. save, update, delete, usw.). - hook_menu
Um eigene Menüeinträge, Seiten und Callbacks anzulegen.
Das unten aufgeführte Modul "Module Builder" gibt Hinweise, welche Hooks zur Verfügung stehen. Eine unverzichtbare Quelle für die Entwicklung ist auch die Drupal API.
Nützliche Links
- Module Builder
Dieses Modul hilf einem dabei ein Grundgerüst für ein eigenes Modul zu entwerfen. Es erzeugt die benötigten Dateien und füllt diese mit den per Checkbox ausgewählten Hooks. - Coder
Das Coder Modul prüft den Code von installierten Modulen und Themes auf Form (Coding Standards) und Fehler. - Examples for Developers
Dieses Modul ist eine Sammlung an hilfreichen funktionalen Beispielen. Ein einziges Tutorial sozusagen. - Devel
Das Devel Modul bietet einige handliche Funktionen die bei der Entwicklung von Modulen und Themes sehr hilfreich sind. z.B. die Funktiondpm()(dpm, dpr, dsm). Damit ist es dem Admin möglich sich Objekte und Arrays komfortabel ausgeben zu lassen. Zum Beispiel in einer node.tpl.php Template Dateidpm($node);
| Anhang | Größe |
|---|---|
| modulname.zip | 947 bytes |
