function plugin_init_fields() { global $PLUGIN_HOOKS; $PLUGIN_HOOKS['csrf_compliant']['fields'] = true; $plugin = new Plugin(); if ($plugin->isInstalled('fields') && $plugin->isActivated('fields') && Session::getLoginUserID()) { // complete rule engine $PLUGIN_HOOKS['use_rules']['fields'] = array('PluginFusioninventoryTaskpostactionRule'); $PLUGIN_HOOKS['rule_matched']['fields'] = 'plugin_fields_rule_matched'; if (isset($_SESSION['glpiactiveentities'])) { $PLUGIN_HOOKS['config_page']['fields'] = 'front/container.php'; // add entry to configuration menu $PLUGIN_HOOKS["menu_toadd"]['fields'] = array('config' => 'PluginFieldsMenu'); // add tabs to itemtypes Plugin::registerClass('PluginFieldsContainer', array('addtabon' => PluginFieldsContainer::getEntries())); //include js and css $PLUGIN_HOOKS['add_css']['fields'][] = 'fields.css'; $PLUGIN_HOOKS['add_javascript']['fields'][] = 'fields.js.php'; // Add/delete profiles to automaticaly to container $PLUGIN_HOOKS['item_add']['fields']['Profile'] = array("PluginFieldsProfile", "addNewProfile"); $PLUGIN_HOOKS['pre_item_purge']['fields']['Profile'] = array("PluginFieldsProfile", "deleteProfile"); //load drag and drop javascript library on Package Interface $PLUGIN_HOOKS['add_javascript']['fields'][] = "scripts/redips-drag-min.js"; $PLUGIN_HOOKS['add_javascript']['fields'][] = "scripts/drag-field-row.js"; } // Add Fields to Datainjection if ($plugin->isInstalled('datainjection') && $plugin->isActivated('datainjection')) { $PLUGIN_HOOKS['plugin_datainjection_populate']['fields'] = "plugin_datainjection_populate_fields"; } //Retrieve dom container $itemtypes = PluginFieldsContainer::getUsedItemtypes(); if ($itemtypes !== false) { foreach ($itemtypes as $itemtype) { $PLUGIN_HOOKS['pre_item_update']['fields'][$itemtype] = array("PluginFieldsContainer", "preItemUpdate"); $PLUGIN_HOOKS['pre_item_purge']['fields'][$itemtype] = array("PluginFieldsContainer", "preItemPurge"); $PLUGIN_HOOKS['item_add']['fields'][$itemtype] = array("PluginFieldsContainer", "preItemUpdate"); } } } }
/** * Init hooks of the plugin. * REQUIRED * * @return void */ function plugin_init_fields() { global $PLUGIN_HOOKS; $PLUGIN_HOOKS['csrf_compliant']['fields'] = true; include_once PLUGINFIELDS_DIR . "/inc/autoload.php"; $options = array(PLUGINFIELDS_CLASS_PATH); $pluginfields_autoloader = new PluginFieldsAutoloader($options); $pluginfields_autoloader->register(); $plugin = new Plugin(); if ($plugin->isInstalled('fields') && $plugin->isActivated('fields') && Session::getLoginUserID()) { // Init hook about itemtype(s) for plugin fields $PLUGIN_HOOKS['plugin_fields'] = array(); // When a Category is changed during ticket creation if (isset($_POST) && !empty($_POST) && isset($_POST['_plugin_fields_type'])) { if ($_SERVER['REQUEST_URI'] == Ticket::getFormURL()) { //$_SESSION['plugin_fields']['Ticket'] = $_POST; foreach ($_POST as $key => $value) { if (!is_array($value)) { $_SESSION['plugin']['fields']['values_sent'][$key] = stripcslashes($value); } } } } // complete rule engine $PLUGIN_HOOKS['use_rules']['fields'] = array('PluginFusioninventoryTaskpostactionRule'); $PLUGIN_HOOKS['rule_matched']['fields'] = 'plugin_fields_rule_matched'; if (isset($_SESSION['glpiactiveentities'])) { $PLUGIN_HOOKS['config_page']['fields'] = 'front/container.php'; // add entry to configuration menu $PLUGIN_HOOKS["menu_toadd"]['fields'] = array('config' => 'PluginFieldsMenu'); // add tabs to itemtypes Plugin::registerClass('PluginFieldsContainer', array('addtabon' => array_unique(PluginFieldsContainer::getEntries()))); //include js and css if (file_exists(__DIR__ . '/css/fields.min.css')) { $PLUGIN_HOOKS['add_css']['fields'][] = 'css/fields.min.css'; } else { $PLUGIN_HOOKS['add_css']['fields'][] = 'css/fields.css'; } $PLUGIN_HOOKS['add_javascript']['fields'][] = 'fields.js.php'; // Add/delete profiles to automaticaly to container $PLUGIN_HOOKS['item_add']['fields']['Profile'] = array("PluginFieldsProfile", "addNewProfile"); $PLUGIN_HOOKS['pre_item_purge']['fields']['Profile'] = array("PluginFieldsProfile", "deleteProfile"); //load drag and drop javascript library on Package Interface $PLUGIN_HOOKS['add_javascript']['fields'][] = "js/redips-drag-min.js"; if (file_exists(__DIR__ . '/js/drag-field-row.min.js')) { $PLUGIN_HOOKS['add_javascript']['fields'][] = 'js/drag-field-row.min.js'; } else { $PLUGIN_HOOKS['add_javascript']['fields'][] = 'js/drag-field-row.js'; } } // Add Fields to Datainjection if ($plugin->isActivated('datainjection')) { $PLUGIN_HOOKS['plugin_datainjection_populate']['fields'] = "plugin_datainjection_populate_fields"; } //Retrieve dom container $itemtypes = PluginFieldsContainer::getUsedItemtypes(); if ($itemtypes !== false) { foreach ($itemtypes as $itemtype) { $PLUGIN_HOOKS['pre_item_update']['fields'][$itemtype] = ["PluginFieldsContainer", "preItemUpdate"]; $PLUGIN_HOOKS['pre_item_add']['fields'][$itemtype] = ["PluginFieldsContainer", "preItem"]; $PLUGIN_HOOKS['item_add']['fields'][$itemtype] = ["PluginFieldsContainer", "postItemAdd"]; $PLUGIN_HOOKS['pre_item_purge']['fields'][$itemtype] = ["PluginFieldsContainer", "preItemPurge"]; } } } }
function plugin_fields_MassiveActionsFieldsDisplay($options = array()) { $itemtypes = PluginFieldsContainer::getEntries('all'); if (in_array($options['itemtype'], $itemtypes)) { PluginFieldsField::showSingle($options['itemtype'], $options['options'], true); return true; } // Need to return false on non display item return false; }