Pluginentwicklung

Zum entwickeln eigener Plugins liegen Beispieldateien im Ordner lib/demo/.

Für jeden Plugintyp gibt es ein Interface welches zu implementieren ist. Eine Beispielimplementation zum erstellen von Domains wäre:

<?php
require_once("lib/int/interface.domainplugin.php");

class Domain_Benachrichtigung implements DomainPlugin
{
private $_db;
private $_tpl;
private $_config;
private $_PluginID;

/**
* @param int $pluginID
* @param db $db
* @param smarty $tpl
*/
function __construct($pluginID, $db, $tpl)
{
$this->_db = $db;
$this->_PluginID = $pluginID;
$this->_tpl = $tpl;
$this->_config = array();
}

/**
* @param string $name
* @param string $wert
* @return void
*/
function setConfig($name, $wert)
{
$this->_config[$name] = $wert;
}

function start()
{
}

/**
* @param int $domainID
* @return bool
*/
public function createDomain($domainID)
{
$domain=$this->getDomainInfo($domainID);
//Domain anlegen
return true;
}

/**
* @param int $domainID
* @return bool
*/
public function changeDomain($domainID)
{
$domain=$this->getDomainInfo($domainID);
//Domain ändern
return true;
}

/**
* @param int $domainID
* @return bool
*/
public function deleteDomain($domainID)
{
$domain=$this->getDomainInfo($domainID);
//Domain löschen
return true;
}

public function install()
{
//Hier können Befehle beim aktivieren des Plugins durchgeführt werden
}

public function uninstall()
{
//Hier können Befehle beim deaktivieren des Plugins durchgeführt werden
}

public function ErweiterteEinstellungen()
{
//Hat das Plugin Erweiterte Einstellungen wird diese Funktion beim Aufruf ausgeführt
}

/**
* @param int $domainID
* @return array
*/
private function getDomainInfo($domainID)
{
$domain = $this->_db->query("SELECT `DomainID`, `Name`, `EingetragenAm`, `DomainEndung`, `StatusID`, `HandleIDOwner`, `HandleIDAdminC`, `HandleIDTechC`, `HandleIDZoneC`, `DomainKonfigurationID`, `IP1`, `IP2`, `IP3`, `IP4`, `AuthCode` FROM `Domains` WHERE `DomainID`=" . $domainID, "ASSOC");
return $domain;
}
}

?>


Die Interfacedefinitionen sind unter /lib/int/ abgelegt.
Die Smarty Engine erreichen Sie über die $this->_tpl Variable, den Datenbankhandler unter $this->_db.
Das Plugin muss dann noch in der Datenbanktabelle für die Plugins eingetragen werden. Eigene Konfiguartionseinstellungen werden in der PluginConfig Tabelle hinterlegt. Für Interne Daten steht die Tabelle PluginData zur Verfügung.
Ja, auch diese Webseite verwendet Cookies, denn diese helfen uns bei der Bereitstellung unserer Dienste. Hier erfahrt ihr alles zum Datenschutz. Durch die Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies setzen.