Drupal Modul für eigene Action

Ein eigenes Modul zur Erstellung eigener Actions ist nicht so schwer.

Eigene Actions in Drupal 7
Eigene Actions in Drupal 7

Oft stoßen wir an die Grenzen der Fähigkeiten von Drupal-Modulen, so dass nur noch über das Rules Modul die Probleme gelöst werden können. Doch was wenn die Programmierer anderer Module erst gar nicht die entsprechenden Actions deklariert haben? Dann wird es endlich Zeit, ein eigenes Modul zu schreiben.

Hier eine kurze Anleitung für Drupal 7.

 

1. Die Ordnerstruktur:

– site/all/modules/
mymodule/
—- mymodule.info
—- mymodule.module

2. Inhalt der Datei mymodule.info:

name = My Module
description = "My own Action"
package = Other
core = 7.x
dependencies[] = devel

3. Inhalt der Datei mymodule.module:

<?php
/**
 * @file
 * Demo Module that shows some basic module stuff
 * @date 2011
 * @author Michael Lambertz
 */
 
/**
 * implements hook_rules_action_info()
 */
function mymodule_rules_action_info()
{
  $action = array(
    'mymodule_action' => array(
      'label'	=> t('Demo Action'),
      'group' => t('My Module')
    )
  );
  return $action;
}
 
/**
 * demo action gets a debug output of some experimental content
 */
function mymodule_action()
{
  dpm("Hello World");
}
?>

4. Nun noch das Modul aktivieren und für die eigenen Zwecke anpassen.

Ich hoffe, das hilft einigen hier weiter.
Weitere Tipps zu Drupal Modul-Programmierung einfach hier in den Kommentaren posten…

2 Gedanken zu „Drupal Modul für eigene Action“

  1. Das Modul sieht sehr einfach aus zu programmieren. Ich habe es jetzt auch alles mal installiert.

    Dennoch stellt sich mir eine entscheidende Frage, die bisher nicht beleuchtet wurde (sorry, ich bin noch Drupal-Anfänger):

    Wie kann man das Modul starten bzw. wo kann man sich etwas anzeigen lassen um es zu testen?

  2. Man aktiviert es, wo man alle Modue aktiviert, d.h. unter „Module“. Cache abschalten ist ganz wichtig. Und dpm() ist natürlich nur ein Entwicklungsbefehl vom Modul Devel (Development Tools). Man kann hier auch jedes andere übliche PHP reinschreiben. Und dann halt die Action in Rules irgendwo ansteuern. Wie gesagt, mein Code war nur eine Art Boilerplate Code.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *