static function displayTabContentForItem(CommonGLPI $item, $tabnum = 1, $withtemplate = 0) { global $CFG_GLPI; if ($item->getType() == 'CronTask') { $target = $CFG_GLPI["root_doc"] . "/plugins/domains/front/config.form.php"; PluginDomainsDomain::configCron($target); } return true; }
function plugin_init_domains() { global $PLUGIN_HOOKS, $CFG_GLPI; $PLUGIN_HOOKS['csrf_compliant']['domains'] = true; $PLUGIN_HOOKS['change_profile']['domains'] = array('PluginDomainsProfile', 'changeProfile'); $PLUGIN_HOOKS['assign_to_ticket']['domains'] = true; if (Session::getLoginUserID()) { Plugin::registerClass('PluginDomainsDomain', array('linkuser_tech_types' => true, 'linkgroup_tech_types' => true, 'document_types' => true, 'contract_types' => true, 'ticket_types' => true, 'helpdesk_visible_types' => true, 'notificationtemplates_types' => true)); Plugin::registerClass('PluginDomainsConfig', array('addtabon' => 'CronTask')); Plugin::registerClass('PluginDomainsProfile', array('addtabon' => 'Profile')); Plugin::registerClass('PluginDomainsDomain', array('addtabon' => 'Supplier')); if (isset($_SESSION["glpi_plugin_environment_installed"]) && $_SESSION["glpi_plugin_environment_installed"] == 1) { $_SESSION["glpi_plugin_environment_domains"] = 1; // Display a menu entry ? if (plugin_domains_haveRight("domains", "r")) { $PLUGIN_HOOKS['menu_entry']['domains'] = false; $PLUGIN_HOOKS['submenu_entry']['environment']['options']['domains']['title'] = PluginDomainsDomain::getTypeName(2); $PLUGIN_HOOKS['submenu_entry']['environment']['options']['domains']['page'] = '/plugins/domains/front/domain.php'; $PLUGIN_HOOKS['submenu_entry']['environment']['options']['domains']['links']['search'] = '/plugins/domains/front/domain.php'; } if (plugin_domains_haveRight("domains", "w")) { $PLUGIN_HOOKS['submenu_entry']['environment']['options']['domains']['links']['add'] = '/plugins/domains/front/domain.form.php'; $PLUGIN_HOOKS['use_massive_action']['domains'] = 1; } } else { // Display a menu entry ? if (plugin_domains_haveRight("domains", "r")) { $PLUGIN_HOOKS['menu_entry']['domains'] = 'front/domain.php'; $PLUGIN_HOOKS['submenu_entry']['domains']['search'] = 'front/domain.php'; } if (plugin_domains_haveRight("domains", "w")) { $PLUGIN_HOOKS['submenu_entry']['domains']['add'] = 'front/domain.form.php?new=1'; $PLUGIN_HOOKS['use_massive_action']['domains'] = 1; } } if (class_exists('PluginDomainsDomain_Item')) { // only if plugin activated $PLUGIN_HOOKS['pre_item_purge']['domains'] = array('Profile' => array('PluginDomainsProfile', 'purgeProfiles')); $PLUGIN_HOOKS['plugin_datainjection_populate']['domains'] = 'plugin_datainjection_populate_domains'; } // Import from Data_Injection plugin $PLUGIN_HOOKS['migratetypes']['domains'] = 'plugin_datainjection_migratetypes_domains'; // End init, when all types are registered $PLUGIN_HOOKS['post_init']['domains'] = 'plugin_domains_postinit'; } }
function plugin_init_appliances() { global $PLUGIN_HOOKS, $CFG_GLPI; $PLUGIN_HOOKS['csrf_compliant']['appliances'] = true; // Params : plugin name - string type - number - attributes Plugin::registerClass('PluginAppliancesAppliance', array('linkuser_types' => true, 'linkuser_tech_types' => true, 'linkgroup_types' => true, 'linkgroup_tech_types' => true, 'infocom_types' => true, 'document_types' => true, 'contract_types' => true, 'ticket_types' => true, 'helpdesk_visible_types' => true)); Plugin::registerClass('PluginAppliancesProfile', array('addtabon' => 'Profile')); Plugin::registerClass('PluginAppliancesEnvironment'); Plugin::registerClass('PluginAppliancesApplianceType'); Plugin::registerClass('PluginAppliancesAppliance_Item'); Plugin::registerClass('PluginAppliancesOptvalue'); Plugin::registerClass('PluginAppliancesOptvalue_Item'); Plugin::registerClass('PluginAppliancesRelation'); if (class_exists('PluginAccountsAccount')) { PluginAccountsAccount::registerType('PluginAppliancesAppliance'); } if (class_exists('PluginCertificatesCertificate')) { PluginCertificatesCertificate::registerType('PluginAppliancesAppliance'); } if (class_exists('PluginDatabasesDatabase')) { PluginDatabasesDatabase::registerType('PluginAppliancesAppliance'); } if (class_exists('PluginDomainsDomain')) { PluginDomainsDomain::registerType('PluginAppliancesAppliance'); } if (class_exists('PluginWebapplicationsWebapplication')) { PluginWebapplicationsWebapplication::registerType('PluginAppliancesAppliance'); } // Define the type for which we know how to generate PDF, need : $PLUGIN_HOOKS['plugin_pdf']['PluginAppliancesAppliance'] = 'PluginAppliancesAppliancePDF'; $PLUGIN_HOOKS['migratetypes']['appliances'] = 'plugin_datainjection_migratetypes_appliances'; $PLUGIN_HOOKS['change_profile']['appliances'] = array('PluginAppliancesProfile', 'select'); $PLUGIN_HOOKS['assign_to_ticket']['appliances'] = true; if (class_exists('PluginAppliancesAppliance')) { // only if plugin activated $PLUGIN_HOOKS['pre_item_purge']['appliances'] = array('Profile' => array('PluginAppliancesProfile', 'cleanProfile')); $PLUGIN_HOOKS['item_clone']['appliances'] = array('Profile' => array('PluginAppliancesProfile', 'cloneProfile')); $PLUGIN_HOOKS['plugin_datainjection_populate']['appliances'] = 'plugin_datainjection_populate_appliances'; } if (isset($_SESSION["glpiID"])) { if (isset($_SESSION["glpi_plugin_environment_installed"]) && $_SESSION["glpi_plugin_environment_installed"] == 1) { $_SESSION["glpi_plugin_environment_appliances"] = 1; // Display a menu entry ? if (plugin_appliances_haveRight("appliance", "r")) { $PLUGIN_HOOKS['menu_entry']['appliances'] = false; $PLUGIN_HOOKS['submenu_entry']['environment']['options']['appliances']['title'] = _n('Appliance', 'Appliances', 2, 'appliances'); $PLUGIN_HOOKS['submenu_entry']['environment']['options']['appliances']['page'] = '/plugins/appliances/front/appliance.php'; $PLUGIN_HOOKS['submenu_entry']['environment']['options']['appliances']['links']['search'] = '/plugins/appliances/front/appliance.php'; } if (plugin_appliances_haveRight("appliance", "w")) { $PLUGIN_HOOKS['submenu_entry']['environment']['options']['appliances']['links']['add'] = '/plugins/appliances/front/appliance.form.php'; $PLUGIN_HOOKS['use_massive_action']['appliances'] = 1; } } else { // Display a menu entry ? if (plugin_appliances_haveRight("appliance", "r")) { $PLUGIN_HOOKS['menu_entry']['appliances'] = 'front/appliance.php'; $PLUGIN_HOOKS['submenu_entry']['appliances']['search'] = 'front/appliance.php'; } if (plugin_appliances_haveRight("appliance", "w")) { $PLUGIN_HOOKS['submenu_entry']['appliances']['add'] = 'front/appliance.form.php?new=1'; $PLUGIN_HOOKS['use_massive_action']['appliances'] = 1; } } } // Import from Data_Injection plugin $PLUGIN_HOOKS['data_injection']['appliances'] = "plugin_appliances_data_injection_variables"; // Import webservice $PLUGIN_HOOKS['webservices']['appliances'] = 'plugin_appliances_registerMethods'; // End init, when all types are registered $PLUGIN_HOOKS['post_init']['appliances'] = 'plugin_appliances_postinit'; }
function plugin_domains_MassiveActionsDisplay($options = array()) { $domain = new PluginDomainsDomain(); if (in_array($options['itemtype'], PluginDomainsDomain::getTypes(true))) { $domain->dropdownDomains("plugin_domains_domains_id"); echo "<input type=\"submit\" name=\"massiveaction\" class=\"submit\" value=\"" . __s('Post') . "\" >"; } return ""; }
function showForm($ID, $options = array()) { if (!Session::haveRight("profile", "r")) { return false; } $prof = new Profile(); if ($ID) { $this->getFromDBByProfile($ID); $prof->getFromDB($ID); } $this->showFormHeader($options); echo "<tr class='tab_bg_2'>"; echo "<th colspan='4' class='center b'>" . sprintf(__('%1$s - %2$s'), __('Rights management', 'domains'), $prof->fields["name"]) . "</th>"; echo "</tr>"; echo "<tr class='tab_bg_2'>"; echo "<td>" . PluginDomainsDomain::getTypeName(2) . "</td><td>"; if ($prof->fields['interface'] != 'helpdesk') { Profile::dropdownNoneReadWrite("domains", $this->fields["domains"], 1, 1, 1); } else { echo Dropdown::getYesNo(0); } echo "</td>"; echo "<td>" . __('Associable items to a ticket') . " - " . PluginDomainsDomain::getTypeName(2) . "</td><td>"; if ($prof->fields['create_ticket']) { Dropdown::showYesNo("open_ticket", $this->fields["open_ticket"]); } else { echo Dropdown::getYesNo(0); } echo "</td>"; echo "</tr>"; echo "<input type='hidden' name='id' value=" . $this->fields["id"] . ">"; $options['candel'] = false; $this->showFormButtons($options); }
/** * Show domains associated to a supplier * * @since version 0.84 * * @param $item CommonDBTM object for which associated domains must be displayed * @param $withtemplate (default '') **/ static function showForSupplier(CommonDBTM $item, $withtemplate = '') { global $DB, $CFG_GLPI; $ID = $item->getField('id'); if ($item->isNewID($ID)) { return false; } if (!plugin_domains_haveRight('domains', 'r')) { return false; } if (!$item->can($item->fields['id'], 'r')) { return false; } if (empty($withtemplate)) { $withtemplate = 0; } $rand = mt_rand(); $is_recursive = $item->isRecursive(); $query = "SELECT `glpi_plugin_domains_domains`.`id` AS assocID,\n `glpi_entities`.`id` AS entity,\n `glpi_plugin_domains_domains`.`name` AS assocName,\n `glpi_plugin_domains_domains`.* " . "FROM `glpi_plugin_domains_domains` " . " LEFT JOIN `glpi_entities` ON (`glpi_entities`.`id` = `glpi_plugin_domains_domains`.`entities_id`) " . " WHERE `suppliers_id` = '{$ID}' " . getEntitiesRestrictRequest(" AND ", "glpi_plugin_domains_domains", '', '', true); $query .= " ORDER BY `assocName` "; $result = $DB->query($query); $number = $DB->numrows($result); $i = 0; $domains = array(); $domain = new PluginDomainsDomain(); $used = array(); if ($numrows = $DB->numrows($result)) { while ($data = $DB->fetch_assoc($result)) { $domains[$data['assocID']] = $data; $used[$data['id']] = $data['id']; } } echo "<div class='spaced'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr>"; echo "<th>" . __('Name') . "</th>"; if (Session::isMultiEntitiesMode()) { echo "<th>" . __('Entity') . "</th>"; } echo "<th>" . __('Group in charge of the hardware') . "</th>"; echo "<th>" . __('Supplier') . "</th>"; echo "<th>" . __('Technician in charge of the hardware') . "</th>"; echo "<th>" . __('Type') . "</th>"; echo "<th>" . __('Creation date') . "</th>"; echo "<th>" . __('Expiration date') . "</th>"; echo "</tr>"; $used = array(); if ($number) { Session::initNavigateListItems('PluginDomainsDomain', sprintf(__('%1$s = %2$s'), $item->getTypeName(1), $item->getName())); foreach ($domains as $data) { $domainID = $data["id"]; $link = NOT_AVAILABLE; if ($domain->getFromDB($domainID)) { $link = $domain->getLink(); } Session::addToNavigateListItems('PluginDomainsDomain', $domainID); $used[$domainID] = $domainID; $assocID = $data["assocID"]; echo "<tr class='tab_bg_1" . ($data["is_deleted"] ? "_2" : "") . "'>"; echo "<td class='center'>{$link}</td>"; if (Session::isMultiEntitiesMode()) { echo "<td class='center'>" . Dropdown::getDropdownName("glpi_entities", $data['entities_id']) . "</td>"; } echo "<td class='center'>" . Dropdown::getDropdownName("glpi_groups", $data["groups_id_tech"]) . "</td>"; echo "<td>"; echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/enterprise.form.php?ID=" . $data["suppliers_id"] . "\">"; echo Dropdown::getDropdownName("glpi_suppliers", $data["suppliers_id"]); if ($_SESSION["glpiis_ids_visible"] == 1) { echo " (" . $data["suppliers_id"] . ")"; } echo "</a></td>"; echo "<td class='center'>" . getUsername($data["users_id_tech"]) . "</td>"; echo "<td class='center'>" . Dropdown::getDropdownName("glpi_plugin_domains_domaintypes", $data["plugin_domains_domaintypes_id"]) . "</td>"; echo "<td class='center'>" . Html::convdate($data["date_creation"]) . "</td>"; if ($data["date_expiration"] <= date('Y-m-d') && !empty($data["date_expiration"])) { echo "<td class='center'><div class='deleted'>" . convdate($data["date_expiration"]) . "</div></td>"; } else { if (empty($data["date_expiration"])) { echo "<td class='center'>" . __('Does not expire', 'domains') . "</td>"; } else { echo "<td class='center'>" . Html::convdate($data["date_expiration"]) . "</td>"; } } echo "</tr>"; $i++; } } echo "</table>"; echo "</div>"; }
/** * Show domains associated to an item * * @since version 0.84 * * @param $item CommonDBTM object for which associated domains must be displayed * @param $withtemplate (default '') **/ static function showForItem(CommonDBTM $item, $withtemplate = '') { global $DB, $CFG_GLPI; $ID = $item->getField('id'); if ($item->isNewID($ID)) { return false; } if (!plugin_domains_haveRight('domains', 'r')) { return false; } if (!$item->can($item->fields['id'], 'r')) { return false; } if (empty($withtemplate)) { $withtemplate = 0; } $canedit = $item->canadditem('PluginDomainsDomain'); $rand = mt_rand(); $is_recursive = $item->isRecursive(); $query = "SELECT `glpi_plugin_domains_domains_items`.`id` AS assocID,\n `glpi_entities`.`id` AS entity,\n `glpi_plugin_domains_domains`.`name` AS assocName,\n `glpi_plugin_domains_domains`.*\n FROM `glpi_plugin_domains_domains_items`\n LEFT JOIN `glpi_plugin_domains_domains`\n ON (`glpi_plugin_domains_domains_items`.`plugin_domains_domains_id`=`glpi_plugin_domains_domains`.`id`)\n LEFT JOIN `glpi_entities` ON (`glpi_plugin_domains_domains`.`entities_id`=`glpi_entities`.`id`)\n WHERE `glpi_plugin_domains_domains_items`.`items_id` = '{$ID}'\n AND `glpi_plugin_domains_domains_items`.`itemtype` = '" . $item->getType() . "' "; $query .= getEntitiesRestrictRequest(" AND", "glpi_plugin_domains_domains", '', '', true); $query .= " ORDER BY `assocName`"; $result = $DB->query($query); $number = $DB->numrows($result); $i = 0; $domains = array(); $domain = new PluginDomainsDomain(); $used = array(); if ($numrows = $DB->numrows($result)) { while ($data = $DB->fetch_assoc($result)) { $domains[$data['assocID']] = $data; $used[$data['id']] = $data['id']; } } if ($canedit && $withtemplate < 2) { // Restrict entity for knowbase $entities = ""; $entity = $_SESSION["glpiactive_entity"]; if ($item->isEntityAssign()) { /// Case of personal items : entity = -1 : create on active entity (Reminder case)) if ($item->getEntityID() >= 0) { $entity = $item->getEntityID(); } if ($item->isRecursive()) { $entities = getSonsOf('glpi_entities', $entity); } else { $entities = $entity; } } $limit = getEntitiesRestrictRequest(" AND ", "glpi_plugin_domains_domains", '', $entities, true); $q = "SELECT COUNT(*)\n FROM `glpi_plugin_domains_domains`\n WHERE `is_deleted` = '0'\n {$limit}"; $result = $DB->query($q); $nb = $DB->result($result, 0, 0); echo "<div class='firstbloc'>"; if (plugin_domains_haveRight('domains', 'r') && $nb > count($used)) { echo "<form name='domain_form{$rand}' id='domain_form{$rand}' method='post'\n action='" . Toolbox::getItemTypeFormURL('PluginDomainsDomain') . "'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'>"; echo "<td colspan='4' class='center'>"; echo "<input type='hidden' name='entities_id' value='{$entity}'>"; echo "<input type='hidden' name='is_recursive' value='{$is_recursive}'>"; echo "<input type='hidden' name='itemtype' value='" . $item->getType() . "'>"; echo "<input type='hidden' name='items_id' value='{$ID}'>"; if ($item->getType() == 'Ticket') { echo "<input type='hidden' name='tickets_id' value='{$ID}'>"; } $domain->dropdownDomains("plugin_domains_domains_id", $entities, $used); echo "</td><td class='center' width='20%'>"; echo "<input type='submit' name='additem' value=\"" . __s('Associate a domain', 'domains') . "\" class='submit'>"; echo "</td>"; echo "</tr>"; echo "</table>"; Html::closeForm(); } echo "</div>"; } echo "<div class='spaced'>"; if ($canedit && $number && $withtemplate < 2) { Html::openMassiveActionsForm('mass' . __CLASS__ . $rand); $massiveactionparams = array('num_displayed' => $number); Html::showMassiveActions(__CLASS__, $massiveactionparams); } echo "<table class='tab_cadre_fixe'>"; echo "<tr>"; if ($canedit && $number && $withtemplate < 2) { echo "<th width='10'>" . Html::getCheckAllAsCheckbox('mass' . __CLASS__ . $rand) . "</th>"; } echo "<th>" . __('Name') . "</th>"; if (Session::isMultiEntitiesMode()) { echo "<th>" . __('Entity') . "</th>"; } echo "<th>" . __('Group in charge of the hardware') . "</th>"; echo "<th>" . __('Supplier') . "</th>"; echo "<th>" . __('Technician in charge of the hardware') . "</th>"; echo "<th>" . __('Type') . "</th>"; echo "<th>" . __('Creation date') . "</th>"; echo "<th>" . __('Expiration date') . "</th>"; echo "</tr>"; $used = array(); if ($number) { Session::initNavigateListItems('PluginDomainsDomain', sprintf(__('%1$s = %2$s'), $item->getTypeName(1), $item->getName())); foreach ($domains as $data) { $domainID = $data["id"]; $link = NOT_AVAILABLE; if ($domain->getFromDB($domainID)) { $link = $domain->getLink(); } Session::addToNavigateListItems('PluginDomainsDomain', $domainID); $used[$domainID] = $domainID; $assocID = $data["assocID"]; echo "<tr class='tab_bg_1" . ($data["is_deleted"] ? "_2" : "") . "'>"; if ($canedit && $withtemplate < 2) { echo "<td width='10'>"; Html::showMassiveActionCheckBox(__CLASS__, $data["assocID"]); echo "</td>"; } echo "<td class='center'>{$link}</td>"; if (Session::isMultiEntitiesMode()) { echo "<td class='center'>" . Dropdown::getDropdownName("glpi_entities", $data['entities_id']) . "</td>"; } echo "<td class='center'>" . Dropdown::getDropdownName("glpi_groups", $data["groups_id_tech"]) . "</td>"; echo "<td>"; echo "<a href=\"" . $CFG_GLPI["root_doc"] . "/front/enterprise.form.php?ID=" . $data["suppliers_id"] . "\">"; echo Dropdown::getDropdownName("glpi_suppliers", $data["suppliers_id"]); if ($_SESSION["glpiis_ids_visible"] == 1) { echo " (" . $data["suppliers_id"] . ")"; } echo "</a></td>"; echo "<td class='center'>" . getUsername($data["users_id_tech"]) . "</td>"; echo "<td class='center'>" . Dropdown::getDropdownName("glpi_plugin_domains_domaintypes", $data["plugin_domains_domaintypes_id"]) . "</td>"; echo "<td class='center'>" . Html::convdate($data["date_creation"]) . "</td>"; if ($data["date_expiration"] <= date('Y-m-d') && !empty($data["date_expiration"])) { echo "<td class='center'><div class='deleted'>" . convdate($data["date_expiration"]) . "</div></td>"; } else { if (empty($data["date_expiration"])) { echo "<td class='center'>" . __('Does not expire', 'domains') . "</td>"; } else { echo "<td class='center'>" . Html::convdate($data["date_expiration"]) . "</td>"; } } echo "</tr>"; $i++; } } echo "</table>"; if ($canedit && $number && $withtemplate < 2) { $massiveactionparams['ontop'] = false; Html::showMassiveActions(__CLASS__, $massiveactionparams); Html::closeForm(); } echo "</div>"; }
but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Domains. If not, see <http://www.gnu.org/licenses/>. -------------------------------------------------------------------------- */ include '../../../inc/includes.php'; if (!isset($_GET["id"])) { $_GET["id"] = ""; } if (!isset($_GET["withtemplate"])) { $_GET["withtemplate"] = ""; } $domain = new PluginDomainsDomain(); $domain_item = new PluginDomainsDomain_Item(); if (isset($_POST["add"])) { $domain->check(-1, 'w', $_POST); $newID = $domain->add($_POST); Html::back(); } else { if (isset($_POST["delete"])) { $domain->check($_POST['id'], 'w'); $domain->delete($_POST); $domain->redirectToList(); } else { if (isset($_POST["restore"])) { $domain->check($_POST['id'], 'w'); $domain->restore($_POST); $domain->redirectToList();
This file is part of Domains. Domains is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Domains is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Domains. If not, see <http://www.gnu.org/licenses/>. -------------------------------------------------------------------------- */ include '../../../inc/includes.php'; $plugin = new Plugin(); if ($plugin->isActivated("environment")) { Html::header(PluginDomainsDomain::getTypeName(2), '', "plugins", "environment", "domains"); } else { Html::header(PluginDomainsDomain::getTypeName(2), '', "plugins", "domains"); } $domain = new PluginDomainsDomain(); if ($domain->canView() || Session::haveRight("config", "w")) { Search::show("PluginDomainsDomain"); } else { Html::displayRightError(); } Html::footer();