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
 /**
  * Print a nice HTML head for help page
  *
  * @param $title  title of the page
  * @param $url    not used anymore (default '')
  **/
 static function helpHeader($title, $url = '')
 {
     global $CFG_GLPI, $HEADER_LOADED, $PLUGIN_HOOKS;
     // Print a nice HTML-head for help page
     if ($HEADER_LOADED) {
         return;
     }
     $HEADER_LOADED = true;
     self::includeHeader($title);
     // Body
     $body_class = "layout_" . $_SESSION['glpilayout'];
     if (strpos($_SERVER['REQUEST_URI'], "form.php") !== false && isset($_GET['id']) && $_GET['id'] > 0) {
         if (!CommonGLPI::isLayoutExcludedPage()) {
             $body_class .= " form";
         } else {
             $body_class = "";
         }
     }
     echo "<body class='{$body_class}'>";
     // Main Headline
     echo "<div id='header'>";
     echo "<div id='header_top'>";
     echo "<div id='c_logo'>";
     echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/helpdesk.public.php' accesskey='1' title=\"" . __s('Home') . "\"><span class='invisible'>Logo</span></a>";
     echo "</div>";
     // Les préférences + lien déconnexion
     echo "<div id='c_preference' >";
     echo "<ul>";
     echo "<li id='deconnexion'>";
     echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/logout.php";
     /// logout witout noAuto login for extauth
     if (isset($_SESSION['glpiextauth']) && $_SESSION['glpiextauth']) {
         echo "?noAUTO=1";
     }
     echo "' title=\"" . __s('Logout') . "\">";
     // check user id : header used for display messages when session logout
     echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/logout.png' title=\"" . __s('Logout') . "\"  alt=\"" . __s('Logout') . "\" class='button-icon'>";
     echo "</a>";
     echo "</li>\n";
     echo "<li id='preferences_link'><a href='" . $CFG_GLPI["root_doc"] . "/front/preference.php' title=\"" . __s('My settings') . "\">";
     echo "<span id='preferences_icon' title=\"" . __s('My settings') . "\"  alt=\"" . __s('My settings') . "\" class='button-icon' /></span>";
     // check user id : header used for display messages when session logout
     if (Session::getLoginUserID()) {
         echo "<span id='myname'>";
         echo formatUserName(0, $_SESSION["glpiname"], $_SESSION["glpirealname"], $_SESSION["glpifirstname"], 0, 20);
         echo "</span>";
     }
     echo "</a></li>";
     echo "<li>";
     Ajax::createIframeModalWindow('loadbookmark', $CFG_GLPI["root_doc"] . "/front/bookmark.php?action=load", array('title' => __('Load a bookmark'), 'reloadonclose' => true));
     echo "<a href='#' onClick=\"" . Html::jsGetElementbyID('loadbookmark') . ".dialog('open');\">";
     echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/bookmark.png' title=\"" . __s('Load a bookmark') . "\"  alt=\"" . __s('Load a bookmark') . "\" class='button-icon'>";
     echo "</a></li>";
     echo "<li id='help_link'>" . "<a href='" . (empty($CFG_GLPI["helpdesk_doc_url"]) ? "http://glpi-project.org/help-helpdesk" : $CFG_GLPI["helpdesk_doc_url"]) . "' target='_blank' title=\"" . __s('Help') . "\">" . "<img src='" . $CFG_GLPI["root_doc"] . "/pics/help.png' title=\"" . __s('Help') . "\"  alt=\"" . __s('Help') . "\" class='button-icon'>";
     "</a></li>";
     echo "</ul>";
     echo "</div>";
     //-- Le moteur de recherche --
     echo "<div id='c_recherche'></div>";
     echo "</div>";
     //-- Le menu principal --
     echo "<div id='c_menu'>";
     echo "<ul id='menu'>";
     // Build the navigation-elements
     // Home
     echo "<li id='menu1'>";
     echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/helpdesk.public.php' title=\"" . __s('Home') . "\" class='itemP'>" . __('Home') . "</a>";
     echo "</li>";
     //  Create ticket
     if (Session::haveRight("ticket", CREATE)) {
         echo "<li id='menu2'>";
         echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/helpdesk.public.php?create_ticket=1' " . "title=\"" . __s('Create a ticket') . "\" class='itemP'>" . __('Create a ticket') . "</a>";
         echo "</li>";
     }
     //  Suivi ticket
     if (Session::haveRight("ticket", Ticket::READMY) || Session::haveRight("followup", TicketFollowup::SEEPUBLIC)) {
         echo "<li id='menu3'>";
         echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/ticket.php' title=\"" . __s('Ticket followup') . "\" class='itemP'>" . _n('Ticket', 'Tickets', Session::getPluralNumber()) . "</a>";
         echo "</li>";
     }
     // Reservation
     if (Session::haveRight("reservation", ReservationItem::RESERVEANITEM)) {
         echo "<li id='menu4'>";
         echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/reservationitem.php' title=\"" . _sn('Reservation', 'Reservations', Session::getPluralNumber()) . "\" class='itemP'>" . _n('Reservation', 'Reservations', Session::getPluralNumber()) . "</a>";
         echo "</li>";
     }
     // FAQ
     if (Session::haveRight('knowbase', KnowbaseItem::READFAQ)) {
         echo "<li id='menu5' >";
         echo "<a href='" . $CFG_GLPI["root_doc"] . "/front/helpdesk.faq.php' title=\"" . __s('FAQ') . "\" class='itemP'>" . __('FAQ') . "</a>";
         echo "</li>";
     }
     // PLUGINS
     $plugins = array();
     if (isset($PLUGIN_HOOKS["helpdesk_menu_entry"]) && count($PLUGIN_HOOKS["helpdesk_menu_entry"])) {
         foreach ($PLUGIN_HOOKS["helpdesk_menu_entry"] as $plugin => $active) {
             if ($active) {
                 $plugins[$plugin] = Plugin::getInfo($plugin);
             }
         }
     }
     if (isset($plugins) && count($plugins) > 0) {
         $list = array();
         foreach ($plugins as $key => $val) {
             $list[$key] = $val["name"];
         }
         asort($list);
         echo "<li id='menu5' onmouseover=\"javascript:menuAff('menu5','menu');\">";
         echo "<a href='#' title=\"" . _sn('Plugin', 'Plugins', Session::getPluralNumber()) . "\" class='itemP'>" . __('Plugins') . "</a>";
         // default none
         echo "<ul class='ssmenu'>";
         // list menu item
         foreach ($list as $key => $val) {
             $link = "";
             if (is_string($PLUGIN_HOOKS["helpdesk_menu_entry"][$key])) {
                 $link = $PLUGIN_HOOKS["helpdesk_menu_entry"][$key];
             }
             echo "<li><a href='" . $CFG_GLPI["root_doc"] . "/plugins/" . $key . $link . "'>" . $plugins[$key]["name"] . "</a></li>\n";
         }
         echo "</ul></li>";
     }
     echo "</ul>";
     echo "</div>";
     // End navigation bar
     // End headline
     //  Le fil d ariane
     echo "<div id='c_ssmenu2'>";
     echo "<ul>";
     echo "<li class='breadcrumb_item'>" . "<a href='" . $CFG_GLPI["root_doc"] . "/front/helpdesk.public.php' title=\"" . __s('Home') . "\">" . __('Home') . "</a></li>";
     if (TicketValidation::getValidateRights()) {
         $opt = array();
         $opt['reset'] = 'reset';
         $opt['criteria'][0]['field'] = 55;
         // validation status
         $opt['criteria'][0]['searchtype'] = 'equals';
         $opt['criteria'][0]['value'] = TicketValidation::WAITING;
         $opt['criteria'][0]['link'] = 'AND';
         $opt['criteria'][1]['field'] = 59;
         // validation aprobator
         $opt['criteria'][1]['searchtype'] = 'equals';
         $opt['criteria'][1]['value'] = Session::getLoginUserID();
         $opt['criteria'][1]['link'] = 'AND';
         $url_validate = $CFG_GLPI["root_doc"] . "/front/ticket.php?" . Toolbox::append_params($opt, '&amp;');
         $pic_validate = "<a href='{$url_validate}'>" . "<img title=\"" . __s('Ticket waiting for your approval') . "\" alt=\"" . __s('Ticket waiting for your approval') . "\" src='" . $CFG_GLPI["root_doc"] . "/pics/menu_showall.png' class='pointer'></a>";
         echo "<li class='icons_block'>{$pic_validate}</li>\n";
     }
     if (Session::haveRight('ticket', CREATE) && strpos($_SERVER['PHP_SELF'], "ticket")) {
         echo "<li class='icons_block'><a href='" . $CFG_GLPI["root_doc"] . "/front/helpdesk.public.php?create_ticket=1'>";
         echo "<img src='" . $CFG_GLPI["root_doc"] . "/pics/menu_add.png' title=\"" . __s('Add') . "\" alt=\"" . __s('Add') . "\" class='pointer'></a></li>";
     }
     // check user id : header used for display messages when session logout
     if (Session::getLoginUserID()) {
         self::showProfileSelecter($CFG_GLPI["root_doc"] . "/front/helpdesk.public.php");
     }
     echo "</ul></div>";
     echo "</div>";
     // fin header
     echo "<div id='page' >";
     // call static function callcron() every 5min
     CronTask::callCron();
     self::displayMessageAfterRedirect();
 }
Example #3
0
 /**
  * Show the central personal view
  **/
 static function showMyView()
 {
     global $DB, $CFG_GLPI;
     $showticket = Session::haveRightsOr("ticket", array(Ticket::READMY, Ticket::READALL, Ticket::READASSIGN));
     $showproblem = Session::haveRightsOr('problem', array(Problem::READALL, Problem::READMY));
     echo "<table class='tab_cadre_central'>";
     if (Session::haveRight("config", UPDATE)) {
         $logins = User::checkDefaultPasswords();
         $user = new User();
         if (!empty($logins)) {
             $accouts = array();
             foreach ($logins as $login) {
                 $user->getFromDBbyName($login);
                 $accounts[] = $user->getLink();
             }
             $message = sprintf(__('For security reasons, please change the password for the default users: %s'), implode(" ", $accounts));
             echo "<tr><th colspan='2'>";
             Html::displayTitle($CFG_GLPI['root_doc'] . "/pics/warning.png", $message, $message);
             echo "</th></tr>";
         }
         if (file_exists(GLPI_ROOT . "/install/install.php")) {
             echo "<tr><th colspan='2'>";
             $message = sprintf(__('For security reasons, please remove file: %s'), "install/install.php");
             Html::displayTitle($CFG_GLPI['root_doc'] . "/pics/warning.png", $message, $message);
             echo "</th></tr>";
         }
     }
     if ($_SESSION['glpi_use_mode'] == Session::DEBUG_MODE) {
         if (!DBMysql::isMySQLStrictMode()) {
             echo "<tr><th colspan='2'>";
             $message = __('MySQL strict mode is not enabled');
             Html::displayTitle($CFG_GLPI['root_doc'] . "/pics/warning.png", $message, $message);
             echo "</th></tr>";
         }
     }
     if ($DB->isSlave() && !$DB->first_connection) {
         echo "<tr><th colspan='2'>";
         Html::displayTitle($CFG_GLPI['root_doc'] . "/pics/warning.png", __('MySQL replica: read only'), __('MySQL replica: read only'));
         echo "</th></tr>";
     }
     echo "<tr class='noHover'><td class='top' width='50%'><table class='central'>";
     echo "<tr class='noHover'><td>";
     if (Session::haveRightsOr('ticketvalidation', TicketValidation::getValidateRights())) {
         Ticket::showCentralList(0, "tovalidate", false);
     }
     if ($showticket) {
         if (Ticket::isAllowedStatus(Ticket::SOLVED, Ticket::CLOSED)) {
             Ticket::showCentralList(0, "toapprove", false);
         }
         Ticket::showCentralList(0, "survey", false);
         Ticket::showCentralList(0, "rejected", false);
         Ticket::showCentralList(0, "requestbyself", false);
         Ticket::showCentralList(0, "observed", false);
         Ticket::showCentralList(0, "process", false);
         Ticket::showCentralList(0, "waiting", false);
     }
     if ($showproblem) {
         Problem::showCentralList(0, "process", false);
     }
     echo "</td></tr>";
     echo "</table></td>";
     echo "<td class='top'  width='50%'><table class='central'>";
     echo "<tr class='noHover'><td>";
     Planning::showCentral(Session::getLoginUserID());
     Reminder::showListForCentral();
     if (Session::haveRight("reminder_public", READ)) {
         Reminder::showListForCentral(false);
     }
     echo "</td></tr>";
     echo "</table></td></tr></table>";
 }