src/Notaris/AdminBundle/Entity/SubsiteModuleRepository.php line 68

Open in your IDE?
  1. <?php
  2. namespace Notaris\AdminBundle\Entity;
  3. use Doctrine\ORM\EntityRepository;
  4. /**
  5.  * SubsiteModuleRepository
  6.  *
  7.  * This class was generated by the Doctrine ORM. Add your own custom
  8.  * repository methods below.
  9.  */
  10. class SubsiteModuleRepository extends EntityRepository
  11. {
  12.     
  13.     
  14.     /**
  15.      * @param $subsite
  16.      * @return mixed
  17.      */
  18.     public function getModuleCount($subsite)
  19.     {
  20.         $em = $this->getEntityManager();
  21.         $qb = $em->createQueryBuilder();
  22.         $qb->select('count(m.id)');
  23.         $qb->from('NotarisAdminBundle:SubsiteModule', 'm')
  24.             ->where('m.subsite = :subsite AND m.isActive = 1')
  25.             ->setParameter('subsite', $subsite);
  26.         return $qb->getQuery()->getSingleScalarResult();
  27.     }
  28.     /**
  29.      * @param $slug
  30.      * @return mixed
  31.      */
  32.     public function getMaxPosition($slug)
  33.     {
  34.         $em = $this->getEntityManager();
  35.         $con = $em->getConnection();
  36.         $sql = "SELECT MAX(m.position_num) as max
  37.                 FROM subsite_module m
  38.                 INNER JOIN subsite s ON s.id = m.subsite_id
  39.                 WHERE s.slug = :slug";
  40.         $stmt = $con->prepare($sql);
  41.         $stmt->bindValue('slug', $slug);
  42.         $stmt = $stmt->execute();
  43.         return $stmt->fetchOne();
  44.     }
  45.     public function findAllCenterFromSubsite($subsite, $locale){
  46.         $query = $this->getEntityManager()
  47.             ->createQuery(
  48.                 "SELECT sm FROM
  49.                   NotarisAdminBundle:SubsiteModule sm
  50.                   WHERE sm.subsite = :subsite
  51.                     AND sm.locale = :locale
  52.                     AND sm.position = 'CENTER'
  53.                     AND sm.publicationDate <= :now
  54.                     AND sm.isActive = true
  55.                   ORDER BY sm.position_num ASC"
  56.             )
  57.             ->setParameter('now', new \DateTime('now'))
  58.             ->setParameter('subsite', $subsite  )
  59.             ->setParameter('locale', $locale);
  60.         $modules = $query->getResult();
  61.         if($modules){
  62.             return $modules;
  63.         }
  64.         return false;
  65.     }
  66.     public function findAllRightFromSubsite($subsite, $locale){
  67.         $query = $this->getEntityManager()
  68.             ->createQuery(
  69.                 "SELECT sm FROM
  70.                   NotarisAdminBundle:SubsiteModule sm
  71.                   WHERE sm.subsite = :subsite
  72.                     AND sm.locale = :locale
  73.                     AND sm.position = 'RIGHT'
  74.                     AND sm.publicationDate <= :now
  75.                     AND sm.isActive = true
  76.                   ORDER BY sm.position_num ASC"
  77.             )
  78.             ->setParameter('now', new \DateTime('now'))
  79.             ->setParameter('subsite', $subsite  )
  80.             ->setParameter('locale', $locale);
  81.         $modules = $query->getResult();
  82.         if($modules){
  83.             return $modules;
  84.         }
  85.         return false;
  86.     }
  87. }