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(); }
/** * @param Post $post * @param Comment $comment */ public function __construct(Post $post, Comment $comment) { $this->blog = $post->getBlog(); $this->comment = $comment; $this->post = $post; $this->details = array('post' => array('blog' => $this->blog->getId(), 'title' => $post->getTitle(), 'slug' => $post->getSlug()), 'comment' => array('id' => $comment->getId(), 'content' => $comment->getMessage(), 'published' => $comment->isPublished(), 'author' => $comment->getAuthor()->getFirstName() . " " . $post->getAuthor()->getLastName(), 'authorId' => $comment->getAuthor()->getId())); parent::__construct($this->blog->getResourceNode(), $this->details); }
public function prePersist(Post $post, LifecycleEventArgs $event) { if ($post->getContent() != null) { $userPicker = new UserPickerContent($post->getContent()); $post->setUserPicker($userPicker); $post->setContent($userPicker->getFinalText()); } }
/** * @param Post $post * @param Comment $comment */ public function __construct(Post $post, Comment $comment) { $author = $comment->getAuthor(); $blog = $post->getBlog(); if (null === $author) { $author = "Anonyme"; } else { $author = $comment->getAuthor()->getFirstName() . ' ' . $comment->getAuthor()->getLastName(); } $details = array('post' => array('blog' => $blog->getId(), 'title' => $post->getTitle(), 'slug' => $post->getSlug()), 'comment' => array('id' => $comment->getId(), 'author' => $author, 'content' => $comment->getMessage())); parent::__construct($blog->getResourceNode(), $details); }
/** * @param Post $post * @param array $changeSet */ public function __construct(Post $post, $changeSet) { $this->blog = $post->getBlog(); $this->post = $post; $this->details = array('post' => array('blog' => $this->blog->getId(), 'title' => $post->getTitle(), 'slug' => $post->getSlug(), 'changeSet' => $changeSet, 'published' => $post->isPublished(), 'author' => $post->getAuthor()->getFirstName() . ' ' . $post->getAuthor()->getLastName(), 'authorId' => $post->getAuthor()->getId())); parent::__construct($this->blog->getResourceNode(), $this->details); }
/** * @Route("/{blogId}/post/unpublish/{postSlug}", name="icap_blog_post_unpublish", requirements={"blogId" = "\d+"}) * * @ParamConverter("blog", class="IcapBlogBundle:Blog", options={"id" = "blogId"}) * @ParamConverter("post", class="IcapBlogBundle:Post", options={"mapping": {"postSlug": "slug"}}) * @Template() */ public function unpublishAction(Blog $blog, Post $post) { $post->unpublish(); $translator = $this->get('translator'); $messages = array('success' => $translator->trans('icap_blog_post_unpublish_success', array(), 'icap_blog'), 'error' => $translator->trans('icap_blog_post_unpublish_error', array(), 'icap_blog')); return $this->changePublishStatus($blog, $post, $messages); }
/** * @param Post $post */ public function __construct(Post $post) { $blog = $post->getBlog(); $details = array('post' => array('blog' => $blog->getId(), 'title' => $post->getTitle(), 'slug' => $post->getSlug(), 'author' => $post->getAuthor()->getFirstName() . ' ' . $post->getAuthor()->getLastName())); parent::__construct($blog->getResourceNode(), $details); }
/** * @param array $data * @param string $rootPath * @param User $owner * * @return Blog */ public function importBlog(array $data, $rootPath, User $owner) { $blogDatas = $data['data']; $optionsData = $blogDatas['options']; $blogOptions = new BlogOptions(); $blogOptions->setAuthorizeComment($optionsData['authorize_comment'])->setAuthorizeAnonymousComment($optionsData['authorize_anonymous_comment'])->setPostPerPage($optionsData['post_per_page'])->setAutoPublishPost($optionsData['auto_publish_post'])->setAutoPublishComment($optionsData['auto_publish_comment'])->setDisplayTitle($optionsData['display_title'])->setBannerActivate($optionsData['banner_activate'])->setDisplayPostViewCounter($optionsData['display_post_view_counter'])->setBannerBackgroundColor($optionsData['banner_background_color'])->setBannerHeight($optionsData['banner_height'])->setBannerBackgroundImage($optionsData['banner_background_image'])->setBannerBackgroundImagePosition($optionsData['banner_background_image_position'])->setBannerBackgroundImageRepeat($optionsData['banner_background_image_repeat'])->setTagCloud($optionsData['tag_cloud']); $blog = new Blog(); $blog->setOptions($blogOptions); $postsDatas = $blogDatas['posts']; $posts = new ArrayCollection(); foreach ($postsDatas as $postsData) { $post = new Post(); $tagsDatas = $postsData['tags']; $tags = new ArrayCollection(); foreach ($tagsDatas as $tagsData) { $tag = $this->retrieveTag($tagsData['name']); $tags->add($tag); } $commentsDatas = $postsData['comments']; $comments = new ArrayCollection(); foreach ($commentsDatas as $commentsData) { $comment = new Comment(); $commentMessage = file_get_contents($rootPath . DIRECTORY_SEPARATOR . $commentsData['message']); $comment->setMessage($commentMessage)->setAuthor($this->retrieveUser($commentsData['author'], $owner))->setCreationDate(new \DateTime($commentsData['creation_date']))->setUpdateDate(new \DateTime($commentsData['update_date']))->setPublicationDate(new \DateTime($commentsData['publication_date']))->setStatus($commentsData['status']); $comments->add($comment); } $postContent = file_get_contents($rootPath . DIRECTORY_SEPARATOR . $postsData['content']); $post->setTitle($postsData['title'])->setContent($postContent)->setAuthor($this->retrieveUser($postsData['author'], $owner))->setCreationDate(new \DateTime($postsData['creation_date']))->setModificationDate(new \DateTime($postsData['modification_date']))->setPublicationDate(new \DateTime($postsData['publication_date']))->setTags($tags)->setComments($comments)->setStatus($postsData['status']); $posts->add($post); } $blog->setPosts($posts); return $blog; }