Esempio n. 1
1
 public function updateSecondaryResources(ActivityParameters $parameters, \stdClass $stepStructure)
 {
     // Store current resources to clean removed
     $existingResources = $parameters->getSecondaryResources();
     $existingResources = $existingResources->toArray();
     // Publish new resources
     $publishedResources = array();
     if (!empty($stepStructure->resources)) {
         $i = 0;
         foreach ($stepStructure->resources as $resource) {
             $resourceNode = $this->om->getRepository('ClarolineCoreBundle:Resource\\ResourceNode')->findOneById($resource->resourceId);
             if (!empty($resourceNode)) {
                 $parameters->addSecondaryResource($resourceNode);
                 $publishedResources[] = $resourceNode;
             } else {
                 $warning = $this->translator->trans('warning_compl_resource_deleted', array('resourceId' => $resource->resourceId, 'resourceName' => $resource->name), "innova_tools");
                 $this->session->getFlashBag()->add('warning', $warning);
                 unset($stepStructure->resources[$i]);
             }
             $i++;
         }
     }
     // Clean removed resources
     foreach ($existingResources as $existingResource) {
         if (!in_array($existingResource, $publishedResources)) {
             $parameters->removeSecondaryResource($existingResource);
         }
     }
     return $this;
 }
Esempio n. 2
0
 public function import(array &$array, $name, $created)
 {
     $ds = DIRECTORY_SEPARATOR;
     foreach ($array['data'] as $item) {
         $description = file_get_contents($this->getRootPath() . $ds . $item['activity']['description']);
         $activity = new Activity();
         $activity->setTitle($item['activity']['title']);
         $primaryResource = !empty($item['activity']['primary_resource']) && isset($created[$item['activity']['primary_resource']]) && $created[$item['activity']['primary_resource']] ? $created[$item['activity']['primary_resource']]->getResourceNode() : null;
         $activity->setPrimaryResource($primaryResource);
         $activity->setDescription($description);
         $parameters = new ActivityParameters();
         $parameters->setMaxDuration($item['activity']['max_duration']);
         $parameters->setWho($item['activity']['who']);
         $parameters->setWhere($item['activity']['where']);
         $parameters->setEvaluationType($item['activity']['evaluation_type']);
         foreach ($item['activity']['secondary_resources'] as $secondaryResource) {
             //in a perfect world, this shouldn't happend
             if ($created[$secondaryResource['uid']]) {
                 $parameters->addSecondaryResource($created[$secondaryResource['uid']]->getResourceNode());
             }
         }
         $activity->setParameters($parameters);
         $this->om->persist($activity);
         $this->om->persist($parameters);
         return $activity;
     }
 }