Wozu dient die Datei container.inc?
Zurück | Kapitel 18. Erstellen eigener moregroupware Module | Weiter

## Wozu dient die Datei container.inc?

Die Datei container.inc ist eine Sammlung von anderen Includes. Alle Includes werden in dieser Datei zusammengefasst. Alle darin enthaltenen Dateien beinhalte keine weiteren Includes. So existieren nur 2 Stufen von Includes: Die Datei container.inc und alle darin enthaltenen Includes. Unten der Inhalt der Datei container.inc:

    <?php
          /* $Id: coding_addmodule.xml,v 1.6 2003/11/01 21:41:06 emailtotom Exp $ */

          require_once(SMARTY_DIR . "Smarty.class.php");

          // definition of moregroupware class, holding application vars
          include(INCLUDEPATH . 'mgw.class.inc');

          // functions for translation
          include(INCLUDEPATH . 'lang.inc');

          // array for tracking file revision number used in sql error report screen
          $Revisions_array = Array();

          // important functions like connect to database
          include(INCLUDEPATH . 'userfunc.inc');

          // definition of moregroupware version and label
          include(INCLUDEPATH . 'version.inc');

          // Auto-Assigns for template engine and global definitions
          include(INCLUDEPATH . 'appconfig.inc');

          // include module specific functions if present (they are now in module/inc)
          // must be named module_func.inc.php (i.e. calendar_func.inc.php)
          if(file_exists(ROOTPATH . "/modules/" . $myEnv["module"]. "/inc/" . $myEnv["module"] . "_func.inc.php")) {
          include(ROOTPATH . "/modules/" . $myEnv["module"] . "/inc/" . $myEnv["module"] . "_func.inc.php");
          }

          // help system
          if(file_exists(ROOTPATH."/modules/".$myEnv["module"]."/help/index.".$MGW->spkz.".html")) $smarty->assign("helpurl", $myEnv["module"]."/help/index.".$MGW->spkz.".html");
          elseif(file_exists(ROOTPATH."/modules/".$myEnv["module"]."/help/index.en.html")) $smarty->assign("helpurl", $myEnv["module"]."/help/index.en.html");
          elseif(file_exists(ROOTPATH."/modules/general/help/index.".$MGW->spkz.".html")) $smarty->assign("helpurl","general/help/nohelp.".$MGW->spkz.".html");
          else $smarty->assign("helpurl","general/help/nohelp.en.html");

          // include module autoexecution of several things like translation, authentication, and more
          include(INCLUDEPATH . 'module_exec.inc');
          ?>

Im nächsten Abschnitt werden die Includes näher erklärt.

### require_once(SMARTY_DIR . "Smarty.class.php");

Diese Zeile ladet die Klassen von Smarty, die auch von anderen Includes (z.B: appconf.inc) und den Benutzerscripts verwendet werden. Ohne dieser Zeile kann eine Ausgabe gemacht werden.

### include(INCLUDEPATH .'mgw.class.inc');

Die MGW Klasse ist in der Session in Form eines Objekts gespeichert. Dieses Objekt enthält entsprechende Daten wie Sprachcode, Benutzername oder Benutzerrechte. Über dieses Objekt werden verschiedenste Abfragen gemacht, ohne auf die Datenbank zurückzugreifen. Eine nähere Beschreibung erfolgt später, weil diese Klasse sehr wichtig für Ihr Modul ist.

### include(INCLUDEPATH .'lang.inc');

Dieses Include verarbeitet die Sprachdateien und wird ebenso im Include appconf.inc und in Ihrem Script benötigt.

### include(INCLUDEPATH .'userfunc.inc');

An diesem Ort werden nützliche, systemweite Funktionen gespeichert. Diese Funktionen können in jedem Modul brauchbar sein. Platzieren Sie keine Funktionen für Aufgaben Ihres Moduls darin.

### include(INCLUDEPATH .'version.inc');

Im einfachsten Include werden nur die Releasenummer und der Name des Produkts gespeichert, die an verschiedenen Plätzen in moregroupware angezeicht werden, z.B. in der Statusleiste.

### include(INCLUDEPATH .'appconfig.inc');

Dies ist das komplexeste Include, es erledigt eine Menge von Funktionen, anschließend eine Liste, die für Programmierer interessant ist:

- Erstellung der Variable $appconf["gentemplates"], die zum allgemeinen Vorlagenverzeichnis (general/templates/html) zeigt. Sie wird zum Einbinden von HTML Teilen aus dem allgemeinen Ordner anstatt der Vorlagen aus dem Modulverzeichnis. In der Vorlage selbst können Sie diese Variable mit {$gentemplates} ansprechen.

- Erstellung der Variable $appconf["imgpath"] und $appconf["imgpathgeneral"], die den Pfad zum Bilderverzeichnis ("media") des Moduls oder des allgemeinen Bilderverzeichnis enthält. Sie werden diese Variable in der Vorlage benötigen und können Sie mit {$imgpath} und {$imgpathgeneral} ansprechen.

- Erstellung des $smarty Objekts, das die Ausgabe Ihres Moduls übernimmt. Sie werden Methoden wie $smarty->assign(), $smarty->append() oder $smarty->display() benötigen.

- Die Session wird in diesem Include gestartet.

- Folgende Variablen werden automatisch erstellt und können direkt in der Vorlage angesprochen werden: {$PHPSESSID} (akutelle Session des Benutzers), {$rooturl}, {$username}, {$userfullname}, {$phpself}, {$gwversion}, {$gwtitle}. Wenn Sie die Bedeutung nicht genau kennen, fügen Sie die Variable einfach in eine Vorlage ein und warten auf das Ergebnis.

- Erstellung der Menüleiste.

### include(INCLUDE .'module_exec.inc');

Das Modul module_exec ist das einzige Include, das Sie von außen ansteuern können. Die Operationen im Modul können durch Variablen beeinflußt werden. Lesen Sie dazu mehr im nächsten Abschnitt.

Zurück | Nach oben | Weiter
Wozu dient die Datei config.inc.php | Zum Anfang | Spezielle Eigenschaften von module_exec.inc