/** * Create an object, it's table, files and rights * * @since 2.1.5 * @param name object short name * @param itemtype object class name * @param options create options : * - add_table : add the object table (default is no) * - create_default_profile : add default right (default is no) for current user profile * - add_injection_file : add file to integrate itemtype into the datainjection plugin * - add_language_file : create a default language for the itemtype * @return none */ static function addNewObject($name, $itemtype, $options = array()) { $params['add_table'] = false; $params['create_default_profile'] = false; $params['add_injection_file'] = false; $params['add_language_file'] = true; $params['overwrite_locales'] = false; foreach ($options as $key => $value) { $params[$key] = $value; } if ($params['add_table']) { self::addTable($itemtype); } //Write object class on the filesystem self::addClassFile($name, $itemtype); //Write the form on the filesystem self::addFormFile($name, $itemtype); self::addSearchFile($name, $itemtype); if ($params['overwrite_locales']) { //Add language file self::addLocales($name, $itemtype); } //Add file needed by datainjectin plugin if ($params['add_injection_file']) { self::addDatainjectionFile($name); } PluginGenericobjectProfile::installRights(); if ($params['create_default_profile']) { //Create rights for this new object PluginGenericobjectProfile::createAccess($_SESSION["glpiactiveprofile"]["id"], $itemtype, true); //Reload profiles PluginGenericobjectProfile::changeProfile(); } }