/** * 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); }
/** * @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; }
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); }