Entwicklung - Module & Co.

Durch den modularen Aufbau von Drupal lässt sich quasi jeder Anwendungsbereich programmieren, soweit es nicht schon eine Umsetzung unter den tausenden Modulen auf drupal.org/project/modules gibt.
Bei der Programmierung ist hierbei vor allem PHP gefragt. Jedoch wird auch in einigen Bereichen JavaScript und der Umgang mit AHAH/AJAX nötig. Im Theming-Bereich sind HTML und CSS natürlich unabdingbar.

Nachfolgend sind ein paar Module gelistet, die entweder zur Vorschau, als Entwicklungs- oder Testversion von mir gepostet wurden, oder bereits ihren Platz auf drupal.org als Projekt gefunden haben.

Meine offiziellen Projekte sind für angemeldete Nutzer von drupal.org unter drupal.org/project/user/83474 zu finden.

Zur Entwicklung von Modulen nutze ich zudem github.com/derhasi, wo u.a. ein experimenteller Ansatz für Annotations oder eine Statistik API zu finden ist.

CCK GMap Address (D5)

Das Modul CCK GMap Address ist ein contributed module auf http://drupal.org/project/cck_gmapaddress. Es stellt ein CCK-Feld zur Verfügung, dass mit einer einfachen einzeiligen Addresseingabe eine GoogleMap für den entsprechenden Inhalt erzeugt. Es wartet zudem mit einigen Einstellungsmöglichkeiten zur Anzeige (z.B. verschiedene Größen und Kartenarten in Views und Teaser) auf. Zudem ist ein Fetch-Modul integriert, das die Daten auch aus einem anderen Feld des gleichen Nodes holen kann, und somit bestehende Inhalte erweitert. Durch einen Generator können u.a. per Cron diese Daten nachholend erzeugt werden.

Zum Einsatz kommt das Modul z.B auf zugspitzpokal.de und danishdaughters.de.

Eine Portierung auf D6 wird nicht mehr offiziel geschehen, da mittlerweile Location und GMap mit eigenen CCK-Feldern aufwarten.

==> drupal.org/project/cck_gmapaddress

CCK NodeMenu (D5)

CCK NodeMenu ist ebenfalls auf drupal.org zu finden.

Es bietet die Möglichkeit zu jedem Node ein Individuelles Menü in einen Block zu packen, das mit gewissen Vorgaben vom User in ein Textfeld eingegeben oder von einem Computed Field generiert wird.

Wenn Interesse besteht, kann auch eine Portierung auf Drupal 6 erfolgen.

=> drupal.org/project/cck_nodemenu

CCK Validation (D5)

CCK Validation ist ebenfalls auf drupal.org zu finden. Es bietet dem Administrator seinem Inhaltstyp zusätzlich Felder zur Inhaltsvalidierung hinzuzufügen. U.a. mit eigenem PHP-Code lassen sich so bestehende Valdierungen erweitern oder neue Valdierungsmöglichkeiten erzeugen.

Das Modul ist offiziell für D5 geschrieben, scheint jedoch laut http://drupal.org/node/338266 auch mit einer abgeänderten .info für Drupal 6 zu laufen.
Eine Portierung auf D6 wird allerdings vorraussichtlich nicht geschehen.

==> http://drupal.org/project/cck_validation

Firep Hold (D6)

Der Nachfolger dieses Moduls ist mittlerweile als WatchBug auf drupal.org/project/watchbug zu finden!

Zur Entwicklung habe ich die letzten Wochen ein kleines eigenes Modul genutzt, das die Funktionalitäten von DrupalForFirebug und Devel aufgreift und erweitert.

Notwendig wurde dies, um Variablen zum Debugging abzugreifen, die in Prozessen generiert werden, die nicht Teil des Standardladeprozesses für eine Seitenansicht sind, z.B. AJAX-Anfragen oder HTTP-Requests.

Aus diesem Grund habe ich in Anlehnung an firep von DrupalForFirebug eine Funktion firep_hold geschrieben, die das benötigte Element zwischenspeichert. Über den VariablenEditor von Devel oder admin/firep_hold lässt sich diese Variable dann betrachten. Als Anzeige dienen hierbei das Devel-Object (wie in node/%/render) oder das FireBug Panel von DrupalForFirebug.

Zusätzliche Features:

  • Erweiterung des devel-Variableneditors mit der Devel-Object-Anzeige
  • Top Level Admin Menu Link zum schnellen Zugriff auf die Firep Hold Variable
  • firep_hold_clear() und Menülink zum leeren der aktuellen Variable
  • admin/firep_hold/% stellt auch alle anderen Variablen aus {variables} dar

Firep_hold

function firep_hold($element,$title=NULL)

  • $element - object, array, string, integer,... der als Variable zwischengespeichert werden soll
  • $title - Ist ein Title angegeben, wird nur der Schlüssel $title der Variablen durch $element ersetzt. Der Rest der Variablen bleibt bestehen.

Im Anhang gibt es eine aktuelle TestVersion, die auch den Drupal CodingStandards entsprechen sollte.

AnhangGröße
firep_hold.zip (Version vom 08.04.2009 - (2))9.13 KB

NodeRefAdd (D5)

noderefadd1_kl.jpgDiese kleine Modul stellt einen Block zur Verfügung, der es Usern ermöglicht zu fremden Inhalten NodeReferenzen hinzuzufügen. Im Einsatz ist das Modul auf zugspitzpokal.de, wo hierdurch berechtigten Besuchern ermöglicht wird Personen auf fremden Bildern zu verlinken.


Eine EntwicklungsVersion findet ihr im Anhang.

AnhangGröße
noderefadd.zip1.76 KB