示例#1
0
 /**
  * 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;
     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);
     //Add language file
     if ($params['add_injection_file']) {
         self::addLocales($name, $itemtype);
     }
     //Add file needed by datainjectin plugin
     if ($params['add_injection_file']) {
         self::addDatainjectionFile($name);
     }
     if ($params['create_default_profile']) {
         //Create rights for this new object
         PluginGenericobjectProfile::createAccess($_SESSION["glpiactiveprofile"]["id"], true);
         //Reload profiles
         PluginGenericobjectProfile::changeProfile();
     }
 }