makeTitle() static public method

Create a title for list, as "List (5 on 35)"
static public makeTitle ( $string, $num, $tot ) : String
$string String text for title
$num Integer number of item displayed
$tot Integer number of item existing
return String
Example #1
0
 /**
  * @param $start
  * @param $status             (default ''process)
  * @param $showgrouptickets   (true by default)
  */
 static function showCentralList($start, $status = "process", $showgrouptickets = true)
 {
     global $DB, $CFG_GLPI;
     if (!Session::haveRightsOr(self::$rightname, array(CREATE, self::READALL, self::READASSIGN)) && !Session::haveRightsOr('ticketvalidation', TicketValidation::getValidateRights())) {
         return false;
     }
     $search_users_id = " (`glpi_tickets_users`.`users_id` = '" . Session::getLoginUserID() . "'\n                            AND `glpi_tickets_users`.`type` = '" . CommonITILActor::REQUESTER . "') ";
     $search_assign = " (`glpi_tickets_users`.`users_id` = '" . Session::getLoginUserID() . "'\n                            AND `glpi_tickets_users`.`type` = '" . CommonITILActor::ASSIGN . "')";
     $search_observer = " (`glpi_tickets_users`.`users_id` = '" . Session::getLoginUserID() . "'\n                            AND `glpi_tickets_users`.`type` = '" . CommonITILActor::OBSERVER . "')";
     $is_deleted = " `glpi_tickets`.`is_deleted` = 0 ";
     if ($showgrouptickets) {
         $search_users_id = " 0 = 1 ";
         $search_assign = " 0 = 1 ";
         if (count($_SESSION['glpigroups'])) {
             $groups = implode("','", $_SESSION['glpigroups']);
             $search_assign = " (`glpi_groups_tickets`.`groups_id` IN ('" . $groups . "')\n                                AND `glpi_groups_tickets`.`type` = '" . CommonITILActor::ASSIGN . "')";
             if (Session::haveRight(self::$rightname, self::READGROUP)) {
                 $search_users_id = " (`glpi_groups_tickets`.`groups_id` IN ('" . $groups . "')\n                                     AND `glpi_groups_tickets`.`type`\n                                           = '" . CommonITILActor::REQUESTER . "') ";
                 $search_observer = " (`glpi_groups_tickets`.`groups_id` IN ('" . $groups . "')\n                                     AND `glpi_groups_tickets`.`type`\n                                           = '" . CommonITILActor::OBSERVER . "') ";
             }
         }
     }
     $query = "SELECT DISTINCT `glpi_tickets`.`id`\n                FROM `glpi_tickets`\n                LEFT JOIN `glpi_tickets_users`\n                     ON (`glpi_tickets`.`id` = `glpi_tickets_users`.`tickets_id`)\n                LEFT JOIN `glpi_groups_tickets`\n                     ON (`glpi_tickets`.`id` = `glpi_groups_tickets`.`tickets_id`)";
     switch ($status) {
         case "waiting":
             // on affiche les tickets en attente
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_assign})\n                             AND `status` = '" . self::WAITING . "' " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "process":
             // on affiche les tickets planifiés ou assignés au user
             $query .= "WHERE {$is_deleted}\n                             AND ( {$search_assign} )\n                             AND (`status` IN ('" . implode("','", self::getProcessStatusArray()) . "')) " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "toapprove":
             // on affiche les tickets planifiés ou assignés au user
             $query .= "WHERE {$is_deleted}\n                             AND (`status` = '" . self::SOLVED . "')\n                             AND ({$search_users_id}";
             if (!$showgrouptickets && Session::haveRight('ticket', Ticket::SURVEY)) {
                 $query .= " OR `glpi_tickets`.users_id_recipient = '" . Session::getLoginUserID() . "' ";
             }
             $query .= ")" . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "tovalidate":
             // on affiche les tickets à valider
             $query .= " LEFT JOIN `glpi_ticketvalidations`\n                           ON (`glpi_tickets`.`id` = `glpi_ticketvalidations`.`tickets_id`)\n                        WHERE {$is_deleted}\n                              AND `users_id_validate` = '" . Session::getLoginUserID() . "'\n                              AND `glpi_ticketvalidations`.`status` = '" . CommonITILValidation::WAITING . "'\n                              AND (`glpi_tickets`.`status` NOT IN ('" . self::CLOSED . "',\n                                                                   '" . self::SOLVED . "')) " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "rejected":
             // on affiche les tickets rejetés
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_assign})\n                             AND `status` <> '" . self::CLOSED . "'\n                             AND `global_validation` = '" . CommonITILValidation::REFUSED . "' " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "observed":
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_observer})\n                             AND (`status` IN ('" . self::INCOMING . "',\n                                               '" . self::PLANNED . "',\n                                               '" . self::ASSIGNED . "',\n                                               '" . self::WAITING . "'))\n                             AND NOT ( {$search_assign} )\n                             AND NOT ( {$search_users_id} ) " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "survey":
             // tickets dont l'enquête de satisfaction n'est pas remplie et encore valide
             $query .= " INNER JOIN `glpi_ticketsatisfactions`\n                           ON (`glpi_tickets`.`id` = `glpi_ticketsatisfactions`.`tickets_id`)\n                        INNER JOIN `glpi_entities`\n                           ON (`glpi_entities`.`id` = `glpi_tickets`.`entities_id`)\n                        WHERE {$is_deleted}\n                              AND ({$search_users_id}\n                                   OR `glpi_tickets`.`users_id_recipient` = '" . Session::getLoginUserID() . "')\n                              AND `glpi_tickets`.`status` = '" . self::CLOSED . "'\n                              AND (`glpi_entities`.`inquest_duration` = 0\n                                   OR DATEDIFF(ADDDATE(`glpi_ticketsatisfactions`.`date_begin`,\n                                                       INTERVAL\n                                                       `glpi_entities`.`inquest_duration` DAY),\n                                               CURDATE()) > 0)\n                              AND `glpi_ticketsatisfactions`.`date_answered` IS NULL " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "requestbyself":
             // on affiche les tickets demandés le user qui sont planifiés ou assignés
             // à quelqu'un d'autre (exclut les self-tickets)
         // on affiche les tickets demandés le user qui sont planifiés ou assignés
         // à quelqu'un d'autre (exclut les self-tickets)
         default:
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_users_id})\n                             AND (`status` IN ('" . self::INCOMING . "',\n                                               '" . self::PLANNED . "',\n                                               '" . self::ASSIGNED . "',\n                                               '" . self::WAITING . "'))\n                             AND NOT ( {$search_assign} ) " . getEntitiesRestrictRequest("AND", "glpi_tickets");
     }
     $query .= " ORDER BY `glpi_tickets`.`date_mod` DESC";
     $result = $DB->query($query);
     $numrows = $DB->numrows($result);
     if ($_SESSION['glpidisplay_count_on_home'] > 0) {
         $query .= " LIMIT " . intval($start) . ',' . intval($_SESSION['glpidisplay_count_on_home']);
         $result = $DB->query($query);
         $number = $DB->numrows($result);
     } else {
         $number = 0;
     }
     if ($numrows > 0) {
         echo "<table class='tab_cadrehov'>";
         echo "<tr class='noHover'><th colspan='4'>";
         $options['reset'] = 'reset';
         $forcetab = '';
         $num = 0;
         if ($showgrouptickets) {
             switch ($status) {
                 case "toapprove":
                     $options['criteria'][0]['field'] = 12;
                     // status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = self::SOLVED;
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 71;
                     // groups_id
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = 'mygroups';
                     $options['criteria'][1]['link'] = 'AND';
                     $forcetab = 'Ticket$2';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets to close'), $number, $numrows) . "</a>";
                     break;
                 case "waiting":
                     $options['criteria'][0]['field'] = 12;
                     // status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = self::WAITING;
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 8;
                     // groups_id_assign
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = 'mygroups';
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Tickets on pending status'), $number, $numrows) . "</a>";
                     break;
                 case "process":
                     $options['criteria'][0]['field'] = 12;
                     // status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = 'process';
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 8;
                     // groups_id_assign
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = 'mygroups';
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Tickets to be processed'), $number, $numrows) . "</a>";
                     break;
                 case "observed":
                     $options['criteria'][0]['field'] = 12;
                     // status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = 'notold';
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 65;
                     // groups_id
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = 'mygroups';
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your observed tickets'), $number, $numrows) . "</a>";
                     break;
                 case "requestbyself":
                 default:
                     $options['criteria'][0]['field'] = 12;
                     // status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = 'notold';
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 71;
                     // groups_id
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = 'mygroups';
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets in progress'), $number, $numrows) . "</a>";
             }
         } else {
             switch ($status) {
                 case "waiting":
                     $options['criteria'][0]['field'] = 12;
                     // status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = self::WAITING;
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 5;
                     // users_id_assign
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = Session::getLoginUserID();
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Tickets on pending status'), $number, $numrows) . "</a>";
                     break;
                 case "process":
                     $options['criteria'][0]['field'] = 5;
                     // users_id_assign
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = Session::getLoginUserID();
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 12;
                     // status
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = 'process';
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Tickets to be processed'), $number, $numrows) . "</a>";
                     break;
                 case "tovalidate":
                     $options['criteria'][0]['field'] = 55;
                     // validation status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = CommonITILValidation::WAITING;
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 59;
                     // validation aprobator
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = Session::getLoginUserID();
                     $options['criteria'][1]['link'] = 'AND';
                     $options['criteria'][2]['field'] = 12;
                     // validation aprobator
                     $options['criteria'][2]['searchtype'] = 'equals';
                     $options['criteria'][2]['value'] = 'old';
                     $options['criteria'][2]['link'] = 'AND NOT';
                     $forcetab = 'TicketValidation$1';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets to validate'), $number, $numrows) . "</a>";
                     break;
                 case "rejected":
                     $options['criteria'][0]['field'] = 52;
                     // validation status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = CommonITILValidation::REFUSED;
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 5;
                     // assign user
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = Session::getLoginUserID();
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your rejected tickets'), $number, $numrows) . "</a>";
                     break;
                 case "toapprove":
                     $options['criteria'][0]['field'] = 12;
                     // status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = self::SOLVED;
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 4;
                     // users_id_assign
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = Session::getLoginUserID();
                     $options['criteria'][1]['link'] = 'AND';
                     $options['criteria'][2]['field'] = 22;
                     // users_id_recipient
                     $options['criteria'][2]['searchtype'] = 'equals';
                     $options['criteria'][2]['value'] = Session::getLoginUserID();
                     $options['criteria'][2]['link'] = 'OR';
                     $options['criteria'][3]['field'] = 12;
                     // status
                     $options['criteria'][3]['searchtype'] = 'equals';
                     $options['criteria'][3]['value'] = self::SOLVED;
                     $options['criteria'][3]['link'] = 'AND';
                     $forcetab = 'Ticket$2';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets to close'), $number, $numrows) . "</a>";
                     break;
                 case "observed":
                     $options['criteria'][0]['field'] = 66;
                     // users_id
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = Session::getLoginUserID();
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 12;
                     // status
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = 'notold';
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your observed tickets'), $number, $numrows) . "</a>";
                     break;
                 case "survey":
                     $options['criteria'][0]['field'] = 12;
                     // status
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = self::CLOSED;
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 60;
                     // enquete generee
                     $options['criteria'][1]['searchtype'] = 'contains';
                     $options['criteria'][1]['value'] = '^';
                     $options['criteria'][1]['link'] = 'AND';
                     $options['criteria'][2]['field'] = 61;
                     // date_answered
                     $options['criteria'][2]['searchtype'] = 'contains';
                     $options['criteria'][2]['value'] = 'NULL';
                     $options['criteria'][2]['link'] = 'AND';
                     $options['criteria'][3]['field'] = 22;
                     // auteur
                     $options['criteria'][3]['searchtype'] = 'equals';
                     $options['criteria'][3]['value'] = Session::getLoginUserID();
                     $options['criteria'][3]['link'] = 'AND';
                     $forcetab = 'Ticket$3';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Satisfaction survey'), $number, $numrows) . "</a>";
                     break;
                 case "requestbyself":
                 default:
                     $options['criteria'][0]['field'] = 4;
                     // users_id
                     $options['criteria'][0]['searchtype'] = 'equals';
                     $options['criteria'][0]['value'] = Session::getLoginUserID();
                     $options['criteria'][0]['link'] = 'AND';
                     $options['criteria'][1]['field'] = 12;
                     // status
                     $options['criteria'][1]['searchtype'] = 'equals';
                     $options['criteria'][1]['value'] = 'notold';
                     $options['criteria'][1]['link'] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets in progress'), $number, $numrows) . "</a>";
             }
         }
         echo "</th></tr>";
         if ($number) {
             echo "<tr><th></th>";
             echo "<th>" . __('Requester') . "</th>";
             echo "<th>" . _n('Associated element', 'Associated elements', Session::getPluralNumber()) . "</th>";
             echo "<th>" . __('Description') . "</th></tr>";
             for ($i = 0; $i < $number; $i++) {
                 $ID = $DB->result($result, $i, "id");
                 self::showVeryShort($ID, $forcetab);
             }
         }
         echo "</table>";
     }
 }
Example #2
0
 /**
  * @param $start
  * @param $status             (default ''process)
  * @param $showgrouptickets   (true by default)
  */
 static function showCentralList($start, $status = "process", $showgrouptickets = true)
 {
     global $DB, $CFG_GLPI;
     if (!Session::haveRight("show_all_ticket", "1") && !Session::haveRight("show_assign_ticket", "1") && !Session::haveRight("create_ticket", "1") && !Session::haveRight("validate_incident", "1") && !Session::haveRight("validate_request", "1")) {
         return false;
     }
     $search_users_id = " (`glpi_tickets_users`.`users_id` = '" . Session::getLoginUserID() . "'\n                            AND `glpi_tickets_users`.`type` = '" . CommonITILActor::REQUESTER . "') ";
     $search_assign = " (`glpi_tickets_users`.`users_id` = '" . Session::getLoginUserID() . "'\n                            AND `glpi_tickets_users`.`type` = '" . CommonITILActor::ASSIGN . "')";
     $is_deleted = " `glpi_tickets`.`is_deleted` = 0 ";
     if ($showgrouptickets) {
         $search_users_id = " 0 = 1 ";
         $search_assign = " 0 = 1 ";
         if (count($_SESSION['glpigroups'])) {
             $groups = implode("','", $_SESSION['glpigroups']);
             $search_assign = " (`glpi_groups_tickets`.`groups_id` IN ('{$groups}')\n                                AND `glpi_groups_tickets`.`type` = '" . CommonITILActor::ASSIGN . "')";
             if (Session::haveRight("show_group_ticket", 1)) {
                 $search_users_id = " (`glpi_groups_tickets`.`groups_id` IN ('{$groups}')\n                                     AND `glpi_groups_tickets`.`type`\n                                           = '" . CommonITILActor::REQUESTER . "') ";
             }
         }
     }
     $query = "SELECT DISTINCT `glpi_tickets`.`id`\n                FROM `glpi_tickets`\n                LEFT JOIN `glpi_tickets_users`\n                     ON (`glpi_tickets`.`id` = `glpi_tickets_users`.`tickets_id`)\n                LEFT JOIN `glpi_groups_tickets`\n                     ON (`glpi_tickets`.`id` = `glpi_groups_tickets`.`tickets_id`)";
     switch ($status) {
         case "waiting":
             // on affiche les tickets en attente
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_assign})\n                             AND `status` = '" . self::WAITING . "' " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "process":
             // on affiche les tickets planifiés ou assignés au user
             $query .= "WHERE {$is_deleted}\n                             AND ( {$search_assign} )\n                             AND (`status` IN ('" . implode("','", self::getProcessStatusArray()) . "')) " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "toapprove":
             // on affiche les tickets planifiés ou assignés au user
             $query .= "WHERE {$is_deleted}\n                             AND (`status` = '" . self::SOLVED . "')\n                             AND ({$search_users_id}";
             if (!$showgrouptickets) {
                 $query .= " OR `glpi_tickets`.users_id_recipient = '" . Session::getLoginUserID() . "' ";
             }
             $query .= ")" . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "tovalidate":
             // on affiche les tickets à valider
             $query .= " LEFT JOIN `glpi_ticketvalidations`\n                           ON (`glpi_tickets`.`id` = `glpi_ticketvalidations`.`tickets_id`)\n                        WHERE {$is_deleted} AND `users_id_validate` = '" . Session::getLoginUserID() . "'\n                              AND `glpi_ticketvalidations`.`status` = 'waiting'\n                              AND (`glpi_tickets`.`status` NOT IN ('" . self::CLOSED . "',\n                                                                   '" . self::SOLVED . "')) " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "rejected":
             // on affiche les tickets rejetés
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_assign})\n                             AND `status` <> '" . self::CLOSED . "'\n                             AND `global_validation` = 'rejected' " . getEntitiesRestrictRequest("AND", "glpi_tickets");
             break;
         case "requestbyself":
             // on affiche les tickets demandés le user qui sont planifiés ou assignés
             // à quelqu'un d'autre (exclut les self-tickets)
         // on affiche les tickets demandés le user qui sont planifiés ou assignés
         // à quelqu'un d'autre (exclut les self-tickets)
         default:
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_users_id})\n                             AND (`status` IN ('" . self::INCOMING . "',\n                                               '" . self::PLANNED . "',\n                                               '" . self::ASSIGNED . "',\n                                               '" . self::WAITING . "'))\n                             AND NOT ( {$search_assign} ) " . getEntitiesRestrictRequest("AND", "glpi_tickets");
     }
     $query .= " ORDER BY date_mod DESC";
     $result = $DB->query($query);
     $numrows = $DB->numrows($result);
     if ($_SESSION['glpidisplay_count_on_home'] > 0) {
         $query .= " LIMIT " . intval($start) . ',' . intval($_SESSION['glpidisplay_count_on_home']);
         $result = $DB->query($query);
         $number = $DB->numrows($result);
     } else {
         $number = 0;
     }
     if ($numrows > 0) {
         echo "<table class='tab_cadrehov' style='width:420px'>";
         echo "<tr><th colspan='5'>";
         $options['reset'] = 'reset';
         $forcetab = '';
         $num = 0;
         if ($showgrouptickets) {
             switch ($status) {
                 case "toapprove":
                     foreach ($_SESSION['glpigroups'] as $gID) {
                         $options['field'][$num] = 71;
                         // groups_id
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = $gID;
                         $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
                         $num++;
                         $options['field'][$num] = 12;
                         // status
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = self::SOLVED;
                         $options['link'][$num] = 'AND';
                         $num++;
                         $forcetab = 'Ticket$2';
                     }
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets to close'), $number, $numrows) . "</a>";
                     break;
                 case "waiting":
                     foreach ($_SESSION['glpigroups'] as $gID) {
                         $options['field'][$num] = 8;
                         // groups_id_assign
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = $gID;
                         $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
                         $num++;
                         $options['field'][$num] = 12;
                         // status
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = self::WAITING;
                         $options['link'][$num] = 'AND';
                         $num++;
                     }
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Tickets on pending status'), $number, $numrows) . "</a>";
                     break;
                 case "process":
                     foreach ($_SESSION['glpigroups'] as $gID) {
                         $options['field'][$num] = 8;
                         // groups_id_assign
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = $gID;
                         $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
                         $num++;
                         $options['field'][$num] = 12;
                         // status
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = 'process';
                         $options['link'][$num] = 'AND';
                         $num++;
                     }
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Tickets to be processed'), $number, $numrows) . "</a>";
                     break;
                 case "requestbyself":
                 default:
                     foreach ($_SESSION['glpigroups'] as $gID) {
                         $options['field'][$num] = 71;
                         // groups_id
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = $gID;
                         $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
                         $num++;
                         $options['field'][$num] = 12;
                         // status
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = 'notold';
                         $options['link'][$num] = 'AND';
                         $num++;
                     }
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets in progress'), $number, $numrows) . "</a>";
             }
         } else {
             switch ($status) {
                 case "waiting":
                     $options['field'][0] = 12;
                     // status
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = self::WAITING;
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 5;
                     // users_id_assign
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = Session::getLoginUserID();
                     $options['link'][1] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Tickets on pending status'), $number, $numrows) . "</a>";
                     break;
                 case "process":
                     $options['field'][0] = 5;
                     // users_id_assign
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = Session::getLoginUserID();
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 12;
                     // status
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = 'process';
                     $options['link'][1] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Tickets to be processed'), $number, $numrows) . "</a>";
                     break;
                 case "tovalidate":
                     $options['field'][0] = 55;
                     // validation status
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = 'waiting';
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 59;
                     // validation aprobator
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = Session::getLoginUserID();
                     $options['link'][1] = 'AND';
                     $options['field'][2] = 12;
                     // validation aprobator
                     $options['searchtype'][2] = 'equals';
                     $options['contains'][2] = 'old';
                     $options['link'][2] = 'AND NOT';
                     $forcetab = 'TicketValidation$1';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets to validate'), $number, $numrows) . "</a>";
                     break;
                 case "rejected":
                     $options['field'][0] = 52;
                     // validation status
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = 'rejected';
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 5;
                     // assign user
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = Session::getLoginUserID();
                     $options['link'][1] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your rejected tickets'), $number, $numrows) . "</a>";
                     break;
                 case "toapprove":
                     $options['field'][0] = 12;
                     // status
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = self::SOLVED;
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 4;
                     // users_id_assign
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = Session::getLoginUserID();
                     $options['link'][1] = 'AND';
                     $options['field'][2] = 22;
                     // users_id_recipient
                     $options['searchtype'][2] = 'equals';
                     $options['contains'][2] = Session::getLoginUserID();
                     $options['link'][2] = 'OR';
                     $options['field'][3] = 12;
                     // status
                     $options['searchtype'][3] = 'equals';
                     $options['contains'][3] = self::SOLVED;
                     $options['link'][3] = 'AND';
                     $forcetab = 'Ticket$2';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets to close'), $number, $numrows) . "</a>";
                     break;
                 case "requestbyself":
                 default:
                     $options['field'][0] = 4;
                     // users_id
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = Session::getLoginUserID();
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 12;
                     // status
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = 'notold';
                     $options['link'][1] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your tickets in progress'), $number, $numrows) . "</a>";
             }
         }
         echo "</th></tr>";
         if ($number) {
             echo "<tr><th></th>";
             echo "<th>" . __('Requester') . "</th>";
             echo "<th>" . __('Associated element') . "</th>";
             echo "<th>" . __('Description') . "</th></tr>";
             for ($i = 0; $i < $number; $i++) {
                 $ID = $DB->result($result, $i, "id");
                 self::showVeryShort($ID, $forcetab);
             }
         }
         echo "</table>";
     }
 }
Example #3
0
 static function showCentralSpecificList($type)
 {
     global $CFG_GLPI, $DB;
     if (!Session::haveRight("ticket", Ticket::READALL) && !Session::haveRight("ticket", Ticket::READASSIGN) && !Session::haveRight("ticket", CREATE) && !Session::haveRight("ticketvalidation", TicketValidation::VALIDATEREQUEST & TicketValidation::VALIDATEINCIDENT)) {
         return false;
     }
     $groups = implode("','", $_SESSION['glpigroups']);
     $numrows = 0;
     $is_deleted = " `glpi_tickets`.`is_deleted` = 0 ";
     if ($type == "notold") {
         $title = __("Tickets to follow (climbed)", "escalade");
         $status = CommonITILObject::INCOMING . ", " . CommonITILObject::PLANNED . ", " . CommonITILObject::ASSIGNED . ", " . CommonITILObject::WAITING;
         $search_assign = " `glpi_plugin_escalade_histories`.`groups_id` IN ('{$groups}')\n            AND (`glpi_groups_tickets`.`groups_id` NOT IN ('{$groups}')\n            OR `glpi_groups_tickets`.`groups_id` IS NULL)";
         $query_join = "LEFT JOIN `glpi_plugin_escalade_histories`\n            ON (`glpi_tickets`.`id` = `glpi_plugin_escalade_histories`.`tickets_id`)\n         LEFT JOIN `glpi_groups_tickets`\n            ON (`glpi_tickets`.`id` = `glpi_groups_tickets`.`tickets_id`\n               AND `glpi_groups_tickets`.`type`=2)";
     } else {
         $title = __("Tickets to close (climbed)", "escalade");
         $status = CommonITILObject::SOLVED;
         $search_assign = " (`glpi_groups_tickets`.`groups_id` IN ('{$groups}'))";
         $query_join = "LEFT JOIN `glpi_groups_tickets`\n            ON (`glpi_tickets`.`id` = `glpi_groups_tickets`.`tickets_id`\n               AND `glpi_groups_tickets`.`type`=2)";
     }
     $query = "SELECT DISTINCT `glpi_tickets`.`id`\n               FROM `glpi_tickets`\n               LEFT JOIN `glpi_tickets_users`\n                  ON (`glpi_tickets`.`id` = `glpi_tickets_users`.`tickets_id`)";
     $query .= $query_join;
     $query .= "WHERE {$is_deleted} AND ( {$search_assign} )\n                            AND (`status` IN ({$status}))" . getEntitiesRestrictRequest("AND", "glpi_tickets");
     $query .= " ORDER BY glpi_tickets.date_mod DESC";
     $result = $DB->query($query);
     $numrows = $DB->numrows($result);
     if (!$numrows) {
         return;
     }
     $query .= " LIMIT 0, 5";
     $result = $DB->query($query);
     $number = $DB->numrows($result);
     //show central list
     if ($numrows > 0) {
         //construct link to ticket list
         $options['reset'] = 'reset';
         $options['criteria'][0]['field'] = 12;
         // status
         $options['criteria'][0]['searchtype'] = 'equals';
         if ($type == 'notold') {
             $options['criteria'][0]['value'] = 'notold';
         } else {
             if ($type == 'solved') {
                 $options['criteria'][0]['value'] = 5;
             }
         }
         $options['criteria'][0]['link'] = 'AND';
         if ($type == 'notold') {
             $options['criteria'][1]['field'] = 1881;
             // groups_id_assign for escalade history
             $options['criteria'][1]['searchtype'] = 'equals';
             $options['criteria'][1]['value'] = 'mygroups';
             $options['criteria'][1]['link'] = 'AND';
         }
         $options['criteria'][2]['field'] = 8;
         // groups_id_assign
         if ($type == 'notold') {
             $options['criteria'][2]['searchtype'] = 'notequals';
         } else {
             $options['criteria'][2]['searchtype'] = 'equals';
         }
         $options['criteria'][2]['value'] = 'mygroups';
         $options['criteria'][2]['link'] = 'AND';
         echo "<table class='tab_cadrehov' id='pluginEscaladeCentralList'>";
         echo "<tr><th colspan='5'>";
         echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle($title, $number, $numrows) . "</a>";
         echo "</th></tr>";
         if ($number) {
             echo "<tr>";
             echo "<th></th>";
             echo "<th>" . __('Requester') . "</th>";
             echo "<th>" . __('Associated element') . "</th>";
             echo "<th>" . __('Description') . "</th></tr>";
             for ($i = 0; $i < $number; $i++) {
                 $ID = $DB->result($result, $i, "id");
                 Ticket::showVeryShort($ID, 'Ticket$2');
             }
         }
         echo "</table>";
         echo "<br />";
     }
 }
Example #4
0
 /**
  * @since version 0.84
  *
  * @param $start
  * @param $status             (default 'proces)
  * @param $showgroupproblems  (true by default)
  **/
 static function showCentralList($start, $status = "process", $showgroupproblems = true)
 {
     global $DB, $CFG_GLPI;
     if (!Session::haveRight("show_all_problem", "1") && !Session::haveRight("show_my_problem", "1")) {
         return false;
     }
     $search_users_id = " (`glpi_problems_users`.`users_id` = '" . Session::getLoginUserID() . "'\n                            AND `glpi_problems_users`.`type` = '" . CommonITILActor::REQUESTER . "') ";
     $search_assign = " (`glpi_problems_users`.`users_id` = '" . Session::getLoginUserID() . "'\n                            AND `glpi_problems_users`.`type` = '" . CommonITILActor::ASSIGN . "')";
     $is_deleted = " `glpi_problems`.`is_deleted` = 0 ";
     if ($showgroupproblems) {
         $search_users_id = " 0 = 1 ";
         $search_assign = " 0 = 1 ";
         if (count($_SESSION['glpigroups'])) {
             $groups = implode("','", $_SESSION['glpigroups']);
             $search_assign = " (`glpi_groups_problems`.`groups_id` IN ('{$groups}')\n                                  AND `glpi_groups_problems`.`type`\n                                        = '" . CommonITILActor::ASSIGN . "')";
             $search_users_id = " (`glpi_groups_problems`.`groups_id` IN ('{$groups}')\n                                  AND `glpi_groups_problems`.`type`\n                                        = '" . CommonITILActor::REQUESTER . "') ";
         }
     }
     $query = "SELECT DISTINCT `glpi_problems`.`id`\n                FROM `glpi_problems`\n                LEFT JOIN `glpi_problems_users`\n                     ON (`glpi_problems`.`id` = `glpi_problems_users`.`problems_id`)\n                LEFT JOIN `glpi_groups_problems`\n                     ON (`glpi_problems`.`id` = `glpi_groups_problems`.`problems_id`)";
     switch ($status) {
         case "waiting":
             // on affiche les problemes en attente
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_assign})\n                             AND `status` = '" . self::WAITING . "' " . getEntitiesRestrictRequest("AND", "glpi_problems");
             break;
         case "process":
             // on affiche les problemes planifiés ou assignés au user
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_assign})\n                             AND (`status` IN ('" . self::PLANNED . "','" . self::ASSIGNED . "')) " . getEntitiesRestrictRequest("AND", "glpi_problems");
             break;
         default:
             $query .= "WHERE {$is_deleted}\n                             AND ({$search_users_id})\n                             AND (`status` IN ('" . self::INCOMING . "',\n                                               '" . self::ACCEPTED . "',\n                                               '" . self::PLANNED . "',\n                                               '" . self::ASSIGNED . "',\n                                               '" . self::WAITING . "'))\n                             AND NOT ({$search_assign}) " . getEntitiesRestrictRequest("AND", "glpi_problems");
     }
     $query .= " ORDER BY date_mod DESC";
     $result = $DB->query($query);
     $numrows = $DB->numrows($result);
     if ($_SESSION['glpidisplay_count_on_home'] > 0) {
         $query .= " LIMIT " . intval($start) . ',' . intval($_SESSION['glpidisplay_count_on_home']);
         $result = $DB->query($query);
         $number = $DB->numrows($result);
     } else {
         $number = 0;
     }
     if ($numrows > 0) {
         echo "<table class='tab_cadrehov' style='width:420px'>";
         echo "<tr><th colspan='5'>";
         $options['reset'] = 'reset';
         $forcetab = '';
         $num = 0;
         if ($showgroupproblems) {
             switch ($status) {
                 case "waiting":
                     foreach ($_SESSION['glpigroups'] as $gID) {
                         $options['field'][$num] = 8;
                         // groups_id_assign
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = $gID;
                         $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
                         $num++;
                         $options['field'][$num] = 12;
                         // status
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = self::WAITING;
                         $options['link'][$num] = 'AND';
                         $num++;
                     }
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/problem.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Problems on pending status'), $number, $numrows) . "</a>";
                     break;
                 case "process":
                     foreach ($_SESSION['glpigroups'] as $gID) {
                         $options['field'][$num] = 8;
                         // groups_id_assign
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = $gID;
                         $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
                         $num++;
                         $options['field'][$num] = 12;
                         // status
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = 'process';
                         $options['link'][$num] = 'AND';
                         $num++;
                     }
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/problem.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Problems to be processed'), $number, $numrows) . "</a>";
                     break;
                 default:
                     foreach ($_SESSION['glpigroups'] as $gID) {
                         $options['field'][$num] = 71;
                         // groups_id
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = $gID;
                         $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
                         $num++;
                         $options['field'][$num] = 12;
                         // status
                         $options['searchtype'][$num] = 'equals';
                         $options['contains'][$num] = 'process';
                         $options['link'][$num] = 'AND';
                         $num++;
                     }
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/problem.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your problems in progress'), $number, $numrows) . "</a>";
             }
         } else {
             switch ($status) {
                 case "waiting":
                     $options['field'][0] = 12;
                     // status
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = self::WAITING;
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 5;
                     // users_id_assign
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = Session::getLoginUserID();
                     $options['link'][1] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/problem.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Problems on pending status'), $number, $numrows) . "</a>";
                     break;
                 case "process":
                     $options['field'][0] = 5;
                     // users_id_assign
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = Session::getLoginUserID();
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 12;
                     // status
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = 'process';
                     $options['link'][1] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/problem.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Problems to be processed'), $number, $numrows) . "</a>";
                     break;
                 default:
                     $options['field'][0] = 4;
                     // users_id
                     $options['searchtype'][0] = 'equals';
                     $options['contains'][0] = Session::getLoginUserID();
                     $options['link'][0] = 'AND';
                     $options['field'][1] = 12;
                     // status
                     $options['searchtype'][1] = 'equals';
                     $options['contains'][1] = 'notold';
                     $options['link'][1] = 'AND';
                     echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/problem.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle(__('Your problems in progress'), $number, $numrows) . "</a>";
             }
         }
         echo "</th></tr>";
         if ($number) {
             echo "<tr><th></th>";
             echo "<th>" . __('Requester') . "</th>";
             echo "<th>" . __('Description') . "</th></tr>";
             for ($i = 0; $i < $number; $i++) {
                 $ID = $DB->result($result, $i, "id");
                 self::showVeryShort($ID, $forcetab);
             }
         }
         echo "</table>";
     }
 }
Example #5
0
 static function showCentralSpecificList($type)
 {
     global $CFG_GLPI, $DB;
     if (!Session::haveRight("show_all_ticket", "1") && !Session::haveRight("show_assign_ticket", "1") && !Session::haveRight("create_ticket", "1") && !Session::haveRight("validate_ticket", "1")) {
         return false;
     }
     $groups = implode("','", $_SESSION['glpigroups']);
     $numrows = 0;
     $is_deleted = " `glpi_tickets`.`is_deleted` = 0 ";
     if ($type == "notold") {
         $title = __("Tickets to follow (climbed)", "escalade");
         $status = CommonITILObject::INCOMING . ", " . CommonITILObject::PLANNED . ", " . CommonITILObject::ASSIGNED . ", " . CommonITILObject::WAITING;
         $search_assign = " `glpi_plugin_escalade_histories`.`groups_id` IN ('{$groups}')\n            AND (`glpi_groups_tickets`.`groups_id` NOT IN ('{$groups}')\n            OR `glpi_groups_tickets`.`groups_id` IS NULL)";
         $query_join = "LEFT JOIN `glpi_plugin_escalade_histories`\n            ON (`glpi_tickets`.`id` = `glpi_plugin_escalade_histories`.`tickets_id`)\n         LEFT JOIN `glpi_groups_tickets`\n            ON (`glpi_tickets`.`id` = `glpi_groups_tickets`.`tickets_id` \n               AND `glpi_groups_tickets`.`type`=2)";
     } else {
         $title = __("Tickets to close (climbed)", "escalade");
         $status = CommonITILObject::SOLVED;
         $search_assign = " (`glpi_groups_tickets`.`groups_id` IN ('{$groups}'))";
         $query_join = "LEFT JOIN `glpi_groups_tickets`\n            ON (`glpi_tickets`.`id` = `glpi_groups_tickets`.`tickets_id` \n               AND `glpi_groups_tickets`.`type`=2)";
     }
     $query = "SELECT DISTINCT `glpi_tickets`.`id`\n      FROM `glpi_tickets`\n      LEFT JOIN `glpi_tickets_users`\n         ON (`glpi_tickets`.`id` = `glpi_tickets_users`.`tickets_id`)";
     $query .= $query_join;
     $query .= "WHERE {$is_deleted} AND ( {$search_assign} )\n                            AND (`status` IN ({$status}))" . getEntitiesRestrictRequest("AND", "glpi_tickets");
     $query .= " ORDER BY glpi_tickets.date_mod DESC";
     $result = $DB->query($query);
     $numrows = $DB->numrows($result);
     if (!$numrows) {
         return;
     }
     $query .= " LIMIT 0, 5";
     $result = $DB->query($query);
     $number = $DB->numrows($result);
     //show central list
     if ($numrows > 0) {
         //construct link to ticket list
         $options['reset'] = 'reset';
         $num = 0;
         foreach ($_SESSION['glpigroups'] as $gID) {
             $options['field'][$num] = 8;
             if ($type == "notold") {
                 $options['searchtype'][$num] = 'notequals';
                 $options['contains'][$num] = $gID;
                 $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
                 $num++;
                 $options['field'][$num] = 1881;
                 //see hook.php, function ..._getAddSearchOptions
             }
             $options['searchtype'][$num] = 'equals';
             $options['contains'][$num] = $gID;
             if ($type == "notold") {
                 $options['link'][$num] = 'AND';
             } else {
                 $options['link'][$num] = $num == 0 ? 'AND' : 'OR';
             }
             $num++;
             $options['field'][$num] = 12;
             // status
             $options['searchtype'][$num] = 'equals';
             $options['contains'][$num] = $type;
             $options['link'][$num] = 'AND';
             $num++;
         }
         echo "<table><tr><td class='top' width='450px'>";
         echo "<table class='tab_cadrehov' id='pluginEscaladeCentralList' style='width:420px'>";
         echo "<tr><th colspan='5'>";
         echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($options, '&amp;') . "\">" . Html::makeTitle($title, $number, $numrows) . "</a>";
         echo "</a>";
         echo "</th></tr>";
         if ($number) {
             echo "<tr><th></th>";
             echo "<th>" . __('Requester') . "</th>";
             echo "<th>" . __('Associated element') . "</th>";
             echo "<th>" . __('Description') . "</th></tr>";
             for ($i = 0; $i < $number; $i++) {
                 $ID = $DB->result($result, $i, "id");
                 Ticket::showVeryShort($ID, 'Ticket$2');
             }
         }
         echo "</table>";
         echo "</td></tr></table>";
     }
 }