drupal modul entwicklung

Ein eigenes Drupal 7 Modul schreiben.

Im heutigen Blog gibt es ein kurzes Tutorial zum Thema: " Drupal Modul Entwicklung". Drupal bietet mit über 22.000 Modulen jede Menge an Werkzeugen und Erweiterungen. Die meisten Aufgaben kann man bequem über das User Interface erledigen, manchmal muss man jedoch auch auf eigene Module zurückgreifen, um das Projekt mit der ein oder anderen Funktionalität zu erweitern.

Ein Drupal Modul besteht immer aus einem Verzeichnis (mymodule) und mindestens 2 Dateien (mymodule.info und mymodule.module) . ACHTUNG: Der Name darf nur aus kleinbuchstaben und Underscores (_) bestehen.

Wir legen uns also das Verzeichnis mit dem Namen: mymodule und die 2 Dateien: mymodule.info und mymodule.module an.

In die mymodule.info wird folgendes geschrieben:
 

name = Mein erstes Drupal Modul
description = "Das ist die Beschreibung zu meinem Modul"
core = 7.x

Um das Modul für die Modulübersicht zu gruppieren, gibt es das package Attribut. Wenn nichts angegeben wird, findet man sein Modul unter „Other“ wieder.

package = "geek stuff" 

Es gibt noch weitere Attribute, die jedoch für dieses Modul nicht benötigt werden und sind auf drupal.org bestens dokumentiert.

Das Modul ist jetzt in der Verwaltungsoberfläche: "/admin/modules " schon sichtbar.

Drupal stellt eine äusserst umfangreiche API bereit. Es gibt viele System-Funktionen und sogenannte Hooks, die die Entwicklung von Modulen effizient und flexibel gestalten. Unter http://api.drupal.org findet man eine Referenz.

Im nächsten Schritt widmen wir uns der mymodule.module. Mit hook_menu legen wir uns über unser Modul eine neue Seite an, registrieren einen pfad und setzen einen link. Der page callback bestimmt, welche Funktion beim Aufruf der Seite den Inhalt liefert.
hook_menu

<?php /** *Implement hook_menu */
function mymodule_menu() {
$items = array();
$items['mymodule'] = array(
'title' => 'Ich erstelle eine neue Seite',
'page callback' => 'menu_mymodule',
'access callback' => TRUE,
'access arguments' => array('access content'),
'type' =>MENU_NORMAL_ITEM,
 );
return $items; }

Jetzt definieren wir den Inhalt, der ausgegeben werden soll über unseren "page callback"

function menu_mymodule() {
$content = array();
$content['raw_markup'] = array(
'#type' => 'markup',
'#markup' => 'Das ist einfacher Text',
'#prefix' =>'<p>',
'#suffix' => '</p>',
);
return $content;
}

Jetzt nur noch den Cache leeren und das Modul aktivieren. Wenn alles geklappt hat, steht nun der Menüeintrag in der Navigation und die Seite ist über: "deinedomain/mymodule" aufzurufen.

2 Kommentare

Bild des Benutzers Gast
Mo, 11/03/2014 - 12:54
Gast
Ist super geworden. Hab es ausprobiert und auf anhieb geklappt. Was ich mir noch evtl. wünschen würde, dass auf die einzelne Begriffe explizit eingegangen wird. Was heißt zum Beispiel 'page callback' => 'menu_mymodule', 'access callback' => TRUE, 'access arguments' und welche Optionen es beim 'type' =>MENU_NORMAL_ITEM gibt.
Bild des Benutzers joe
Sa, 11/15/2014 - 16:48
joe
Vielen dank für dein feedback. Es freut mich das es bei dir geklappt hat. Wenn ich dazu komme, werde ich demnächst auch auf diese Fragen eingehen und das Tutorial erweitern.