diff --git a/lam/lib/modules/ddns.inc b/lam/lib/modules/ddns.inc index 3ae232b5..ea12cbd0 100644 --- a/lam/lib/modules/ddns.inc +++ b/lam/lib/modules/ddns.inc @@ -329,46 +329,33 @@ class ddns extends baseModule { * @return array HTML meta data */ public function display_html_attributes() { + $return = new htmlTable(); // check if DHCP main settings and valid DHCP entry if ($_SESSION['config']->get_suffix('dhcp') == $this->getAccountContainer()->dn_orig) { if (!in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) { - StatusMessage("ERROR", _('Please set your LDAP suffix to an LDAP entry with object class "dhcpServer".')); - return array(); + $return->addElement(new htmlStatusMessage('ERROR', _('Please set your LDAP suffix to an LDAP entry with object class "dhcpServer".'))); + return $return; } } - if ($this->getAccountContainer()->dn_orig==$_SESSION['config']->get_suffix('dhcp')) { + if ($this->getAccountContainer()->dn_orig == $_SESSION['config']->get_suffix('dhcp')) { // DHCP main settings - $return[] = array( - array('kind' => 'text', 'text' => _('Activate DynDNS') . ":* "), - array('kind' => 'input', 'type' => 'checkbox', 'name' => 'active', 'checked' => $this->isDynDNSActivated()), - array('kind' => 'help', 'value' => 'active', 'scope' => 'user')); - - $return[] = array( - array('kind' => 'text', 'text' => _('Add fix IP addresses to DNS') . ":* "), - array('kind' => 'input', 'type' => 'checkbox', 'name' => 'insert_fixed', 'checked' => $this->addFixIPs()), - array('kind' => 'help', 'value' => 'fixed_ips', 'scope' => 'user')); - - $return[] = array( - array('kind' => 'text', 'text' => _('Disable client updates') . ":* "), - array('kind' => 'input', 'type' => 'checkbox', 'name' => 'client_insert', 'checked' => $this->isIgnoreClientUpdates()), - array('kind' => 'help', 'value' => 'client_insert', 'scope' => 'user')); - - $return[] = array( - array('kind' => 'text', 'text' => _('Path to key for DNS updates') . ":* "), - array('kind' => 'input', 'type' => 'text', 'name' => 'key_path', 'value' => $this->getUpdateKey()), - array('kind' => 'help', 'value' => 'keypath', 'scope' => 'user')); + $return->addElement(new htmlTableExtendedInputCheckbox('active', $this->isDynDNSActivated(), _('Activate DynDNS'), 'active'), true); + $return->addElement(new htmlTableExtendedInputCheckbox('insert_fixed', $this->addFixIPs(), _('Add fix IP addresses to DNS'), 'fixed_ips'), true); + $return->addElement(new htmlTableExtendedInputCheckbox('client_insert', $this->isIgnoreClientUpdates(), _('Disable client updates'), 'client_insert'), true); + $keyInput = new htmlTableExtendedInputField(_('Path to key for DNS updates'), 'key_path', $this->getUpdateKey(), 'keypath'); + $keyInput->setRequired(true); + $return->addElement($keyInput); } else { // Account edit if (!$this->check_if_ddns_is_enable()) { - echo _("DDNS ist not activated. You can activate it in the DHCP settings (DDNS).") . "

"; + $return->addElement(new htmlOutputText(_("DDNS ist not activated. You can activate it in the DHCP settings (DDNS)."))); } - else { - $return[] = array( - array('kind' => 'text', 'text' => _('IP address of the DNS server') . ":* "), - array('kind' => 'input', 'type' => 'text', 'name' => 'ip', 'value' => $this->getDNSServer()), - array('kind' => 'help', 'value' => 'dns', 'scope' => 'user')); - + else { + // DNS server + $serverInput = new htmlTableExtendedInputField(_('IP address of the DNS server'), 'ip', $this->getDNSServer(), 'dns'); + $serverInput->setRequired(true); + $return->addElement($serverInput, true); $zones = $this->getZoneNames(); $zone = ''; @@ -379,20 +366,17 @@ class ddns extends baseModule { if (isset($zones[1])) { $revzone = $zones[1]; } - $return[] = array( - array('kind' => 'text', 'text' => _('Zone names') . ":* "), - array('kind' => 'input', 'type' => 'text', 'name' => 'zone', 'value' => $zone), - array('kind' => 'help', 'value' => 'zone', 'scope' => 'user')); - - $return[] = array( - array('kind' => 'text', 'text' => _('Reverse zone names') . ":* "), - array('kind' => 'input', 'type' => 'text', 'name' => 'zone_reverse', 'value' => $revzone), - array('kind' => 'help', 'value' => 'zone_reverse', 'scope' => 'user')); + // zone names + $zoneInput = new htmlTableExtendedInputField(_('Zone names'), 'zone', $zone, 'zone'); + $zoneInput->setRequired(true); + $return->addElement($zoneInput, true); + // reverse zone names + $revZoneInput = new htmlTableExtendedInputField(_('Reverse zone names'), 'zone_reverse', $revzone, 'zone_reverse'); + $revZoneInput->setRequired(true); + $return->addElement($revZoneInput); } } - echo _("Attention: The DHCP service needs to be restarted after changes in DDNS.") . "
"; - return $return; } @@ -428,7 +412,10 @@ class ddns extends baseModule { if (is_array($this->attributes['dhcpStatements'])) { for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { if (substr($this->attributes['dhcpStatements'][$i], 0, 5) == 'zone ') { - return array_shift(explode(";",array_pop(explode(". { primary ", $this->attributes['dhcpStatements'][$i])))); + $parts = explode(". { primary ", $this->attributes['dhcpStatements'][$i]); + $temp = array_pop($parts); + $temp = explode(";", $temp); + return array_shift($temp); } } } @@ -445,7 +432,8 @@ class ddns extends baseModule { if (is_array($this->attributes['dhcpStatements'])) { for ($i = 0; $i < sizeof($this->attributes['dhcpStatements']); $i++) { if (substr($this->attributes['dhcpStatements'][$i], 0, 5) == 'zone ') { - $return[] = substr(array_shift(explode(" ",substr($this->attributes['dhcpStatements'][$i],5))),0,-1); + $parts = explode(" ",substr($this->attributes['dhcpStatements'][$i],5)); + $return[] = substr(array_shift($parts),0,-1); } } }