コード例 #1
0
 /**
  * Loads one meta type (document) and four resource types handled by the platform core :
  * - File
  * - Directory
  * - Link
  * - Text
  * All these resource types have the 'document' meta type.
  *
  * @param ObjectManager $manager
  */
 public function load(ObjectManager $manager)
 {
     // resource type attributes : name, listable, navigable, class
     $resourceTypes = array(array('file', true), array('directory', true), array('text', true), array('resource_shortcut', false), array('activity', true));
     $types[] = array();
     foreach ($resourceTypes as $attributes) {
         $type = new ResourceType();
         $type->setName($attributes[0]);
         $type->setExportable($attributes[1]);
         $manager->persist($type);
         $this->container->get('claroline.manager.mask_manager')->addDefaultPerms($type);
         $types[$attributes[0]] = $type;
     }
     //add special actions.
     $composeDecoder = new MaskDecoder();
     $composeDecoder->setValue(pow(2, 10));
     $composeDecoder->setName('compose');
     $composeDecoder->setResourceType($types['activity']);
     $manager->persist($composeDecoder);
     $activityMenu = new MenuAction();
     $activityMenu->setName('compose');
     $activityMenu->setAsync(false);
     $activityMenu->setIsCustom(true);
     $activityMenu->setValue(pow(2, 10));
     $activityMenu->setResourceType($types['activity']);
     $activityMenu->setIsForm(false);
     $manager->persist($activityMenu);
     $updateFile = new MenuAction();
     $updateFile->setName('update_file');
     $updateFile->setAsync(true);
     $updateFile->setIsCustom(true);
     $updateFile->setIsForm(false);
     $updateFile->setResourceType($types['file']);
     //16 is default for edit
     $updateFile->setValue(16);
     $manager->persist($updateFile);
     $fileAction = new ActivityRuleAction();
     $fileAction->setAction('resource-read');
     $fileAction->setResourceType($types['file']);
     $manager->persist($fileAction);
     $textAction = new ActivityRuleAction();
     $textAction->setAction('resource-read');
     $textAction->setResourceType($types['text']);
     $manager->persist($textAction);
     $badgeAwardAction = new ActivityRuleAction();
     $badgeAwardAction->setAction('badge-awarding');
     $manager->persist($badgeAwardAction);
 }
コード例 #2
0
ファイル: DatabaseWriter.php プロジェクト: ChMat/CoreBundle
 /**
  * @param array        $resourceConfiguration
  * @param Plugin       $plugin
  * @param PluginBundle $pluginBundle
  *
  * @return ResourceType
  */
 private function persistResourceTypes($resourceConfiguration, Plugin $plugin, PluginBundle $pluginBundle)
 {
     $resourceType = new ResourceType();
     $resourceType->setName($resourceConfiguration['name']);
     $resourceType->setExportable($resourceConfiguration['is_exportable']);
     $resourceType->setPlugin($plugin);
     $this->em->persist($resourceType);
     $this->mm->addDefaultPerms($resourceType);
     $this->persistCustomAction($resourceConfiguration['actions'], $resourceType);
     $this->setResourceTypeDefaultMask($resourceConfiguration['default_rights'], $resourceType);
     $this->persistIcons($resourceConfiguration, $resourceType, $pluginBundle);
     $this->persistActivityRules($resourceConfiguration['activity_rules'], $resourceType);
     return $resourceType;
 }
コード例 #3
0
 protected static function createResourceType($name, $isExportable = true, Plugin $plugin = null)
 {
     $type = new ResourceType();
     $type->setName($name);
     $type->setExportable($isExportable);
     if ($plugin) {
         $type->setPlugin($plugin);
     }
     self::create($name, $type);
 }