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.
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.
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.
Dieses Include verarbeitet die Sprachdateien und wird ebenso im Include appconf.inc und in Ihrem Script benötigt.
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.
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.
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.