Exemple #1
0
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");
            }
        }
    }
}
Exemple #2
0
/**
 * 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"];
            }
        }
    }
}
Exemple #3
0
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;
}