ftimme
2013-02-27 f4038a2160d55a7f519a3b42be1aa96e29e9a908
interface/web/admin/system_config_edit.php
@@ -50,6 +50,7 @@
class page_action extends tform_actions {
   //var $_js_changed = false;
   function onShowEdit() {
      global $app, $conf;
@@ -77,6 +78,25 @@
      $app->tpl->setVar($record);
   }
   
    function onSubmit() {
        global $app;
        $app->uses('ini_parser,getconf');
        $section = $app->tform->getCurrentTab();
      $server_config_array = $app->getconf->get_global_config();
      $new_config = $app->tform->encode($this->dataRecord,$section);
        if($section == 'mail') {
            if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['smtp_pass'];
            if($new_config['smtp_enabled'] == 'y' && ($new_config['admin_mail'] == '' || $new_config['admin_name'] == '')) {
                $app->tform->errorMessage .= $app->tform->lng("smtp_missing_admin_mail_txt");
            }
        }
        parent::onSubmit();
    }
   function onUpdateSave($sql) {
      global $app,$conf;
      
@@ -85,8 +105,23 @@
      
      $section = $app->tform->getCurrentTab();
      
      $server_config_array = $app->getconf->get_global_config();
      foreach($app->tform->formDef['tabs'][$section]['fields'] as $key => $field) {
         if ($field['formtype'] == 'CHECKBOX') {
            if($this->dataRecord[$key] == '') {
               // if a checkbox is not set, we set it to the unchecked value
               $this->dataRecord[$key] = $field['value'][0];
            }
         }
      }
      /*
      if((isset($this->dataRecord['use_loadindicator']) && $this->dataRecord['use_loadindicator'] != $server_config_array[$section]['use_loadindicator']) || (isset($this->dataRecord['use_combobox']) && $this->dataRecord['use_combobox'] != $server_config_array[$section]['use_combobox'])){
         $this->_js_changed = true;
      }
      */
      $new_config = $app->tform->encode($this->dataRecord,$section);
        if($section == 'sites' && $new_config['vhost_subdomains'] != 'y' && $server_config_array['vhost_subdomains'] == 'y') {
            // check for existing vhost subdomains, if found the mode cannot be disabled
@@ -94,6 +129,8 @@
            if($check['cnt'] > 0) {
                $new_config['vhost_subdomains'] = 'y';
            }
        } elseif($section == 'mail') {
            if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['smtp_pass'];
        }
        $server_config_array[$section] = $new_config;
      $server_config_str = $app->ini_parser->get_ini_string($server_config_array);
@@ -114,7 +151,7 @@
         $app->db->query($sql);
         $sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " .
            "SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " .
            "FROM web_domain";
            "FROM web_domain WHERE type NOT IN ('subdomain','vhostsubdomain')";
         $app->db->query($sql);
      }
      
@@ -126,6 +163,17 @@
      }
   }
   
   /*
   function onAfterUpdate() {
        if($this->_js_changed == true) {
            // not the best way, but it works
            header('Content-Type: text/html');
            print '<script type="text/javascript">document.location.reload(true);</script>';
            exit;
        }
    }
   */
}
$app->tform_actions = new page_action;