/** * Print preview for Ticket template * * @param $tt TicketTemplate object * * @return Nothing (call to classes members) **/ static function showHelpdeskPreview(TicketTemplate $tt) { if (!$tt->getID()) { return false; } if ($tt->getFromDBWithDatas($tt->getID())) { $ticket = new Ticket(); $ticket->showFormHelpdesk(Session::getLoginUserID(), $tt->getID()); } }
/** * Get ticket template to use * Use force_template first, then try on template define for type and category * then use default template of active profile of connected user and then use default entity one * * @param $force_template integer tickettemplate_id to used (case of preview for example) * (default 0) * @param $type integer type of the ticket (default 0) * @param $itilcategories_id integer ticket category (default 0) * @param $entities_id integer (default -1) * * @since version 0.84 * * @return ticket template object **/ function getTicketTemplateToUse($force_template = 0, $type = 0, $itilcategories_id = 0, $entities_id = -1) { // Load ticket template if available : $tt = new TicketTemplate(); $template_loaded = false; if ($force_template) { // with type and categ if ($tt->getFromDBWithDatas($force_template, true)) { $template_loaded = true; } } if (!$template_loaded && $type && $itilcategories_id) { $categ = new ITILCategory(); if ($categ->getFromDB($itilcategories_id)) { $field = ''; switch ($type) { case self::INCIDENT_TYPE: $field = 'tickettemplates_id_incident'; break; case self::DEMAND_TYPE: $field = 'tickettemplates_id_demand'; break; } if (!empty($field) && $categ->fields[$field]) { // without type and categ if ($tt->getFromDBWithDatas($categ->fields[$field], false)) { $template_loaded = true; } } } } // If template loaded from type and category do not check after if ($template_loaded) { return $tt; } if (!$template_loaded) { // load default profile one if not already loaded if (isset($_SESSION['glpiactiveprofile']['tickettemplates_id']) && $_SESSION['glpiactiveprofile']['tickettemplates_id']) { // with type and categ if ($tt->getFromDBWithDatas($_SESSION['glpiactiveprofile']['tickettemplates_id'], true)) { $template_loaded = true; } } } if (!$template_loaded && $entities_id >= 0) { // load default entity one if not already loaded if ($template_id = Entity::getUsedConfig('tickettemplates_id', $entities_id)) { // with type and categ if ($tt->getFromDBWithDatas($template_id, true)) { $template_loaded = true; } } } // Check if profile / entity set type and category and try to load template for these values if ($template_loaded) { // template loaded for profile or entity $newtype = $type; $newitilcategories_id = $itilcategories_id; // Get predefined values for ticket template if (isset($tt->predefined['itilcategories_id']) && $tt->predefined['itilcategories_id']) { $newitilcategories_id = $tt->predefined['itilcategories_id']; } if (isset($tt->predefined['type']) && $tt->predefined['type']) { $newtype = $tt->predefined['type']; } if ($newtype && $newitilcategories_id) { $categ = new ITILCategory(); if ($categ->getFromDB($newitilcategories_id)) { $field = ''; switch ($newtype) { case self::INCIDENT_TYPE: $field = 'tickettemplates_id_incident'; break; case self::DEMAND_TYPE: $field = 'tickettemplates_id_demand'; break; } if (!empty($field) && $categ->fields[$field]) { // without type and categ if ($tt->getFromDBWithDatas($categ->fields[$field], false)) { $template_loaded = true; } } } } } return $tt; }
case "1": // formulaire par defaut pour les incidents de la catégorie; $template_id = $tickettemplates_id_incident; break; case "2": // formulaire par defaut pour les demandes de la catégorie; $template_id = $tickettemplates_id_demand; break; default: // sans précision le formulaire est indiqué par défaut; $template_id = "1"; //formulaire par defaut; break; } $tt = new TicketTemplate(); $tt->getFromDBWithDatas($template_id, true); $ttp = new TicketTemplatePredefinedField(); $predefined = $ttp->getPredefinedFields($template_id, true); if (isset($predefined['itemtype'])) { $ticket['itemtype'] = $predefined['itemtype']; } if (isset($predefined['items_id'])) { $ticket['items_id'] = $predefined['items_id']; } if (isset($predefined['_users_id_observer'])) { $ticket['_users_id_observer'] = $predefined['_users_id_observer']; } if (isset($predefined['_users_id_assign'])) { $ticket['_users_id_assign'] = $predefined['_users_id_assign']; } if (isset($predefined['_users_id_requester'])) {