Пример #1
0
function plugin_init_racks()
{
    global $PLUGIN_HOOKS, $CFG_GLPI;
    $PLUGIN_HOOKS['csrf_compliant']['racks'] = true;
    $PLUGIN_HOOKS['change_profile']['racks'] = array('PluginRacksProfile', 'changeProfile');
    if (class_exists('PluginRacksRack')) {
        // only if plugin activated
        $PLUGIN_HOOKS['pre_item_purge']['racks'] = array('Profile' => array('PluginRacksProfile', 'purgeProfiles'));
    }
    Plugin::registerClass('PluginRacksRack', array('document_types' => true, 'unicity_types' => true, 'linkgroup_tech_types' => true, 'linkuser_tech_types' => true, 'infocom_types' => true));
    Plugin::registerClass('PluginRacksProfile', array('addtabon' => 'Profile'));
    if (class_exists('PluginAppliancesAppliance')) {
        PluginAppliancesAppliance::registerType('PluginRacksRack');
    }
    if (class_exists('PluginManufacturersimportsConfig')) {
        PluginManufacturersimportsConfig::registerType('PluginRacksRack');
    }
    if (class_exists('PluginTreeviewConfig')) {
        PluginTreeviewConfig::registerType('PluginRacksRack');
        $PLUGIN_HOOKS['treeview']['PluginRacksRack'] = '../racks/pics/racks.png';
    }
    if (class_exists('PluginPositionsPosition')) {
        PluginPositionsPosition::registerType('PluginRacksRack');
    }
    if (Session::getLoginUserID()) {
        // Display a menu entry ?
        if (plugin_racks_haveRight("racks", "r")) {
            $PLUGIN_HOOKS['menu_entry']['racks'] = 'front/rack.php';
            $PLUGIN_HOOKS['submenu_entry']['racks']['search'] = 'front/rack.php';
            $PLUGIN_HOOKS['submenu_entry']['racks']['add'] = 'front/setup.templates.php?add=1';
        }
        if (plugin_racks_haveRight("model", "r")) {
            $PLUGIN_HOOKS['submenu_entry']['racks']['template'] = 'front/setup.templates.php?add=0';
            $PLUGIN_HOOKS['submenu_entry']['racks']["<img  src='" . $CFG_GLPI["root_doc"] . "/pics/menu_showall.png' title=\"" . __('Equipments models specifications', 'racks') . "\" alt=\"" . __('Equipments models specifications', 'racks') . "\">"] = 'front/itemspecification.php';
        }
        if (plugin_racks_haveRight("racks", "r")) {
            $PLUGIN_HOOKS['submenu_entry']['racks']['config'] = 'front/config.form.php';
            $PLUGIN_HOOKS['use_massive_action']['racks'] = 1;
        }
        // Config page
        if (plugin_racks_haveRight("racks", "w") || Session::haveRight("config", "w")) {
            $PLUGIN_HOOKS['config_page']['racks'] = 'front/config.form.php';
        }
        // Add specific files to add to the header : javascript or css
        //$PLUGIN_HOOKS['add_javascript']['example']="example.js";
        $PLUGIN_HOOKS['add_css']['racks'] = "racks.css";
        $PLUGIN_HOOKS['post_init']['racks'] = 'plugin_racks_postinit';
        $PLUGIN_HOOKS['reports']['racks'] = array('front/report.php' => __("Report - Bays management", "racks"));
    }
}
function plugin_init_monitoring()
{
    global $PLUGIN_HOOKS;
    $PLUGIN_HOOKS['csrf_compliant']['monitoring'] = true;
    //   $PLUGIN_HOOKS['change_profile']['monitoring'] = array('PluginMonitoringProfile','changeprofile');
    $Plugin = new Plugin();
    if ($Plugin->isActivated('monitoring')) {
        Plugin::registerClass('PluginMonitoringEntity', array('addtabon' => array('Entity')));
        Plugin::registerClass('PluginMonitoringCommmand');
        Plugin::registerClass('PluginMonitoringEventhandler');
        Plugin::registerClass('PluginMonitoringComponent');
        //Plugin::registerClass('PluginMonitoringComponentscatalog');
        Plugin::registerClass('PluginMonitoringComponentscatalog', array('addtabon' => array('Central')));
        Plugin::registerClass('PluginMonitoringContact', array('addtabon' => array('User')));
        Plugin::registerClass('PluginMonitoringDisplayview', array('addtabon' => array('Central')));
        Plugin::registerClass('PluginMonitoringHost', array('addtabon' => array('Central', 'Computer', 'Device', 'Printer', 'NetworkEquipment')));
        Plugin::registerClass('PluginMonitoringService', array('addtabon' => array('Central')));
        Plugin::registerClass('PluginMonitoringProfile', array('addtabon' => array('Profile')));
        Plugin::registerClass('PluginMonitoringServicescatalog', array('addtabon' => array('Central')));
        Plugin::registerClass('PluginMonitoringUnavailability', array('addtabon' => array('Computer', 'NetworkEquipment')));
        Plugin::registerClass('PluginMonitoringSystem', array('addtabon' => array('Central')));
        Plugin::registerClass('PluginMonitoringDowntime', array('addtabon' => array('Computer', 'Ticket')));
        Plugin::registerClass('PluginMonitoringAcknowledge', array('addtabon' => array('Computer')));
        Plugin::registerClass('PluginMonitoringHostdailycounter', array('addtabon' => array('Computer')));
        Plugin::registerClass('PluginMonitoringServiceevent', array('addtabon' => array('Computer')));
        Plugin::registerClass('PluginMonitoringHostCounter');
        if (class_exists('PluginAppliancesAppliance')) {
            PluginAppliancesAppliance::registerType('PluginMonitoringServicescatalog');
        }
        $PLUGIN_HOOKS['use_massive_action']['monitoring'] = 1;
        $PLUGIN_HOOKS['add_css']['monitoring'] = array("lib/nvd3/src/nv.d3.css", "lib/jqueryplugins/tagbox/css/jquery.tagbox.css", "css/views.css");
        $PLUGIN_HOOKS['add_javascript']['monitoring'] = array("lib/jscolor/jscolor.js", "lib/jqueryplugins/tagbox/js/jquery.tagbox.js");
        $plugin = new Plugin();
        if ($plugin->isActivated('monitoring')) {
            //            $PLUGIN_HOOKS['menu_entry']['monitoring'] = true;
            // No menu in helpdesk interface ...
            //            $PLUGIN_HOOKS["helpdesk_menu_entry"]['monitoring'] = false;
            $PLUGIN_HOOKS['menu_toadd']['monitoring'] = array('plugins' => 'PluginMonitoringDashboard');
        }
        $PLUGIN_HOOKS['config_page']['monitoring'] = 'front/config.form.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['config'] = 'front/config.form.php';
        // Tabs for each type
        $PLUGIN_HOOKS['headings']['monitoring'] = 'plugin_get_headings_monitoring';
        $PLUGIN_HOOKS['headings_action']['monitoring'] = 'plugin_headings_actions_monitoring';
        // Icons add, search...
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['command'] = 'front/command.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['command'] = 'front/command.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['checks'] = 'front/check.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['checks'] = 'front/check.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['componentscatalog'] = 'front/componentscatalog.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['componentscatalog'] = 'front/componentscatalog.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['servicescatalog'] = 'front/servicescatalog.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['servicescatalog'] = 'front/servicescatalog.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['components'] = 'front/component.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['components'] = 'front/component.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['contacttemplates'] = 'front/contacttemplate.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['contacttemplates'] = 'front/contacttemplate.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['displayview'] = 'front/displayview.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['displayview'] = 'front/displayview.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['PluginMonitoringRealm'] = 'front/realm.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['PluginMonitoringRealm'] = 'front/realm.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['weathermap'] = 'front/weathermap.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['weathermap'] = 'front/weathermap.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['eventhandler'] = 'front/eventhandler.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['eventhandler'] = 'front/eventhandler.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['notificationcommand'] = 'front/notificationcommand.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['notificationcommand'] = 'front/notificationcommand.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['perfdata'] = 'front/perfdata.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['perfdata'] = 'front/perfdata.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['customitem_gauge'] = 'front/customitem_gauge.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['customitem_gauge'] = 'front/customitem_gauge.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['customitem_counter'] = 'front/customitem_counter.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['customitem_counter'] = 'front/customitem_counter.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['add']['slider'] = 'front/slider.form.php?add=1';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['slider'] = 'front/slider.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['service'] = 'front/display.php';
        $PLUGIN_HOOKS['submenu_entry']['monitoring']['search']['service'] = 'front/host.php';
        if (isset($_SESSION["glpiname"])) {
            // Fil ariane
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['check']['title'] = __('Check definition', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['check']['page'] = '/plugins/monitoring/front/check.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['command']['title'] = __('Commands', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['command']['page'] = '/plugins/monitoring/front/command.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['components']['title'] = __('Components', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['components']['page'] = '/plugins/monitoring/front/component.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['componentscatalog']['title'] = __('Components catalog', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['componentscatalog']['page'] = '/plugins/monitoring/front/componentscatalog.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['contacttemplates']['title'] = __('Contact templates', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['contacttemplates']['page'] = '/plugins/monitoring/front/contacttemplate.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['display']['title'] = __('Dashboard', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['display']['page'] = '/plugins/monitoring/front/display_servicescatalog.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['displayview']['title'] = __('Views', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['displayview']['page'] = '/plugins/monitoring/front/displayview.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['PluginMonitoringRealm']['title'] = __('Reamls', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['PluginMonitoringRealm']['page'] = '/plugins/monitoring/front/realm.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['servicescatalog']['title'] = __('Services catalog', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['servicescatalog']['page'] = '/plugins/monitoring/front/servicescatalog.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['weathermap']['title'] = __('Weathermap', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['weathermap']['page'] = '/plugins/monitoring/front/weathermap.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['eventhandler']['title'] = __('Event handler', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['eventhandler']['page'] = '/plugins/monitoring/front/eventhandler.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['notificationcommand']['title'] = __('Notification commands', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['notificationcommand']['page'] = '/plugins/monitoring/front/notificationcommand.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['hostdailycounter']['title'] = __('Host daily counters', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['hostdailycounter']['page'] = '/plugins/monitoring/front/hostdailycounter.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['unavailability']['title'] = __('Unavailabilities', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['unavailability']['page'] = '/plugins/monitoring/front/unavailability.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['downtime']['title'] = __('Downtimes', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['downtime']['page'] = '/plugins/monitoring/front/downtime.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['acknowledge']['title'] = __('Acknowledges', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['acknowledge']['page'] = '/plugins/monitoring/front/acknowledge.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['perfdata']['title'] = __('Graph templates', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['perfdata']['page'] = '/plugins/monitoring/front/perfdata.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['slider']['title'] = __('Carrousel / slider', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['slider']['page'] = '/plugins/monitoring/front/slider.php';
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['dashboard']['title'] = __('Dashboard', 'monitoring');
            $PLUGIN_HOOKS['submenu_entry']['monitoring']['options']['dashboard']['page'] = '/plugins/monitoring/front/dashboard.php';
        }
        $rule_check = array('PluginMonitoringComponentscatalog_rule', 'isThisItemCheckRule');
        $rule_check_networkport = array('PluginMonitoringComponentscatalog_rule', 'isThisItemCheckRuleNetworkport');
        $PLUGIN_HOOKS['item_add']['monitoring'] = array('Computer' => $rule_check, 'NetworkEquipment' => $rule_check, 'Printer' => $rule_check, 'Peripheral' => $rule_check, 'Phone' => $rule_check, 'PluginMonitoringNetworkport' => $rule_check_networkport, 'PluginMonitoringComponentscatalog_rule' => array('PluginMonitoringComponentscatalog_rule', 'getItemsDynamicly'), 'PluginMonitoringComponentscatalog_Host' => array('PluginMonitoringHost', 'addHost'));
        $PLUGIN_HOOKS['item_update']['monitoring'] = array('Computer' => $rule_check, 'NetworkEquipment' => $rule_check, 'Printer' => $rule_check, 'Peripheral' => $rule_check, 'Phone' => $rule_check, 'PluginMonitoringComponentscatalog' => array('PluginMonitoringComponentscatalog', 'replayRulesCatalog'), 'PluginMonitoringComponentscatalog_rule' => array('PluginMonitoringComponentscatalog_rule', 'getItemsDynamicly'));
        $PLUGIN_HOOKS['pre_item_update']['monitoring'] = array('PluginMonitoringHostdailycounter' => array('PluginMonitoringHostdailycounter', 'pre_item_update'));
        $PLUGIN_HOOKS['item_purge']['monitoring'] = array('Computer' => $rule_check, 'NetworkEquipment' => $rule_check, 'Printer' => $rule_check, 'Peripheral' => $rule_check, 'Phone' => $rule_check, 'NetworkPort' => array('PluginMonitoringNetworkport', 'deleteNetworkPort'), 'PluginMonitoringNetworkport' => $rule_check_networkport, 'PluginMonitoringComponentscatalog_rule' => array('PluginMonitoringComponentscatalog_rule', 'getItemsDynamicly'), 'PluginMonitoringComponentscatalog_Host' => array('PluginMonitoringComponentscatalog_Host', 'unlinkComponentsToItem'), 'PluginMonitoringComponentscatalog' => array('PluginMonitoringComponentscatalog', 'removeCatalog'), 'PluginMonitoringBusinessrulegroup' => array('PluginMonitoringBusinessrule', 'removeBusinessruleonDeletegroup'));
        if (!isset($_SESSION['glpi_plugin_monitoring']['_refresh'])) {
            $_SESSION['glpi_plugin_monitoring']['_refresh'] = '60';
        }
        //      }
        $PLUGIN_HOOKS['webservices']['monitoring'] = 'plugin_monitoring_registerMethods';
    }
    return $PLUGIN_HOOKS;
}