%PDF- %PDF-
Direktori : /var/www/projetos/suporte.iigd.com.br/plugins/glpiinventory/report/ |
Current File : //var/www/projetos/suporte.iigd.com.br/plugins/glpiinventory/report/ports_date_connections.php |
<?php /** * --------------------------------------------------------------------- * GLPI Inventory Plugin * Copyright (C) 2021 Teclib' and contributors. * * http://glpi-project.org * * based on FusionInventory for GLPI * Copyright (C) 2010-2021 by the FusionInventory Development Team. * * --------------------------------------------------------------------- * * LICENSE * * This file is part of GLPI Inventory Plugin. * * GLPI Inventory Plugin is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * GLPI Inventory Plugin 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with GLPI Inventory Plugin. If not, see <https://www.gnu.org/licenses/>. * --------------------------------------------------------------------- */ //Options for GLPI 0.71 and newer : need slave db to access the report $USEDBREPLICATE = 1; $DBCONNECTION_REQUIRED = 0; include("../../../inc/includes.php"); Html::header(__('GLPI Inventory', 'glpiinventory'), $_SERVER['PHP_SELF'], "utils", "report"); Session::checkRight('plugin_glpiinventory_reportnetworkequipment', READ); $reset_search = filter_input(INPUT_GET, "reset_search"); if ($reset_search != '') { resetSearch(); } $options = ['options' => ['default' => 0]]; $start = filter_input(INPUT_GET, "start", FILTER_VALIDATE_INT, $options); $_GET["start"] = $start; $_GET = getValues($_GET, $_POST); displaySearchForm(); if (isset($_POST["dropdown_calendar"]) && isset($_POST["dropdown_sup_inf"])) { $date_search = ''; if ($_POST['dropdown_sup_inf'] == 'sup') { $date_search .= "> '" . $_POST['dropdown_calendar'] . "'"; } elseif ($_POST['dropdown_sup_inf'] == 'inf') { $date_search .= "< '" . $_POST['dropdown_calendar'] . "'"; } elseif ($_POST['dropdown_sup_inf'] == 'equal') { $date_search .= " LIKE '" . $_POST['dropdown_calendar'] . "%'"; } $networkport = new NetworkPort(); $networkequipment = new NetworkEquipment(); $query = "SELECT `glpi_networkports`.`id`, a.date_mod, `glpi_networkports`.`items_id` FROM `glpi_networkports`" . " LEFT JOIN `glpi_plugin_glpiinventory_networkportconnectionlogs` a" . " ON a.id= (SELECT MAX(fn.id) a_id FROM glpi_plugin_glpiinventory_networkportconnectionlogs fn WHERE (fn.networkports_id_source = glpi_networkports.id OR fn.networkports_id_destination = glpi_networkports.id))" . " WHERE a.id IS NOT NULL AND `glpi_networkports`.`itemtype`='NetworkEquipment'" . " AND a.date_mod" . $date_search . " ORDER BY `glpi_networkports`.`items_id`"; $result = $DB->doQuery($query); echo "<table width='950' class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo 'Port name'; echo "</th>"; echo "<th>"; echo 'Switch'; echo "</th>"; echo "<th>"; echo 'Last connection'; echo "</th>"; echo "</tr>"; while ($data = $DB->fetchArray($result)) { echo "<tr class='tab_bg_1'>"; echo "<td>"; $networkport->getFromDB($data['id']); echo $networkport->getLink(); echo "</td>"; echo "<td>"; $networkequipment->getFromDB($data['items_id']); echo $networkequipment->getLink(); echo "</td>"; echo "<td>"; echo Html::convDate($data['date_mod']); echo "</td>"; echo "</tr>"; } echo "</table>"; } Html::footer(); /** * Display special search form * * @global array $_SERVER * @global array $_GET * @global array $CFG_GLPI */ function displaySearchForm() { global $_SERVER, $_GET, $CFG_GLPI; echo "<form action='" . $_SERVER["PHP_SELF"] . "' method='post'>"; echo "<table class='tab_cadre' cellpadding='5'>"; echo "<tr class='tab_bg_1' align='center'>"; echo "<td>"; echo __('Initial contract period') . " :"; $values = []; $values["sup"] = ">"; $values["inf"] = "<"; $values["equal"] = "="; if (isset($_GET["contains"][1])) { if (strstr($_GET["contains"][1], "lt;")) { $_GET["dropdown_sup_inf"] = "inf"; $_GET["dropdown_calendar"] = str_replace("lt;", "", $_GET["contains"][1]); $_GET["dropdown_calendar"] = str_replace("&", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace("\\", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace("'", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace(" 00:00:00", "", $_GET["dropdown_calendar"]); $_GET["contains"][1] = "<" . $_GET["dropdown_calendar"]; } if (strstr($_GET["contains"][1], "gt;")) { $_GET["dropdown_sup_inf"] = "sup"; $_GET["dropdown_calendar"] = str_replace("gt;", "", $_GET["contains"][1]); $_GET["dropdown_calendar"] = str_replace("&", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace("\\", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace("'", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace(" 00:00:00", "", $_GET["dropdown_calendar"]); $_GET["contains"][1] = ">" . $_GET["dropdown_calendar"]; } if (strstr($_GET["contains"][1], "LIKE")) { $_GET["dropdown_sup_inf"] = "equal"; $_GET["dropdown_calendar"] = str_replace("=", "", $_GET["contains"][1]); $_GET["dropdown_calendar"] = str_replace("&", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace("\\", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace("'", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace("%", "", $_GET["dropdown_calendar"]); $_GET["dropdown_calendar"] = str_replace("LIKE ", "", $_GET["dropdown_calendar"]); $_GET["contains"][1] = "LIKE '" . $_GET["dropdown_calendar"] . "%'"; } } Dropdown::showFromArray( "dropdown_sup_inf", $values, ['value' => (isset($_GET["dropdown_sup_inf"]) ? $_GET["dropdown_sup_inf"] : "sup")] ); echo "</td> <td width='120'>"; Html::showDateField( "dropdown_calendar", ['value' => (isset($_GET["dropdown_calendar"]) ? $_GET["dropdown_calendar"] : 0)] ); echo "</td>"; echo "<td>" . __('Location') . "</td>"; echo "<td>"; Dropdown::show( "Location", ['name' => "location", 'value' => (isset($_GET["location"]) ? $_GET["location"] : "")] ); echo "</td>"; // Display Reset search echo "<td>"; echo "<a href='" . Plugin::getWebDir('glpiinventory') . "/report/ports_date_connections.php?reset_search=reset_search' ><img title=\"" . __('Blank') . "\" alt=\"" . __('Blank') . "\" src='" . $CFG_GLPI["root_doc"] . "/pics/reset.png' class='calendrier'></a>"; echo "</td>"; echo "<td>"; //Add parameters to uri to be saved as SavedSearch $_SERVER["REQUEST_URI"] = buildSavedSearchUrl($_SERVER["REQUEST_URI"], $_GET); SavedSearch::showSaveButton(SavedSearch::SEARCH, 'PluginGlpiinventoryNetworkport2'); echo "</td>"; echo "<td>"; echo "<input type='submit' value='" . __('Validate') . "' class='submit' />"; echo "</td>"; echo "</tr>"; echo "</table>"; Html::closeForm(); } /** * Get array in GET for search * * @param array $get * @return string */ function getContainsArray($get) { if (isset($get["dropdown_sup_inf"])) { switch ($get["dropdown_sup_inf"]) { case "sup": return ">'" . $get["dropdown_calendar"] . " 00:00:00'"; case "equal": return "LIKE '" . $get["dropdown_calendar"] . "%'"; case "inf": return "<'" . $get["dropdown_calendar"] . " 00:00:00'"; } } } /** * Generate the URL SavedSearch * * @param string $url * @param array $get * @return string */ function buildSavedSearchUrl($url, $get) { return $url . "?field[0]=3&contains[0]=" . getContainsArray($get); } /** * Get values * * @param array $get * @param array $post * @return array */ function getValues($get, $post) { $get = array_merge($get, $post); if (isset($get["field"])) { foreach ($get["field"] as $index => $value) { $get["contains"][$index] = stripslashes($get["contains"][$index]); $get["contains"][$index] = htmlspecialchars_decode($get["contains"][$index]); switch ($value) { case 14: if (strpos($get["contains"][$index], "=") == 1) { $get["dropdown_sup_inf"] = "equal"; } else { if (strpos($get["contains"][$index], "<") == 1) { $get["dropdown_sup_inf"] = "inf"; } else { $get["dropdown_sup_inf"] = "sup"; } } break; } $get["dropdown_calendar"] = substr($get["contains"][$index], 1); } } return $get; } /** * Reset the search engine */ function resetSearch() { $_GET["start"] = 0; $_GET["order"] = "ASC"; $_GET["is_deleted"] = 0; $_GET["distinct"] = "N"; $_GET["link"] = []; $_GET["field"] = [0 => "view"]; $_GET["contains"] = [0 => ""]; $_GET["link2"] = []; $_GET["field2"] = [0 => "view"]; $_GET["contains2"] = [0 => ""]; $_GET["type2"] = ""; $_GET["sort"] = 1; $_GET["dropdown_sup_inf"] = "sup"; $_GET["dropdown_calendar"] = date("Y-m-d H:i"); }