/** * @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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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, '&') . "\">" . 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>"; } }
/** * 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, '&'); $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(); }
/** * 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>"; }