WeFact Hosting - DNS



DNS beheer

Op deze pagina worden alle functies besproken met betrekking tot het beheren van DNS zones.


getDNSTemplates()

Wanneer het DNS platform templates ondersteunt, kunnen die met deze functie opgehaald worden.


Voorbeeld implementatie
public function getDNSTemplates()
{
	// if the DNS platform does not support DNS templates by it self, just do a:
	// return FALSE;
	// the WeFact Hosting user then has to create the DNS templates with each DNS record in WeFact Hosting

	/**
	 * Step 1) get template list
	 */
	$response = TRUE;

	/**
	 * Step 2) provide feedback to WeFact
	 */

	if($response === FALSE || count($response) == 0)
	{
		return $this->__parseError(__('dns templates could not be retrieved', 'yourname'));
	}
	else
	{
		$dns_templates  = array();
		$i          = 0;
		// loop through templates and build return array
		foreach($response['template'] as $key => $_dns_template)
		{
			$dns_templates['templates'][$i]['id']      = $_dns_template['id']; // if present
			$dns_templates['templates'][$i]['name']    = $_dns_template['name'];
		}

		return $dns_templates;
	}
}
				


getDNSZone()

Haal een DNS zone op van het DNS platform.


Beschikbare variabelen Beschrijving
$domain Volledige domeinnaam (incl. extensie)

Voorbeeld implementatie
public function getDNSZone($domain)
{
	/**
	 * Step 1) Get the DNS zone data
	 *
	 */

	$result = true;

	/**
	 * Step 2) build DNS zone return array
	 */

	if($result)
	{
		$dns_zone = array();
		$i = 0;
		foreach($result as $record)
		{
			// if the record is not supported, it should be marked as readonly
			if(!(in_array(strtoupper($record['type']), $this->SupportedRecordTypes)))
			{
				$record_type = 'records_readonly';
			}
			else
			{
				$record_type = 'records';
			}

			$dns_zone[$record_type][$i]['id']          = $record['id'];
			$dns_zone[$record_type][$i]['name']        = $record['name'];
			$dns_zone[$record_type][$i]['type']        = $record['type'];
			$dns_zone[$record_type][$i]['value']       = $record['content'];
			$dns_zone[$record_type][$i]['priority']    = $record['prio'];
			$dns_zone[$record_type][$i]['ttl']         = $record['ttl'];
			$i++;
		}

		return $dns_zone;
	}

	return FALSE;
}


createDNSZone()

Maakt een nieuwe DNS zone aan op het DNS platform nadat een domeinnaam is geregisteerd/verhuisd bij de registrar, of wanneer de DNS template wordt gewijzigd van de domeinnaam.


Beschikbare variabelen Beschrijving
$domain Volledige domeinnaam (incl. extensie)
$dns_zone Array met DNS zone informatie en DNS zone records
(zie hoofdstuk Parameters)

Voorbeeld implementatie
public function createDNSZone($domain, $dns_zone)
{
	/**
	 * Step 1) check if DNS zone exists on server
	 */
	// you should first check if the DNS zone already exists on the DNS platform
	$response 	= true;

	/**
	 * Step 2a) DNS zone exists, update DNS zone
	 */
	if($response === true)
	{
		// if the DNS zone already exists, you can edit the DNS zone by using the saveDNSzone function
		if($this->saveDNSZone($domain, $dns_zone))
		{
			// you can use the createDNSZoneData variable as a fallback
			// for example, if registering a domain or a nameserver change fails at the registrar, you might want to undo any changes you do here
			// the data you set in createDNSZoneData can, after a failed register/nameserver change, be used in undoCreateDNSZone function
			$this->createDNSZoneData = $current_records;
			return TRUE;
		}
		else
		{
			return FALSE;
		}
	}

	/**
	 * Step 2b) DNS zone does not exist, create a new one
	 */
	$create_response 	= true;

	// create DNS zone

	if(isset($dns_zone['records']) && count($dns_zone['records']) > 0)
	{
		foreach($dns_zone['records'] as $_record)
		{
			/** create DNS record */
		}
	}

	/**
	 * Step 3) provide feedback to WeFact
	 */

	// you can use the createDNSZoneData variable as a fallback
	// for example, if registering a domain or a nameserver change fails at the registrar, you might want to undo any changes you do here
	// the data you set in createDNSZoneData can, after a failed register/nameserver change, be used in undoCreateDNSZone function
	$this->createDNSZoneData = $new_id;

	if($create_response === true)
	{
		return TRUE;
	}
	else
	{
		// failed
		return FALSE;
	}
}


undoCreateDNSZone()

Deze functie wordt aangeroepen wanneer een registratie, verhuizing of nameserver wijziging is mislukt. Data die daarvoor is aangemaakt/bewerkt via de createDNSZone functie, kan hier ongedaan gemaakt worden.


Beschikbare variabelen Beschrijving
$domain Volledige domeinnaam (incl. extensie)
$create_dns_zone_data Bevat de data zoals deze is geset in de createDNSZone functie

Voorbeeld implementatie
public function undoCreateDNSZone($domain, $create_dns_zone_data)
{
	// $create_dns_zone_data will contain the data set in createDNSZone

	/**
	 * Step 1) undo actions from createDNSZone
	 *
	 */

	$response = true;

	/**
	 * Step 2) provide feedback to WeFact
	 */

	if($response)
	{
		return TRUE;
	}
	else
	{
		return FALSE;
	}
}


saveDNSZone()

Update een DNS zone op het DNS platform.

Let op: WeFact filtert bij het tonen van de DNS records de naam om zo een consequente weergave te tonen voor alle servers. De laatste punt en de domeinnaam worden verwijderd uit de waarde. Voorbeeld: 'ftp.domain.tld.' wordt 'ftp'. Houdt hiermee rekening bij het updaten van een DNS zone.


Beschikbare variabelen Beschrijving
$domain Volledige domeinnaam (incl. extensie)
$dns_zone Array met DNS zone informatie en DNS zone records
(zie hoofdstuk Parameters)

Voorbeeld implementatie
public function saveDNSZone($domain, $dns_zone)
{
	/*
	if the control panel does not support a update command, but only add/delete commands
	use the getDNSZone command and compare it's output with the $dns_zone array
	this way you can check which records are edited and add/delete them accordingly
	*/

	/**
	 * Step 1) update DNS zone
	 */

	if(isset($dns_zone['records']) && count($dns_zone['records']) > 0)
	{
		$wefact_records = array();

		foreach($dns_zone['records'] as $_record)
		{
			// if priority is not filled, set it default as 0
			$_record['priority'] = (!$_record['priority']) ? 0 : $_record['priority'];

			// update/add records
		}

		// delete records
	}

	/**
	 * Step 2) provide feedback to WeFact
	 */

	return TRUE;
}


removeDNSZone()

Verwijdert een DNS zone op het DNS platform. Wordt aangeroepen wanneer een domeinnaam direct of via een opzegprocedure verwijderd wordt.


Beschikbare variabelen Beschrijving
$domain Volledige domeinnaam (incl. extensie)

Voorbeeld implementatie
public function removeDNSZone($domain)
{
	/**
	 * Step 1) remove DNS zone
	 */

	$response = true;

	/**
	 * Step 2) provide feedback to WeFact
	 */

	return $response;
}