$agent['id_agente'], 'name' => io_safe_output($agent['nombre']), 'ip' => io_safe_output($agent['direccion']), 'filter' => 'agent'); } } //Get agents for only the address $filter_address = $filter; switch ($config['dbtype']) { case "mysql": $filter_address[] = '(nombre COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND direccion LIKE "%'.$string.'%")'; break; case "postgresql": $filter_address[] = '(nombre NOT LIKE \'%'.$string.'%\' AND direccion LIKE \'%'.$string.'%\')'; break; case "oracle": $filter_address[] = '(UPPER(nombre) NOT LIKE UPPER(\'%'.$string.'%\') AND UPPER(direccion) LIKE UPPER(\'%'.$string.'%\'))'; break; } $agents = agents_get_agents($filter_address, array ('id_agente', 'nombre', 'direccion')); if ($agents !== false) { foreach ($agents as $agent) { $data[] = array('id' => $agent['id_agente'], 'name' => io_safe_output($agent['nombre']), 'ip' => io_safe_output($agent['direccion']), 'filter' => 'address'); } } //Get agents for only the description $filter_description = $filter; switch ($config['dbtype']) { case "mysql": $filter_description[] = '(nombre COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND direccion NOT LIKE "%'.$string.'%" AND comentarios LIKE "%'.$string.'%")'; break; case "postgresql": $filter_description[] = '(nombre NOT LIKE \'%'.$string.'%\' AND direccion NOT LIKE \'%'.$string.'%\' AND comentarios LIKE \'%'.$string.'%\')'; break; case "oracle": $filter_description[] = '(UPPER(nombre) NOT LIKE UPPER(\'%'.$string.'%\') AND UPPER(direccion) NOT LIKE UPPER(\'%'.$string.'%\') AND UPPER(comentarios) LIKE UPPER(\'%'.$string.'%\'))'; break; } $agents = agents_get_agents($filter_description, array ('id_agente', 'nombre', 'direccion')); if ($agents !== false) { foreach ($agents as $agent) { $data[] = array('id' => $agent['id_agente'], 'name' => io_safe_output($agent['nombre']), 'ip' => io_safe_output($agent['direccion']), 'filter' => 'description'); } } echo json_encode($data); return; } elseif ($search_agents && ($config['metaconsole'] == 1) && defined('METACONSOLE')) { $servers = db_get_all_rows_sql ("SELECT * FROM tmetaconsole_setup WHERE disabled = 0"); if (!isset($servers)) { return; } $id_agent = (int) get_parameter ('id_agent'); $string = (string) get_parameter ('q'); /* q is what autocomplete plugin gives */ $id_group = (int) get_parameter('id_group', -1); $addedItems = html_entity_decode((string) get_parameter('add')); $addedItems = json_decode($addedItems); if ($addedItems != null) { foreach ($addedItems as $item) { echo $item . "|\n"; } } $filter = array (); if ($id_group != -1) { if ($id_group == 0) { $user_groups = users_get_groups ($config['id_user'], "AR", true); $filter['id_grupo'] = array_keys ($user_groups); } else { $filter['id_grupo'] = $id_group; } } $data = array(); foreach ($servers as $server) { if (metaconsole_load_external_db ($server) != NOERR) { continue; } //Get agents for only the name. $filter_agents = $filter; switch ($config['dbtype']) { case "mysql": $filter_agents[] = '(nombre COLLATE utf8_general_ci LIKE "%'.$string.'%")'; break; case "postgresql": $filter_agents[] = '(nombre LIKE \'%'.$string.'%\')'; break; case "oracle": $filter_agents[] = '(UPPER(nombre) LIKE UPPER(\'%'.$string.'%\')'; break; } $agents = agents_get_agents($filter_agents, array ('id_agente', 'nombre', 'direccion')); if ($agents !== false) { foreach ($agents as $agent) { $data[] = array('id' => $agent['id_agente'], 'name' => io_safe_output($agent['nombre']), 'ip' => io_safe_output($agent['direccion']), 'filter' => 'agent', 'id_server' => $server['id']); } } //Get agents for only the address $filter_address = $filter; switch ($config['dbtype']) { case "mysql": $filter_address[] = '(nombre COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND direccion LIKE "%'.$string.'%")'; break; case "postgresql": $filter_address[] = '(nombre NOT LIKE \'%'.$string.'%\' AND direccion LIKE \'%'.$string.'%\')'; break; case "oracle": $filter_address[] = '(UPPER(nombre) NOT LIKE UPPER(\'%'.$string.'%\') AND UPPER(direccion) LIKE UPPER(\'%'.$string.'%\'))'; break; } $agents = agents_get_agents($filter_address, array ('id_agente', 'nombre', 'direccion')); if ($agents !== false) { foreach ($agents as $agent) { $data[] = array('id' => $agent['id_agente'], 'name' => io_safe_output($agent['nombre']), 'ip' => io_safe_output($agent['direccion']), 'filter' => 'address', 'id_server' => $server['id']); } } //Get agents for only the description $filter_description = $filter; switch ($config['dbtype']) { case "mysql": $filter_description[] = '(nombre COLLATE utf8_general_ci NOT LIKE "%'.$string.'%" AND direccion NOT LIKE "%'.$string.'%" AND comentarios LIKE "%'.$string.'%")'; break; case "postgresql": $filter_description[] = '(nombre NOT LIKE \'%'.$string.'%\' AND direccion NOT LIKE \'%'.$string.'%\' AND comentarios LIKE \'%'.$string.'%\')'; break; case "oracle": $filter_description[] = '(UPPER(nombre) NOT LIKE UPPER(\'%'.$string.'%\') AND UPPER(direccion) NOT LIKE UPPER(\'%'.$string.'%\') AND UPPER(comentarios) LIKE UPPER(\'%'.$string.'%\'))'; break; } $agents = agents_get_agents($filter_description, array ('id_agente', 'nombre', 'direccion')); if ($agents !== false) { foreach ($agents as $agent) { $data[] = array('id' => $agent['id_agente'], 'name' => io_safe_output($agent['nombre']), 'ip' => io_safe_output($agent['direccion']), 'filter' => 'description', 'id_server' => $server['id']); } } //Restore db connection metaconsole_restore_db(); } echo json_encode($data); return; } ?>