コード例 #1
0
 public function onCopy(CopyResourceEvent $event)
 {
     $entityManager = $this->container->get('claroline.persistence.object_manager');
     /** @var \Icap\BlogBundle\Entity\Blog $blog */
     $blog = $event->getResource();
     $user = $this->container->get('security.token_storage')->getToken()->getUser();
     $newBlog = new Blog();
     $entityManager->persist($newBlog);
     $entityManager->flush($newBlog);
     foreach ($blog->getPosts() as $post) {
         /** @var \Icap\BlogBundle\Entity\Post $newPost */
         $newPost = new Post();
         $newPost->setTitle($post->getTitle())->setContent($post->getContent())->setAuthor($post->getAuthor())->setStatus($post->getStatus())->setBlog($newBlog);
         $newTags = $post->getTags();
         foreach ($newTags as $tag) {
             $newPost->addTag($tag);
         }
         $entityManager->persist($newPost);
         $entityManager->flush($newPost);
         foreach ($post->getComments() as $comment) {
             /** @var \Icap\BlogBundle\Entity\Comment $newComment */
             $newComment = new Comment();
             $newComment->setAuthor($comment->getAuthor())->setMessage($comment->getMessage())->setPost($newPost);
         }
     }
     $entityManager->persist($newBlog);
     $event->setCopy($newBlog);
     $event->stopPropagation();
 }