public function import(array $data) { $forum = new Forum(); $repo = $this->om->getRepository('ClarolineCoreBundle:User'); if (isset($data['data'])) { foreach ($data['data'] as $category) { $entityCategory = new Category(); $entityCategory->setForum($forum); $entityCategory->setName($category['category']['name']); foreach ($category['category']['subjects'] as $subject) { $subjectEntity = new Subject(); $subjectEntity->setTitle($subject['subject']['name']); $creator = null; if ($subject['subject']['creator'] !== null) { $creator = $repo->findOneByUsername($subject['subject']['creator']); } if ($creator === null) { $creator = $this->container->get('security.context')->getToken()->getUser(); } $subjectEntity->setCreator($creator); $subjectEntity->setCategory($entityCategory); foreach ($subject['subject']['messages'] as $message) { $messageEntity = new Message(); $content = file_get_contents($this->getRootPath() . DIRECTORY_SEPARATOR . $message['message']['path']); $messageEntity->setContent($content); $creator = null; if ($message['message']['creator'] !== null) { $creator = $repo->findOneByUsername($message['message']['creator']); } if ($creator === null) { $creator = $this->container->get('security.context')->getToken()->getUser(); } $messageEntity->setCreator($creator); $messageEntity->setSubject($subjectEntity); $messageEntity->setAuthor($message['message']['author']); $this->om->persist($messageEntity); } $this->om->persist($subjectEntity); } $this->om->persist($entityCategory); } } $this->om->persist($forum); return $forum; }
public function load(ObjectManager $manager) { $creator = $this->getContainer()->get('claroline.manager.resource_manager'); $em = $this->getContainer()->get('doctrine.orm.entity_manager'); $user = $em->getRepository('ClarolineCoreBundle:User')->findOneBy(array('username' => $this->username)); if ($this->parent == null) { $root = $em->getRepository('ClarolineCoreBundle:Resource\\ResourceNode')->findOneBy(array('parent' => null, 'workspace' => $user->getPersonalWorkspace()->getId())); } else { $root = $this->parent; } $collaborators = $em->getRepository('ClarolineCoreBundle:User')->findByWorkspace($root->getWorkspace()); $maxOffset = count($collaborators); $this->log('collaborators found: ' . count($collaborators)); --$maxOffset; $forum = new Forum(); $forum->setName($this->forumName); $forum = $creator->create($forum, $manager->getRepository('ClarolineCoreBundle:Resource\\ResourceType')->findOneByName('claroline_forum'), $user, $root->getWorkspace(), $root); $forumManager = $this->getContainer()->get('claroline.manager.forum_manager'); $category = $forumManager->createCategory($forum, $this->forumName); $this->log("forum {$forum->getName()} created"); for ($i = 0; $i < $this->nbSubjects; ++$i) { $title = $this->container->get('claroline.utilities.lipsum_generator')->generateLipsum(5, false, 255); $user = $collaborators[rand(0, $maxOffset)]; $subject = new Subject(); $subject->setTitle($title); $subject->setCreator($user); $this->log("subject {$title} created"); $subject->setCategory($category); $manager->persist($subject); for ($j = 0; $j < $this->nbMessages; ++$j) { $sender = $collaborators[rand(0, $maxOffset)]; $message = new Message(); $message->setSubject($subject); $message->setCreator($sender); $lipsum = $this->container->get('claroline.utilities.lipsum_generator')->generateLipsum(150, true, 1023); $message->setContent($lipsum); $manager->persist($message); } $manager->flush(); } $manager->flush(); $this->addReference("forum/{$this->forumName}", $forum); }
/** * @param \Claroline\ForumBundle\Entity\Message $message * @param string $oldContent * @param string $newContent */ public function __construct(Message $message, $oldContent, $newContent) { $details = array('message' => array('id' => $message->getId(), 'old_content' => $oldContent, 'new_content' => $newContent), 'subject' => array('id' => $message->getSubject()->getId()), 'category' => array('id' => $message->getSubject()->getCategory()->getId()), 'forum' => array('id' => $message->getSubject()->getCategory()->getForum()->getId())); parent::__construct($message->getSubject()->getCategory()->getForum()->getResourceNode(), $details); }
public function getReplyHTML(Message $message) { $author = $message->getCreator()->getFirstName() . ' ' . $message->getCreator()->getLastName(); $date = $message->getCreationDate()->format($this->translator->trans('date_range.format.with_hours', array(), 'platform')); $by = $this->translator->trans('posted_by', array('%author%' => $author, '%date%' => $date), 'forum'); return $by; }
/** * @param Message $message */ public function __construct(Message $message) { $this->message = $message; $details = array('message' => array('id' => $message->getId()), 'subject' => array('id' => $message->getSubject()->getId()), 'category' => array('id' => $message->getSubject()->getCategory()->getId()), 'forum' => array('id' => $message->getSubject()->getCategory()->getForum()->getId())); parent::__construct($message->getSubject()->getCategory()->getForum()->getResourceNode(), $details); }
/** * @EXT\Route( * "/quote/message/{message}", * name="claro_forum_quote_message_form" * ) * @EXT\ParamConverter("authenticatedUser", options={"authenticatedUser" = true}) * * @EXT\Template("ClarolineForumBundle:Forum:quoteMessageForm.html.twig") * * @param Message $message */ public function quoteMessageAction(Message $message) { $subject = $message->getSubject(); $forum = $subject->getCategory()->getForum(); $reply = new Message(); $reply->setContent($this->forumManager->getMessageQuoteHTML($message)); $form = $this->container->get('form.factory')->create(new MessageType(), $reply); $form->handleRequest($this->get('request')); if ($form->isValid()) { $newMsg = $form->getData(); $this->forumManager->createMessage($newMsg, $subject); return new RedirectResponse($this->generateUrl('claro_forum_messages', array('subject' => $subject->getId()))); } return array('subject' => $subject, 'form' => $form->createView(), 'message' => $message, '_resource' => $forum, 'workspace' => $forum->getResourceNode()->getWorkspace()); }