function plugin_init_escalade() { global $PLUGIN_HOOKS; $PLUGIN_HOOKS['csrf_compliant']['escalade'] = true; $plugin = new Plugin(); if (isset($_SESSION['glpiID']) && $plugin->isInstalled('escalade') && $plugin->isActivated('escalade')) { //load config in session if (TableExists("glpi_plugin_escalade_configs")) { PluginEscaladeConfig::loadInSession(); // == Load js scripts == if (isset($_SESSION['plugins']['escalade']['config'])) { $escalade_config = $_SESSION['plugins']['escalade']['config']; $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/function.js'; // on central page if (strpos($_SERVER['REQUEST_URI'], "central.php") !== false) { //history and climb feature if ($escalade_config['show_history']) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/central.js.php'; } } // on ticket page (in edition) if (strpos($_SERVER['REQUEST_URI'], "ticket.form.php") !== false && isset($_GET['id'])) { //history and climb feature if ($escalade_config['show_history']) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/escalade.js.php'; } //remove btn feature if (!$escalade_config['remove_delete_group_btn'] || !$escalade_config['remove_delete_user_btn']) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/remove_btn.js.php'; } //clone ticket feature if ($escalade_config['cloneandlink_ticket']) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/cloneandlink_ticket.js.php'; } //filter group feature if ($escalade_config['use_filter_assign_group']) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/filtergroup.js.php'; } } Plugin::registerClass('PluginEscaladeGroup_Group', array('addtabon' => 'Group')); Plugin::registerClass('PluginEscaladeUser', array('addtabon' => array('User'))); } } $PLUGIN_HOOKS['add_css']['escalade'][] = 'escalade.css'; // == Ticket modifications $PLUGIN_HOOKS['item_update']['escalade'] = array('Ticket' => 'plugin_escalade_item_update'); $PLUGIN_HOOKS['item_add']['escalade'] = array('Group_Ticket' => 'plugin_escalade_item_add_group_ticket', 'Ticket_User' => 'plugin_escalade_item_add_user', 'Ticket' => 'plugin_escalade_item_add_ticket'); $PLUGIN_HOOKS['pre_item_add']['escalade'] = array('Group_Ticket' => 'plugin_escalade_pre_item_add_group_ticket', 'Ticket' => 'plugin_escalade_pre_item_add_ticket'); $PLUGIN_HOOKS['post_prepareadd']['escalade'] = array('Ticket' => 'plugin_escalade_post_prepareadd_ticket'); $PLUGIN_HOOKS['item_purge']['escalade'] = array('User' => 'plugin_escalade_item_purge'); $PLUGIN_HOOKS['item_add']['escalade']['User'] = '******'; // == Interface links == if (Session::haveRight('config', UPDATE)) { $PLUGIN_HOOKS['config_page']['escalade'] = 'front/config.form.php'; } $PLUGIN_HOOKS['use_massive_action']['escalade'] = 1; } }
function plugin_init_escalade() { global $PLUGIN_HOOKS; $PLUGIN_HOOKS['csrf_compliant']['escalade'] = true; $plugin = new Plugin(); if (isset($_SESSION['glpiID']) && $plugin->isInstalled('escalade') && $plugin->isActivated('escalade')) { //load config in session if (TableExists("glpi_plugin_escalade_configs")) { PluginEscaladeConfig::loadInSession(); // == Load js scripts == if (isset($_SESSION['plugins']['escalade']['config'])) { if (strpos($_SERVER['REQUEST_URI'], "ticket.form.php") !== false || strpos($_SERVER['REQUEST_URI'], "central.php") !== false) { //history and climb feature if ($_SESSION['plugins']['escalade']['config']['show_history'] == true && $_SESSION['plugins']['escalade']['config']['remove_group'] == true) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/escalade.js.php'; } } if (strpos($_SERVER['REQUEST_URI'], "ticket.form.php") !== false) { //remove btn feature $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/remove_btn.js.php'; //clone ticket feature if ($_SESSION['plugins']['escalade']['config']['cloneandlink_ticket'] == true) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/cloneandlink_ticket.js.php'; } //assign me feature if ($_SESSION['plugins']['escalade']['config']['assign_me_ticket'] == true) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/assign_me.js.php'; } //filter group feature if ($_SESSION['plugins']['escalade']['config']['use_filter_assign_group'] == true) { $PLUGIN_HOOKS['add_javascript']['escalade'][] = 'scripts/filtergroup.js.php'; } } Plugin::registerClass('PluginEscaladeGroup_Group', array('addtabon' => 'Group')); } } $PLUGIN_HOOKS['add_css']['escalade'][] = 'style.css'; // == Ticket modifications $PLUGIN_HOOKS['item_update']['escalade'] = array('Ticket' => 'plugin_escalade_item_update'); $PLUGIN_HOOKS['item_add']['escalade'] = array('Group_Ticket' => 'plugin_escalade_item_add_group_ticket', 'Ticket_User' => 'plugin_escalade_item_add_user', 'Ticket' => 'plugin_escalade_item_add_ticket'); $PLUGIN_HOOKS['pre_item_add']['escalade'] = array('Group_Ticket' => 'plugin_escalade_pre_item_add_group_ticket', 'Ticket' => 'plugin_escalade_pre_item_add_ticket'); $PLUGIN_HOOKS['post_prepareadd']['escalade'] = array('Ticket' => 'plugin_escalade_post_prepareadd_ticket'); // == Interface links == if (Session::haveRight('config', 'w')) { $config_page = 'front/config.form.php'; $PLUGIN_HOOKS['config_page']['escalade'] = $config_page; $PLUGIN_HOOKS['submenu_entry']['escalade']['config'] = $config_page; $PLUGIN_HOOKS['submenu_entry']['escalade']['options']['config']['links']['config'] = '/plugins/escalade/' . $config_page; } } }
<?php include "../../../inc/includes.php"; if (!isset($_GET["id"])) { $_GET["id"] = 0; } $plugin = new Plugin(); if (!$plugin->isInstalled('escalade') || !$plugin->isActivated('escalade')) { echo "Plugin not installed or activated"; return; } $config = new PluginEscaladeConfig(); if (isset($_POST["add"])) { Session::checkRight("config", CREATE); $newID = $config->add($_POST); Html::back(); } elseif (isset($_POST["update"])) { Session::checkRight("config", UPDATE); $config->update($_POST); Html::back(); } elseif (isset($_POST["delete"])) { Session::checkRight("config", DELETE); $config->delete($_POST, 1); Html::redirect("./config.form.php"); } else { Html::header(__("Escalation", "escalade"), '', "plugins", "escalade", "config"); $config->showForm(1); Html::footer(); }
function plugin_escalade_item_add_user($item) { global $DB; if ($item instanceof User) { $config = new PluginEscaladeConfig(); $config->getFromDB(1); $default_value = $config->fields["use_filter_assign_group"]; $query = "INSERT INTO glpi_plugin_escalade_users (`users_id`, `use_filter_assign_group`)\n VALUES (" . $item->getID() . ", {$default_value})"; $DB->query($query); } if ($item instanceof Ticket_User) { //prevent escalade hook to trigger on ticket creation if (isset($_SESSION['plugin_escalade']['skip_hook_add_user'])) { //unset($_SESSION['plugin_escalade']['skip_hook_add_user']); return true; } //this hook is only for assign if ($item->fields['type'] == CommonITILActor::ASSIGN) { return PluginEscaladeTicket::item_add_user($item); } } return true; }