コード例 #1
0
 public function import(array $data)
 {
     $announcementAggregate = new AnnouncementAggregate();
     $user = $this->tokenStorage->getToken()->getUser();
     $ds = DIRECTORY_SEPARATOR;
     if (isset($data['data'])) {
         foreach ($data['data'] as $announcementDatas) {
             $announcement = new Announcement();
             $announcement->setAggregate($announcementAggregate);
             $announcement->setCreator($user);
             $announcement->setTitle($announcementDatas['announcement']['title']);
             $announcement->setAnnouncer($announcementDatas['announcement']['announcer']);
             $announcement->setVisible($announcementDatas['announcement']['visible']);
             if ($announcementDatas['announcement']['creation_date'] !== null) {
                 $announcement->setCreationDate(new \DateTime($announcementDatas['announcement']['creation_date']));
             } else {
                 $announcement->setPublicationDate(new \DateTime());
             }
             if ($announcementDatas['announcement']['publication_date'] !== null) {
                 $announcement->setPublicationDate(new \DateTime($announcementDatas['announcement']['publication_date']));
             }
             if ($announcementDatas['announcement']['visible_from'] !== null) {
                 $announcement->setVisibleFrom(new \DateTime($announcementDatas['announcement']['visible_from']));
             }
             if ($announcementDatas['announcement']['visible_until'] !== null) {
                 $announcement->setVisibleUntil(new \DateTime($announcementDatas['announcement']['visible_until']));
             }
             $content = file_get_contents($this->getRootPath() . $ds . $announcementDatas['announcement']['content']['path']);
             $content = !empty($content) ? $content : 'No content';
             $announcement->setContent($content);
             $this->om->persist($announcement);
         }
     }
     $this->om->persist($announcementAggregate);
     return $announcementAggregate;
 }
コード例 #2
0
 /**
  * @DI\Observe("copy_claroline_announcement_aggregate")
  *
  * @param CopyResourceEvent $event
  */
 public function onCopy(CopyResourceEvent $event)
 {
     $aggregate = $event->getResource();
     $copy = new AnnouncementAggregate();
     $this->om->persist($copy);
     $announcements = $aggregate->getAnnouncements();
     foreach ($announcements as $announcement) {
         $newAnnouncement = new Announcement();
         $newAnnouncement->setAggregate($copy);
         $newAnnouncement->setAnnouncer($announcement->getAnnouncer());
         $newAnnouncement->setContent($announcement->getContent());
         $newAnnouncement->setCreationDate($announcement->getCreationDate());
         $newAnnouncement->setCreator($announcement->getCreator());
         $newAnnouncement->setPublicationDate($announcement->getPublicationDate());
         $newAnnouncement->setTitle($announcement->getTitle());
         $newAnnouncement->setVisible($announcement->isVisible());
         $newAnnouncement->setVisibleFrom($announcement->getVisibleFrom());
         $newAnnouncement->setVisibleUntil($announcement->getVisibleUntil());
         $this->om->persist($newAnnouncement);
     }
     $event->setCopy($copy);
     $event->stopPropagation();
 }