コード例 #1
0
 /**
  * Deep magic goes here.
  * Gets a subject with some of its last messages datas.
  *
  * @param ResourceInstance $forum
  *
  * @return type
  */
 public function findSubjects(Category $category, $getQuery = false)
 {
     $dql = "\n            SELECT s.id as id,\n            COUNT(m_count.id) AS count_messages,\n            MAX(m.creationDate) AS last_message_created,\n            s.id as subjectId,\n            s.title as title,\n            s.isSticked as isSticked,\n            s.author as subject_author,\n            subjectCreator.lastName as subject_creator_lastname,\n            subjectCreator.firstName as subject_creator_firstname,\n            subjectCreator.id as subject_creator_id,\n            lastUser.lastName as last_message_creator_lastname,\n            lastUser.firstName as last_message_creator_firstname,\n            s.creationDate as subject_created,\n            s.isClosed as is_closed\n            FROM Claroline\\ForumBundle\\Entity\\Subject s\n            JOIN s.messages m_count\n            JOIN s.creator subjectCreator\n            JOIN s.category category\n            JOIN s.messages m\n            JOIN m.creator lastUser WITH lastUser.id =\n                (\n                    SELECT lcu.id FROM Claroline\\ForumBundle\\Entity\\Message m2\n                    JOIN m2.subject s2\n                    JOIN m2.creator lcu\n                    JOIN s2.category c2\n                    WHERE NOT EXISTS\n                    (\n                        SELECT m3 FROM Claroline\\ForumBundle\\Entity\\Message m3\n                        JOIN m3.subject s3\n                        WHERE s2.id = s3.id\n                        AND m2.id < m3.id\n                    )\n                    and c2.id = :categoryId\n                    and m2.id = m.id\n                )\n            WHERE category.id = :categoryId\n            GROUP BY s.id, subjectCreator.lastName, subjectCreator.firstName, lastUser.lastName, lastUser.firstName\n            ORDER BY isSticked DESC, last_message_created DESC\n        ";
     $query = $this->_em->createQuery($dql);
     $query->setParameter('categoryId', $category->getId());
     return $getQuery ? $query : $query->getResult();
 }
コード例 #2
0
 /**
  * @param \Claroline\ForumBundle\Entity\Category $category
  */
 public function __construct(Category $category)
 {
     $details = array('category' => array('id' => $category->getId()), 'forum' => array('id' => $category->getForum()->getId()));
     parent::__construct($category->getForum()->getResourceNode(), $details);
 }
コード例 #3
0
 /**
  * @param \Claroline\ForumBundle\Entity\Category $category
  * @param string                                 $oldName
  * @param string                                 $newName
  */
 public function __construct(Category $category, $oldName, $newName)
 {
     $details = array('category' => array('id' => $category->getId()), 'forum' => array('id' => $category->getForum()->getId()), 'oldName' => $oldName, 'newName' => $newName);
     parent::__construct($category->getForum()->getResourceNode(), $details);
 }
コード例 #4
0
 /**
  * @param \Claroline\ForumBundle\Entity\Subject  $subject
  * @param \Claroline\ForumBundle\Entity\Category $oldCategory
  * @param \Claroline\ForumBundle\Entity\Category $newCategory
  */
 public function __construct(Subject $subject, Category $oldCategory, Category $newCategory)
 {
     $details = array('subject' => array('id' => $subject->getId()), 'category' => array('oldCategoryId' => $oldCategory->getId(), 'newCategoryId' => $newCategory->getId()), 'forum' => array('id' => $subject->getCategory()->getForum()->getId()));
     parent::__construct($subject->getCategory()->getForum()->getResourceNode(), $details);
 }