Skip to Content

Drupal

Seit dem 01.04.2008 beschäftige ich mich mit Drupal, Version 5.7. Auf diesen Seiten werden meine Erfahrungen und Projekte protokolliert.
Für einen Drupal-Anfänger ist das System nicht unbedingt einfach zu verstehen. Standardfunktionen sind ausreichend gut beschrieben, aber was über die Standard-Konfiguration hinausgeht ist in Teilen problematisch.

Drupal 6 - Neues Statistik-Modul accesslog_statistics

!! BETA-VERSION !!
Hierbei handelt es sich um eine Erweiterung für das vorhandene Statistik-Modul. Die Seite soll einen schnellen Überblick über die einzelnen Bereiche einer Website geben. Weiterhin besteht die Möglichkeit die Ergebnisse als Excel-File herunterzuladen. Der Download wurde vom mir mit Open-Office Calc (2.4), MS Excel (2003) und MS Excel (2007) getestet. In Excel 2007 kommt es momentan noch zu einer Meldung in der man die Vertrauenswürdigkeit bestätigen muss, funktioniert aber tadellos.

Debugging mit Drupal

Hier sollten die erfahrenen Drupalbenutzer drüberweglesen, aber für einen unerfahrenen Entwickler ist es in Drupal etwas schwerer ein Debugging zu machen. In PHP wird oft ein print_r($array); benutzt um Daten auszulesen. In Drupal funktioniert das nicht so einfach. Dafür gibt es das Debugging-Tool DEVEL. Dieses bietet eine Fülle an Möglichkeiten, dazu aber später.

Arbeiten mit dem User-Objekt

Für dynamische Anwendungen ist es unumgänglich spezielle Bereiche nur bestimmten Usern zugänglich zumachen. Hierfür muss ein User identifiziert und ggf. auch einer bestimmten Rolle zugewiesen werden. Drupal bietet einen komfortablen Registrierungs- und Loginprozess. Um mit diesen Daten zu arbeiten dient das User-Objekt. Auf den nächsten Seiten soll eine, in PHP, geschriebene Anwendung in Drupal imlementiert werden. Bei der Anwendung handelt es sich um ein Anwesenheitsmanagementsystem (Arbeitszeiterfassung).

Ergebnisse aus der Datenbank auslesen

Anhand eines Beispiels zur Einbindung einer externen Mitarbeiterdatenbank, soll das deutlich gemacht werden.

Wechseln zu einer externen Datenbank

Um die Inhalte von Drupal und externen Anwendungen getrennt zu halten bietet es sich an verschiedene Datenbanken zu nutzen. Der Zugriff auf die externe Datentank kann auch über das Drupal-eigene Datenbankscript erfolgen. Hierfür ist es es erforderlich Drupal die Zugangsdaten mitzuteilen und die Datenbank dann jeweils umzuschalten. Die Einbindung der externen Datenbank ist auch im Script ./sites/default/settings.php niedergelegt.
// Orginaldatenbank
$db_url['default'] = 'mysql://user:password@localhost/drupal_db';
// externe Datenbank
//$db_url['externe_db'] = 'mysql://user:password@localhost/externe_db';

Seiten mit Tab's

Eine besondere Form des Menüs sind Seiten mit Tabs. Tabs können in zwei Varianten erstellt werden; einmal als Reiter und einmal als Link-Unterpunkte.

(Zur besseren Sichtbarkeit wurde das Themes gewechselt) Hier erst einmal der Code:

Hinzufügen einer Einverständniserklärung bei der Standardregistrierung

Anhand des Beispiels soll beispielhaft erkärt werden wie über hook_user($op, &$edit, &$account, $category = NULL) Veränderungen an einem Formular vorgenommen werden können. Hierfür wird ein eigenes Modul erzeugt: Die Datei /site/all/einverstaendniserklaerung/einverstaendniserklaerung.info

Das Menü-System

Den Hook hook_menu() als reines Menü-System zu bezeichnen trifft es nicht genau. Das hook_menu() ist einiges mehr. Jedes Script braucht einen Punkt über den es aufgerufen werden kann. Dies wird über das hook_menu() erreicht. Zudem wird hier auch festgelegt welche Funktion, im eigenen Script, die Antwort auf einen Request der Seite zurückgibt. Weiter können die Berechtigungen festgelegt werden, die es erlauben bestimmte Funktionen bzw. Menüpunkte aufzurufen.

Formularelemente 2 von2

Textfield
Fieldset
Submit
Das Textfield
Das am Häufigsten benötigte Elemen ist wohl das "textfield". Die Definition ist einfach:
$form['dein_vorname'] = array
(
'#title' => t('Dein Vorname'),
'#type' => 'textfield',
'#description' => t('Hier gib bitte deinen Vornamen ein')
);

Inhalt abgleichen