next up previous contents index
Next: Zusammensetzung des Parameter-Array $modul_param Up: DB-Table-Submodule Previous: DB-Table-Submodule

Einleitung

In einem Workflow-Schritt können Inhalte einer Datenbank dargestellt und darüber hinaus Datenmanipulationen vorgenommen werden. Dazu sollen in den Modul-Skripten die Funktionen 'modul_tabelle' und 'modul_tabelle_list' verwendet werden, die von der Library 'lib_dbtable.inc.php' zur Verfügung gestellt werden. Die Bibliothek 'lib_dbtable' greift ihrerseits auf verschiedene andere Bibliotheken zurück, wobei zwei hervorzuheben sind:

Die Library 'lib_dbtable.inc.php' stellt dabei das Verbindungsglied dar. Sie extrahiert Daten aus der Datenbank, stellt diese Daten sinnvoll dar, bietet Interaktionsmöglichkeiten zur Datenmanipulation und führt diese Datenmanipulationen schließlich durch. Die Aufgaben im einzelnen:

Für die Darstellung und Datenmanipulation verwendet die Library Default-Werte, die in den Modul-Skripten jedoch angepasst werden können. Die Darstellungsparameter, die Parameter für DB-Queries und die Parameter für die zu unterstützenden Aktionen werden alle in einem großen Array $modul_param zusammengefasst. Dieses Array wird der Funktion 'modul_tabelle ($modul_param)' übergeben.

In einem Modul-Skript können durchaus mehrere DB-Table-Submodule enthalten sein. Dabei sind aber eventuelle Datenabhängigkeiten zwischen den Submodulen zu berücksichtigen. Zum Verständnis stelle man sich folgendes Beispiel-Modul vor: Zuerst werden in einer Tabelle, die einer bestimmten Veranstaltung zugeordneten Mitarbeiter dargestellt. Darunter werden alle verfügbaren - auch die nicht zugeteilten - Mitarbeiter des Lehrstuhls ausgegeben, um gegebenenfalls einen weiteren Mitarbeiter der Veranstaltung zuweisen zu können. Die beiden Mitarbeitertabellen werden durch zwei getrennte Aufrufe der Funktion 'modul_tabelle ($modul_param)' erzeugt. Angenommen die Tabelle mit allen Mitarbeitern bietet die Möglichkeit die Namen der Mitarbeiter zu ändern, um z. B. einen Schreibfehler auszubessern. Der Mitarbeiter Maier, der auch der Veranstaltung zugeteilt ist - also in beiden Tabellen auftaucht - schreibt sich korrekt Mair. Die Datenänderung wird in der unteren Tabelle vorgenommen. Nach der Bestätigung wird die HTML-Seite mit dem Modul und den beiden Tabellen neu aufgebaut. Die Datenänderung geschieht erst beim Aufbau der zweiten Tabelle, also mit dem zweiten Aufruf von 'modul_tabelle ($modul_param)'. Die erste Tabelle weiß deshalb von der Datenänderung noch nichts, und der Name erscheint dort nach wie vor in der falschen Schreibweise. Um dieses Problem zu umgehen bietet die Funktion ein zweites Argument: 'modul_tabelle ($modul_param, $update_only)'. Wird in $update_only 'true' übergeben (Standardwert: 'false'), werden nur die Datenmanipulationen auf der Datenbank durchgeführt, es erfolgt aber keine HTML-Ausgabe. Um das Problem zu umgehen, würde man die Funktion 'modul_tabelle ($modul_param, $update_only)' dreimal aufrufen:

1.
Aufruf für die zweite Tabelle ohne HTML-Ausgabe ($update_only=true).
2.
Aufruf für die erste Tabelle mit HTML-Ausgabe ($update_only=false).
3.
Erneuter Aufruf für die zweite Tabelle diesmal mit HTML-Ausgabe ($update_only=false).
Zur Vereinfachung kann auch die Funktion 'modul_tabelle_list ($modul_param1, $modul_param2, ...)' verwendet werden. Dieser Funktion können in einer variablen Argumentliste die Parameter-Arrays für jedes DB-Table-Submodul übergeben werden. Die Funktion ruft ihrerseits für jedes Submodul modul_param zweimal auf - einmal zum Update der Datenbank und einmal für die HTML-Ausgabe.


next up previous contents index
Next: Zusammensetzung des Parameter-Array $modul_param Up: DB-Table-Submodule Previous: DB-Table-Submodule
Copyright Munich Network Management Team