%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/projetos/suporte.iigd.com.br/plugins/glpiinventory/report/
Upload File :
Create Path :
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");
}

Zerion Mini Shell 1.0