diff options
Diffstat (limited to 'frontends/php/include')
| -rw-r--r-- | frontends/php/include/classes/ctable.inc.php | 1 | ||||
| -rw-r--r-- | frontends/php/include/hosts.inc.php | 31 | ||||
| -rw-r--r-- | frontends/php/include/perm.inc.php | 5 |
3 files changed, 23 insertions, 14 deletions
diff --git a/frontends/php/include/classes/ctable.inc.php b/frontends/php/include/classes/ctable.inc.php index 1ef4957d..53c60763 100644 --- a/frontends/php/include/classes/ctable.inc.php +++ b/frontends/php/include/classes/ctable.inc.php @@ -23,6 +23,7 @@ /* public */ function CCol($item=NULL,$class=NULL){ parent::CTag("td","yes"); + $this->AddItem($item); $this->SetClass($class); } diff --git a/frontends/php/include/hosts.inc.php b/frontends/php/include/hosts.inc.php index 2b120406..468b3b3e 100644 --- a/frontends/php/include/hosts.inc.php +++ b/frontends/php/include/hosts.inc.php @@ -195,10 +195,11 @@ require_once "include/items.inc.php"; } - if(DBfetch(DBselect( - "select * from hosts where host=".zbx_dbstr($host). - ' and '.DBin_node('hostid', get_current_nodeid(false)). - (isset($hostid) ? ' and hostid<>'.$hostid : '') + if(DBfetch(DBselect('SELECT h.host '. + ' FROM hosts h '. + ' WHERE h.host='.zbx_dbstr($host). + ' AND '.DBin_node('h.hostid', get_current_nodeid(false)). + (isset($hostid)?' AND h.hostid<>'.$hostid:'') ))) { error("Host '$host' already exists"); @@ -207,25 +208,29 @@ require_once "include/items.inc.php"; if(is_null($hostid)){ $hostid = get_dbid("hosts","hostid"); - $result = DBexecute("insert into hosts". - " (hostid,proxy_hostid,host,port,status,useip,dns,ip,disable_until,available)". - " values ($hostid,$proxy_hostid,".zbx_dbstr($host).",$port,$status,$useip,".zbx_dbstr($dns).",".zbx_dbstr($ip).",0," - .HOST_AVAILABLE_UNKNOWN.")"); + $result = DBexecute('insert into hosts '. + ' (hostid,proxy_hostid,host,port,status,useip,dns,ip,disable_until,available) '. + ' values ('.$hostid.','.$proxy_hostid.','.zbx_dbstr($host).','.$port.','.$status.','.$useip.','.zbx_dbstr($dns).','.zbx_dbstr($ip).',0,' + .HOST_AVAILABLE_UNKNOWN.')'); } else{ if(check_circle_host_link($hostid, $templates)){ error("Circle link can't be created"); return false; } - - $result = DBexecute("update hosts set proxy_hostid=$proxy_hostid,host=".zbx_dbstr($host).",". - "port=$port,useip=$useip,dns=".zbx_dbstr($dns).",ip=".zbx_dbstr($ip)." where hostid=$hostid"); + $result = DBexecute('UPDATE hosts SET proxy_hostid='.$proxy_hostid. + ',host='.zbx_dbstr($host). + ',port='.$port. + ',status='.$status. + ',useip='.$useip. + ',dns='.zbx_dbstr($dns). + ',ip='.zbx_dbstr($ip). + ' WHERE hostid='.$hostid); update_host_status($hostid, $status); } - foreach($templates as $id => $name) - { + foreach($templates as $id => $name){ $hosttemplateid = get_dbid('hosts_templates', 'hosttemplateid'); if(!($result = DBexecute('insert into hosts_templates values ('.$hosttemplateid.','.$hostid.','.$id.')'))) break; diff --git a/frontends/php/include/perm.inc.php b/frontends/php/include/perm.inc.php index e96b77bc..4c15b0f5 100644 --- a/frontends/php/include/perm.inc.php +++ b/frontends/php/include/perm.inc.php @@ -185,6 +185,7 @@ } function get_accessible_hosts_by_user(&$user_data,$perm,$perm_mode=null,$perm_res=null,$nodeid=null,$cache=1){ + global $DB_TYPE; static $available_hosts; if(is_null($perm_res)) $perm_res = PERM_RES_STRING_LINE; @@ -228,6 +229,8 @@ COpt::counter_up('perm'); $where = ' where '.implode(' and ',$where); else $where = ''; + + $sortorder = (isset($DB_TYPE) && (($DB_TYPE == 'MYSQL') || ($DB_TYPE == 'SQLITE3')))?' DESC ':''; $sql = 'SELECT DISTINCT n.nodeid,n.name as node_name,h.hostid,h.host, min(r.permission) as permission,ug.userid '. ' FROM hosts h '. @@ -238,7 +241,7 @@ COpt::counter_up('perm'); ' LEFT JOIN nodes n ON '.DBid2nodeid('h.hostid').'=n.nodeid '. $where. ' GROUP BY h.hostid,n.nodeid,n.name,h.host,ug.userid '. - ' ORDER BY n.name,n.nodeid, h.host, permission desc, userid desc'; + ' ORDER BY n.name,n.nodeid, h.host, permission '.$sortorder.', userid '.$sortorder; $db_hosts = DBselect($sql); |
