private function createActivityType(EntityManagerInterface $em)
 {
     $activityType = new ResourceType();
     $activityType->setName('activity');
     $em->persist($activityType);
     $em->flush();
 }
Exemplo n.º 2
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);
 }
Exemplo n.º 3
0
 /**
  * @param string        $title
  * @param Question[]    $questions
  * @param User          $user
  *
  * @return Exercise
  */
 public function exercise($title, array $questions = [], User $user = null)
 {
     $exercise = new Exercise();
     if ($user) {
         if (!isset($this->exoType)) {
             $this->exoType = new ResourceType();
             $this->exoType->setName('exercise');
             $this->om->persist($this->exoType);
         }
         $node = new ResourceNode();
         $node->setName($title);
         $node->setCreator($user);
         $node->setResourceType($this->exoType);
         $node->setWorkspace($user->getPersonalWorkspace());
         $node->setClass('UJM\\ExoBundle\\Entity\\Exercise');
         $node->setGuid(time());
         $exercise->setResourceNode($node);
         $this->om->persist($node);
     }
     $this->om->persist($exercise);
     for ($i = 0, $max = count($questions); $i < $max; ++$i) {
         $step = new Step();
         $step->setText('step');
         $step->setOrder($i);
         // Add step to the exercise
         $exercise->addStep($step);
         $this->om->persist($step);
         $stepQuestion = new StepQuestion();
         $stepQuestion->setStep($step);
         $stepQuestion->setQuestion($questions[$i]);
         $stepQuestion->setOrdre(0);
         $this->om->persist($stepQuestion);
     }
     return $exercise;
 }
Exemplo n.º 4
0
 /**
  * Returns true if the listener is implemented for a resourceType and an action
  *
  * @param ResourceType $resourceType
  * @param string       $actionName
  */
 public function isResourceActionImplemented(ResourceType $resourceType = null, $actionName)
 {
     if ($resourceType) {
         $alwaysTrue = array('rename', 'edit-properties', 'edit-rights', 'open-tracking');
         //first, directories can be downloaded even if there is no listener attached to it
         if ($resourceType->getName() === 'directory' && $actionName == 'download') {
             return true;
         }
         if (in_array($actionName, $alwaysTrue)) {
             return true;
         }
         $eventName = $actionName . '_' . $resourceType->getName();
     } else {
         $eventName = 'resource_action_' . $actionName;
     }
     return $this->dispatcher->hasListeners($eventName);
 }
Exemplo n.º 5
0
 /**
  * @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;
 }
Exemplo n.º 6
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);
 }
 private function createActivity($name)
 {
     $user = new User();
     $user->setFirstName('John');
     $user->setLastName('Doe');
     $user->setUsername('jdoe');
     $user->setMail('*****@*****.**');
     $user->setPassword('123');
     $workspace = new Workspace();
     $workspace->setName('w1');
     $workspace->setCode('abc');
     $workspace->setGuid('abc123');
     $workspace->setCreator($user);
     $type = new ResourceType();
     $type->setName('activity');
     $node = new ResourceNode();
     $node->setName($name);
     $node->setClass('FooClass');
     $node->setCreator($user);
     $node->setResourceType($type);
     $node->setWorkspace($workspace);
     $activity = new Activity();
     $activity->setResourceNode($node);
     $activity->setDescription('activity...');
     $this->om->persist($user);
     $this->om->persist($workspace);
     $this->om->persist($type);
     $this->om->persist($node);
     $this->om->persist($activity);
     return $activity;
 }
Exemplo n.º 8
0
 private function resourceType($name)
 {
     $type = $this->om->getRepository('ClarolineCoreBundle:Resource\\ResourceType')->findOneByName($name);
     if (!$type) {
         $type = new ResourceType();
         $type->setName($name);
         $type->setDefaultMask(1);
         $type->setPlugin($this->websitePlugin());
         $this->om->persist($type);
     }
     return $type;
 }
Exemplo n.º 9
0
 protected function persistActivity($name)
 {
     if (!isset($this->defaults['user'])) {
         $this->defaults['user'] = $this->persistUser('default_user');
     }
     if (!isset($this->defaults['workspace'])) {
         $workspace = new Workspace();
         $workspace->setName('ws-jdoe');
         $workspace->setCreator($this->defaults['user']);
         $workspace->setCode('jdoe-123');
         $workspace->setGuid('123');
         $this->om->persist($workspace);
         $this->defaults['workspace'] = $workspace;
     }
     if (!isset($this->defaults['activity_type'])) {
         $type = new ResourceType();
         $type->setName('activity');
         $this->om->persist($type);
         $this->defaults['activity_type'] = $type;
     }
     $node = new ResourceNode();
     $node->setName($name);
     $node->setCreator($this->defaults['user']);
     $node->setResourceType($this->defaults['activity_type']);
     $node->setWorkspace($this->defaults['workspace']);
     $node->setClass('foo');
     $activity = new Activity();
     $activity->setName($name);
     $activity->setDescription('desc');
     $activity->setResourceNode($node);
     $this->om->persist($node);
     $this->om->persist($activity);
     return $activity;
 }