diff --git a/interface/lib/classes/custom_datasource.inc.php b/interface/lib/classes/custom_datasource.inc.php index 52ba34ca57e9ef9cb1d7440878c43551a3b681d9..43538d6b09399ca1972b5aedf101156dca976020 100644 --- a/interface/lib/classes/custom_datasource.inc.php +++ b/interface/lib/classes/custom_datasource.inc.php @@ -63,6 +63,31 @@ class custom_datasource { return $records_new; } + function webdav_domains($field, $record) { + global $app, $conf; + + $servers = $app->db->queryAllRecords("SELECT * FROM server WHERE active = 1 AND mirror_server_id = 0"); + $server_ids = array(); + $app->uses('getconf'); + if(is_array($servers) && !empty($servers)){ + foreach($servers as $server){ + $web_config = $app->getconf->get_server_config($server['server_id'], 'web'); + if($web_config['server_type'] != 'nginx') $server_ids[] = $server['server_id']; + } + } + $server_ids = implode(',', $server_ids); + $records = $app->db->queryAllRecords("SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND server_id IN (".$server_ids.") AND ".$app->tform->getAuthSQL('r')." ORDER BY domain"); + + $records_new = array(); + if(is_array($records)) { + foreach($records as $rec) { + $key = $rec['domain_id']; + $records_new[$key] = $rec['domain']; + } + } + return $records_new; + } + function client_servers($field, $record) { global $app, $conf; diff --git a/interface/web/sites/form/webdav_user.tform.php b/interface/web/sites/form/webdav_user.tform.php index e378a7f4d166f9a494701f570993627039d523b5..5d423b652ebc76f02dd868dd467e592e83945342 100644 --- a/interface/web/sites/form/webdav_user.tform.php +++ b/interface/web/sites/form/webdav_user.tform.php @@ -73,10 +73,9 @@ $form["tabs"]['webdav'] = array ( 'datatype' => 'INTEGER', 'formtype' => 'SELECT', 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'webdav_domains' ), 'value' => '' ),