Domain-Registrar-Module erstellen

Aus sourceDESK Wiki
Version vom 12. Oktober 2018, 22:02 Uhr von Richard Reiber (Diskussion | Beiträge) (Domain-Synchronisation)

Wechseln zu: Navigation, Suche

Sie können an sourceDESK eigene Domain-Registrare anbinden, um Domains über diese zu registrieren und zu verwalten.

Dateistruktur

Ein Registrar-Modul bekommt ein eigenes Verzeichnis unter modules/domain. 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 DomainRegistrar erbt.

Attribute

Es werden mehrere Attribute innerhalb der erstellten Klasse benötigt, die höchstens protected sein dürfen:

  • $name gibt einen Anzeigenamen für das Modul an
  • $short gibt den Kurznamen des Moduls an, das entspricht dem Verzeichnis- bzw. Dateinamen
  • $version gibt die Versionsnummer des Moduls an

Einstellungen

Sie können über die Methode getSettings() definieren, welche Einstellungen der Administrator für das Modul durchführen können soll. Ein Beispiel:

public function getSettings() {
	return Array(
		"api_url" => Array("type" => "text", "name" => "API-URL", "default" => "https://gateway.autodns.com"),
		"api_user" => Array("type" => "text", "name" => "API-Benutzer"),
		"api_password" => Array("type" => "password", "name" => "API-Passwort"),
	);
}

Auf die definierten Einstellungen können Sie innerhalb der Modul-Klasse bspw. mit dem Aufruf $this->options->api_url zugreifen.

Domain-Verfügbarkeit

Über die Methode availibilityStatus($domain) wird die Verfügbarkeit der Domain $domain geprüft. Folgende Rückgabewerte sind möglich:

  • true, wenn die Domain verfügbar ist
  • false, wenn die Domain bereits registriert ist
  • null, falls die Domain nicht geprüft werden konnte / nicht registriert werden kann

Domain registrieren / transferieren

Die Registrierung erfolgt über die Methode registerDomain($domain, $owner, $admin, $tech, $zone, $ns, $privacy = false). Die Signatur der Methode zum Transfer lautet transferDomain($domain, $owner, $admin, $tech, $zone, $authCode, $ns, $privacy = false). Die Belegung der Variablen:

  • $domain - der Domain-Name
  • $owner, $admin, $tech, $zone - Handle-Daten als Array
    • Vorname
    • Nachname
    • Firma
    • Straße
    • Land
    • Postleitzahl
    • Stadt
    • Telefon
    • Telefax
    • E-Mail
    • Notizen
  • $authCode - Auth-Code (nur bei Transfer)
  • $ns - Array mit Nameservern
  • $privacy - Boolean, der angibt, ob WHOIS-Privacy aktiviert ist

Als Rückgabe wird im Erfolgsfall true erwartet, im Fehlerfall eine Fehlermeldung als String.

Nameserver ändern

Über die Methode changeNameserver($domain, $ns) können die Nameserver der Domain $domain geändert werden. Hierbei wird ein Array mit Nameserver-Hostnamen als $ns übergeben.

Kontakte ändern

Die Methode changeContact($domain, $owner, $admin, $tech, $zone) ändert die Kontakte der Domain $domain.

Sonderfall: Trade

Der kostenpflichtige Kontaktwechsel (Trade) wird über die Methode trade($domain, $owner, $admin, $tech, $zone) initiiert.

Authcode abrufen

Der automatische Abruf des Authcodes erfolgt über die Methode getAuthCode($domain). Als Rückgabewert ist im Fehlerfall false zulässig, im Erfolgsfall ist der Authcode zurückgegeben, wobei vor diesen AUTH: geschrieben werden muss.

Transfersperre / Verlängerung / WHOIS-Privacy

Das Setzen der Transfersperre, von Verlängerungsoptionen und WHOIS-Privacy erfolgt über die Methode changeValues($domain, $status = false, $renew = true, $privacy = false). Dabei stellen die drei Booleans folgende Werte dar:

  • $status aktiviert die Transfersperre
  • $renew aktiviert die automatische Verlängerung
  • $privacy aktiviert WHOIS-Privacy

Domain löschen / in den Transit geben

Um eine Domain zu löschen oder in den Transit zu geben, nutzen Sie die Methode deleteDomain($domain, $transit = 0). Hierbei ist die Belegung von $transit wie folgt möglich:

  • 0 - Domain löschen
  • 1 - Konnektierter Transit
  • 2 - Dekonnektierter Transit

Domain-Synchronisation

Domains werden periodisch synchronisiert, dazu wird die Methode syncDomain($domain, $kkSync = false) aufgerufen. Ist $kkSync auf true gesetzt, befindet sich die Domain noch im Transfer-Status. Sofern die Domain noch nicht transferiert wurde, ist Array("status" => "waiting_kk") zurückzugegeben.

Die erwartete Rückgabe für eine registrierte Domain ist ein Array mit den folgenden Schlüsseln:

  • auto_renew - Boolean, der den Status der automatischen Verlängerung zurückgibt
  • expiration - Datum des Domainablaufs im Format YYYY-MM-DD
  • status - Boolean, der den Status der Domain (aktiv/nicht aktiv) zurückgibt
  • transfer_lock - Boolean, der angibt, ob die Transfer-Sperre aktiviert ist
  • privacy - Boolean, der den Status der WHOIS-Privacy angibt

Kostenloses SSL-Zertifikat

...

Kontakt-Format

...

Beispiel-Code

...