100 lines
2.7 KiB
PHP
100 lines
2.7 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;
|
|
|
|
include_once('include/functions_reports.php');
|
|
|
|
$linkReport = false;
|
|
$searchReports = check_acl ($config["id_user"], 0, "RR");
|
|
|
|
if (check_acl ($config['id_user'], 0, "RW")) {
|
|
$linkReport = true;
|
|
}
|
|
|
|
$reports = false;
|
|
|
|
//Check ACL
|
|
$userreports = reports_get_reports();
|
|
|
|
$userreports_id = array();
|
|
foreach($userreports as $userreport) {
|
|
$userreports_id[] = $userreport['id_report'];
|
|
}
|
|
|
|
if (!$userreports_id) {
|
|
$reports_condition = " AND 1<>1";
|
|
}
|
|
else {
|
|
$reports_condition = " AND id_report IN (".implode(',',$userreports_id).")";
|
|
}
|
|
|
|
$reports = false;
|
|
|
|
if($searchReports) {
|
|
switch ($config["dbtype"]) {
|
|
case "mysql":
|
|
case "postgresql":
|
|
$sql = "SELECT id_report, name, description
|
|
FROM treport
|
|
WHERE (name LIKE '%" . $stringSearchSQL . "%' OR description LIKE '%" . $stringSearchSQL . "%')".$reports_condition;
|
|
break;
|
|
case "oracle":
|
|
$sql = "SELECT id_report, name, description
|
|
FROM treport
|
|
WHERE (upper(name) LIKE '%" . strtolower($stringSearchSQL) . "%' OR description LIKE '%" . strtolower($stringSearchSQL) . "%')".$reports_condition;
|
|
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;
|
|
}
|
|
|
|
switch ($config["dbtype"]) {
|
|
case "mysql":
|
|
case "postgresql":
|
|
$sql_count = "SELECT COUNT(id_report) AS count
|
|
FROM treport
|
|
WHERE (name LIKE '%" . $stringSearchSQL . "%' OR description LIKE '%" . $stringSearchSQL . "%')".$reports_condition;
|
|
break;
|
|
case "oracle":
|
|
$sql_count = "SELECT COUNT(id_report) AS count
|
|
FROM treport
|
|
WHERE (upper(name) LIKE '%" . strtolower($stringSearchSQL) . "%' OR upper(description) LIKE '%" . strtolower($stringSearchSQL) . "%')".$reports_condition;
|
|
break;
|
|
}
|
|
|
|
if($only_count) {
|
|
$totalReports = db_get_value_sql($sql_count);
|
|
}
|
|
else {
|
|
$reports = db_process_sql($sql);
|
|
$totalReports = db_get_value_sql($sql_count);
|
|
}
|
|
}
|
|
?>
|