Drupal-Modul erstellen – schneller Einstieg
Wir beginnen mit api.drupal.org, öffnet die Seite des Hooks hook_node_presave(), der vor dem Speichern eines Nodes ausgelöst wird.
http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_validate/7
Hooks ermöglichen es uns, unseren Code in den normalen Ablauf von Drupal einzubinden, Prüfungen hinzuzufügen, Datenfelder, Formularelemente usw.
Wir legen unser Modul im Ordner sites/all/modules an:
sites/all/modules/custom/ sites/all/modules/custom/custom.info sites/all/modules/custom/custom.module
In der Datei custom.info schreiben wir:
name = Custom description = Custom core = 7.x
In der Datei custom.module prüfen wir, ob das Body-Feld Inhalt hat. Ist es leer, geben wir einen Fehler aus (obwohl man das auch in der Drupal-Admin-Oberfläche als Pflichtfeld einstellen könnte, aber...):
custom.module
<?php function custom_node_validate($node){ if (empty($node->body['und'][0]['value'])) { form_set_error('node-body', 'Body is empty'); // Fehler ausgeben und Node nicht speichern } }
In unserem Fall ist die Sprache auf der Seite nur eine, und zwar 'und' (undefined, undefiniert). Wir prüfen also das erste Textarea-Feld von body (es können mehrere Textareas für Felder eingestellt werden).
Nutze das Modul devel und dessen Funktion dsm(), um Objekte oder Arrays als Meldung auf dem Bildschirm auszugeben:
<?php function custom_node_view($node){ dsm($node); }