pandorafms/pandora_console/operation/search_maps.getdata.php

79 lines
2.2 KiB
PHP

<?php
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2011 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; version 2
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
global $config;
$searchMaps = check_acl($config["id_user"], 0, "IR");
$maps = false;
$totalMaps = 0;
if ($searchMaps) {
$user_groups = users_get_groups($config['id_user'], 'AR', false);
$id_user_groups = array_keys($user_groups);
$id_user_groups_str = implode(',', $id_user_groups);
if (empty($id_user_groups))
return;
switch ($config["dbtype"]) {
case "mysql":
case "postgresql":
$sql = "SELECT tl.id, tl.name, tl.id_group, COUNT(tld.id_layout) AS count
FROM tlayout tl
LEFT JOIN tlayout_data tld
ON tl.id = tld.id_layout
WHERE tl.name LIKE '%$stringSearchSQL%'
AND tl.id_group IN ($id_user_groups_str)
GROUP BY tl.id, tl.name, tl.id_group";
break;
case "oracle":
$sql = "SELECT tl.id, tl.name, tl.id_group, COUNT(tld.id_layout) AS count
FROM tlayout tl
LEFT JOIN tlayout_data tld
ON tl.id = tld.id_layout
WHERE upper(tl.name) LIKE '%" . strtolower($stringSearchSQL) . "%'
AND tl.id_group IN ($id_user_groups_str)
GROUP BY tl.id, tl.name, tl.id_group";
break;
}
switch ($config["dbtype"]) {
case "mysql":
case "postgresql":
$sql .= " LIMIT " . $config['block_size'] . " OFFSET " . get_parameter ('offset',0);
break;
case "oracle":
$set = array();
$set['limit'] = $config['block_size'];
$set['offset'] = (int) get_parameter('offset');
$sql = oracle_recode_query ($sql, $set);
break;
}
$maps = db_process_sql($sql);
if ($maps !== false) {
$totalMaps = count($maps);
if ($only_count) {
unset($maps);
}
}
}
?>