CMSmodule

Sehr “alpha” im Moment (28.12.2006).

API

Ein kleines Beispiel, wie ich mir das denke, ist das Modul under_construction.

An die Funktionen wird keinerlei Request-String übergeben. Die einzelnen Funktionen sollten $_REQUEST selbst auslesen.

generateContent($type)

$type ist eine der möglichen Arten des Contents, definiert durch die entsprechenden Konstanten. Die Funktion muß von einem Modul überschrieben werden. Wenn das Modul keinen Content erzeugt sollte eine Fehlermeldung kommen (die (”irgendwas”)). Wird aufgerufen mit unterschiedlichen Werten, die aussagen, was grade verlangt wird. Diese Funktion schreibt direkt, sollte also print- oder echo-Anweisungen enthalten.

generateAdminContent()

Diese Funktion liefert den Inhalt für das entsprechende Modul im Admin-Bereich zurück. Sie muß von einem Modul überschrieben werden.

xajaxSettings(&$CMSxajax)

Diese Funktion wird aufgerufen, bevor die entsprechende Admin-Seite erstellt wird. Dient dazu, xajax-Anweisungen zu übermitteln. Da die Hauptklasse eine Möglichkeit bietet, xajax einzubetten, sollte das genutzt werden und der Parametername $CMSxajax sollte verwendet werden. Eine typische Verwendung ist:

function xajaxSettings( &$CMSxajax ){
    global $CMS_DIRECTORIES;
    
    $CMSxajax->setRequestURI("../".$CMS_DIRECTORIES['modules']."/mein_modul/xajax.request.php");
 
    if (file_exists("../".$CMS_DIRECTORIES['modules']."/mein_modul/xajax.request.php")){
 
	require_once "../".$CMS_DIRECTORIES['modules']."/mein_modul/xajax.request.php";
 
    } else {
	    
	die ("xajax-File for module is missing!");
    }
}

Wenn ein Modul diese Funktion nicht überschreibt setzt diese Funktion $CMSxajax auf null und es wird kein xajax verwendet.

final protected setModuleName(string $moduleName)

Setzt den Klartext-Namen des Moduls.

final protected setIconPath(string $path)

Setzt den Pfad zu einem Icon, was für das Modul im Admin-Bereich angezeigt wird. Wenn das nicht vorhanden ist (oder auf ““ gesetzt wird, wird eine default-Grafik angezeigt).

final protected setKindOfContent (int $kind)

Setzt die Art des Inhalts, den das Modul erzeugt. Sollte eine der entsprechenden Konstanten sein. (hier ist noch lange nicht alles fertig...)

final protected setDescription (string $desc)

Setzt eine ausführlichere Beschreibung des Moduls. Wird momentan im title-Tag im Admin-Bereich untergebracht, besser wäre es in einem Info-Feld. Sowas kommt später...

final public getModuleName()

Liefert den Klartext-Modulnamen.

final public getKindOfContent()

Gibt die Art des Inhalts zurück.

final public getDescription()

Liefert die beschreibung des Moduls.

final public getIconPath()

Liefert den Pfad zum Icon des Moduls.

Quelltext

<?php
/**
 * Diese Klasse bildet die Grundklasse für alle Module
 */
 
 
 
abstract class CMSmodule {
 
    /**
     * Diese Variable speichert den Namen des Moduls. 
     * @var string
     */
 
    private $_moduleName;
 
 
    /**
     * Diese Variable speichert, ob das Modul Inhalt (1) erzeugt oder nur in einer Sidebar aufgerufen wird (2), oder ob es beides kann (3).
     * Dazu gibt es die drei Konstanten
     *
     * MODULE_CONTENT_ONLY
     * MODULES_SIDEBAR_ONLY
     * MODULES_CONTENT_AND_SIDEBAR
     *
     * @var integer
     */
    
    private $_kindOfContent;
 
    /**
     * Diese Variable speichert den Pfad zu einem Icon, dass im Admin-bereich angezeigt wird.
     *
     * @var string
     */
 
    private $_iconPath;
 
 
    /**
     * Diese Funktion erzeugt den Inhalt der Datei. Sollte von der Modul-Klasse überschrieben werden.
     *    
     *
     * @params Art des Inhalts
     * @return string
     */
 
    private $_description;
 
 
 
    abstract public function generateContent ($type);
    abstract public function generateAdminContent ();
 
    public function xajaxSettings(&$obj){ $obj = null; }
 
 
    final protected function setIconPath ($path){
	$this->_iconPath = $path;
    }
 
    final public function getIconPath (){
	return $this->_iconPath;
    }
 
    final protected function setModuleName ($name){
	$this->_moduleName = $name;
    }
 
    final public function getModuleName (){
	return $this->_moduleName;
    }
 
    final protected function setKindOfContent ($kind){
	$this->_kinfOfContent = $kind;
    }
 
    final public function getKindOfContent () {
	return $this->_kindOfContent; 
    }
 
    final protected function setDescription ($desc) {
	$this->_description = $desc;
    }
 
    final public function getDescription(){
	return $this->_description;
    }
 
 
 
}
 
 
?>
 
klassen/cms/cmsmodule.txt · Zuletzt geändert: 2006/12/28 02:40 von patta
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki