am 7. April 2009
Development Module
Grundsätzlich benötigt man zur professionellen Entwicklung von Modulen das Modul Devel, das hilfreiche Development Tools wie Cache Management, SQL Debugging oder einen Modul Reinstaller beinhalten. Das Modul Coder ist einem dabei behilflich die Coding Standards von Drupal einzuhalten.
Dokumentationen
Coding Standards: http://drupal.org/coding-standards
Aufsetzen einer Drupal Entwicklungsumgebung: http://drupal.org/node/147789
Drupal API: http://api.drupal.org
Module
Ein Modul besteht aus mindestens zwei Dateien, einer Datei, die den PHP Code beinhaltet (modulname.module) und einer Datei mit allgemeinen Informationen (modulname.info).
modulname.info
;$Id$;
Ist für den Drupal SVN Server notwendig
name = “Modulname“
description = “Modulbeschreibung“
;Drupalversion
core = 6.x
;PHP Version
;php = 5.1
;Wenn man seine Module gruppiert im Menü vorfinden möchte:
;package = “Packetname“
modulname.module
<?php
//$Id$
/**
*@file
*Description
*@see Hier können Variablen, Funktionen, Hyperlinks etc. stehen, die weitere
* Informationen zum Modul angeben
*/
#PHP Code
#hooks
?>
Was sind Hooks?
Hooks sind Funktionen, die von Drupal automatisch aufgerufen werden, wenn sie einem bestimmten Namen (modulename_hookname) entsprechen. Das im Core intergrierte Kommentarmodul beispielsweise beinhaltet die Funktion comment_user() . Wir könnten also in unserem eigenen Modul eine Funktion meinmodulname_user() implementieren und hier benutzerspezifische Abläufe definieren. Hooks werden oftmals auch Callback Funktionen genannt, sind aber eigentlich keine, da sie nur aufgrund der entsprechenden Namenskonvention und nicht durch einen Listener erstellt werden. Auf http://api.drupal.org/api/6 findet ihr alle Drupal Hooks. Wenn ihr euch für die Funktion interessieren solltet, die für den Hook Mechanismus verantwortlich ist, dann könnt ihr euch die Funktion module_invoke_all() in der Datei module.inc genauer ansehen.
Translation-Funktion
Wenn ihr euer Modul auch mehrsprachig nutzen wollt, dann solltet ihr alle Strings in die t() Funktion packen z.B.:
drupal_set_message(t('Your entry has been saved.'));
Jetzt kannst du über das System den String in eine andere Sprache übersetzen.
Datenbank
Müsst ihr für euer Modul Daten in der Datenbank speichern, benötigt ihr eine weitere Datei (modulname.install), welche die notwendigen Funktionen z.B. für die Erstellung einer neuen Tabelle beinhalten kann. Hier existieren ebenfalls hilfreiche Hook Funktionen (hook_install, hook_uninstall, hook_schema).