Änderungen

Wechseln zu: Navigation, Suche

Briefversand-Module erstellen

2.499 Byte hinzugefügt, 08:34, 10. Okt. 2018
Sie können ein eigenes [[Briefversand]]-Modul erstellen, um einen neuen [[Briefversand]]-Anbieter an sourceDESK anzubinden.
 
== Grundaufbau ==
Ein Briefversand-Modul bekommt ein eigenes Verzeichnis unter ''modules/letter''.In diesem Verzeichnis muss sich eine PHP-Datei mit dem gleichen Namen wie das Verzeichnis und der Endung ''.php'' befinden.In dieser PHP-Datei wird eine Klasse definiert, die von der Klasse ''LetterProvider'' erbt. == Attribute ==Es werden mehrere Attribute innerhalb der erstellten Klasse benötigt, die höchstens ''protected'' sein dürfen: * ''$short'' gibt den Kurznamen des Moduls an, das entspricht dem Verzeichnis- bzw. Dateinamen* ''$name'' gibt einen Anzeigenamen für das Modul an* ''$version'' definiert die Version des Moduls
== Methoden ==
Folgende Methoden können definiert werden: * ''getSettings()'' gibt die verfügbaren Modul-Einstellungen als Array zurück - auf sie kann nachher über das Objekt (stdClass) ''$this->options'' zugegriffen werden* ''getTypes()'' soll ein Array verfügbarer Brief-Typen und die dazugehörigen Typen zurückgeben, die implementiert werden müssen* ''sendLetter($pdfPath, $color, $country, $type)'' erhält den Pfad zum PDF, einen Boolean, der angibt ob in Farbe gedruckt werden soll, das Land des Empfängers und den Brief-Typen übergeben - diese Methode veranlasst sodann den Versand des Briefes == Beispiel-Code ==<source lang="php"><?php class OnlineBrief24 extends LetterProvider { protected $short = "onlinebrief24"; protected $name = "onlinebrief24"; protected $version = "1.0";  public function getSettings() { return Array( "obun" => Array("type" => "email", "name" => "E-Mailadresse"), "obpw" => Array("type" => "password", "name" => "Passwort"), ); }  public function sendLetter($pdfPath, $color = true, $country = "DE", $type = 0) { if (!array_key_exists($type, $this->getTypes())) { return false; }  $filename = ($color ? "1" : "0") ."10" .($country == "DE" ? "1" : "3") . $type . "00000000-" . basename($pdfPath) . ".pdf";  $sftp = new phpseclib\Net\SFTP('api.letterei-onlinebrief.de'); if (!$sftp->login($this->options->obun, $this->options->obpw)) { return false; }  $sftp->chdir('upload/api'); if (!$sftp->put($filename, $pdfPath, NET_SFTP_LOCAL_FILE)) { return false; }  return true; }  public function getTypes() { return Array( "0" => "Normaler Brief", "1" => "Einschreiben Einwurf", "2" => "Einschreiben", "3" => "Einschreiben Eigenh&auml;ndig", ); }}</source>