src/Notaris/AdminBundle/Entity/SubsiteRepository.php line 249

Open in your IDE?
  1. <?php
  2. namespace Notaris\AdminBundle\Entity;
  3. use Doctrine\ORM\EntityRepository;
  4. /**
  5.  * SubsiteRepository
  6.  *
  7.  * This class was generated by the Doctrine ORM. Add your own custom
  8.  * repository methods below.
  9.  */
  10. class SubsiteRepository extends EntityRepository
  11. {
  12.     public function getSubsitesForAdmin($locale = 'nl'){
  13.         $subsites = $this->createQueryBuilder('s')
  14.             ->select('s')
  15.             ->where('s.locale = :locale')
  16.             ->setParameter('locale', $locale)
  17.             ->orderBy("s.position")
  18.             ->getQuery()
  19.             ->getResult();
  20.         if($subsites){
  21.            // $this->getEntityManager()->flush();
  22.             return $subsites;
  23.         }
  24.         return false;
  25.     }
  26.     public function getSubsitesInHeadNav($locale = 'nl'){
  27.         $subsites = $this->createQueryBuilder('s')
  28.             ->select('s')
  29.             ->where('s.locale = :locale AND s.inMainNav = true AND s.isActive = true')
  30.             ->setParameter('locale', $locale)
  31.             ->orderBy("s.position","ASC")
  32.             ->getQuery()
  33.             ->getResult();
  34.         if($subsites){
  35.             return $subsites;
  36.         }
  37.         return false;
  38.     }
  39.     public function getSubsitesInNav($locale = 'nl'){
  40.         if($locale == 'nl'):
  41.             $slug = 'notaris';
  42.         else:
  43.             $slug = 'notaire';
  44.         endif;
  45.         $subsites = $this->createQueryBuilder('s')
  46.             ->select('s')
  47.             ->where('s.locale = :locale AND (s.inMainNav = true or s.slug = :slug)')
  48.             ->andWhere('s.isActive = true')
  49.             ->setParameter('locale', $locale)
  50.             ->setParameter('slug', $slug)
  51.             ->orderBy("s.position","ASC")
  52.             ->getQuery()
  53.             ->getResult();
  54.         if($subsites){
  55.             return $subsites;
  56.         }
  57.         return false;
  58.     }
  59.     public function getAllSubsitesInNav($locale = 'nl'){
  60.         $subsites = $this->createQueryBuilder('s')
  61.             ->select('s')
  62.             ->where('s.locale = :locale AND s.inMainNav = true')
  63.             ->setParameter('locale', $locale)
  64.             ->orderBy("s.position","ASC")
  65.             ->getQuery()
  66.             ->getResult();
  67.         if($subsites){
  68.             return $subsites;
  69.         }
  70.         return false;
  71.     }
  72.     public function getSubsitesInNavMybox($locale = 'nl'){
  73.         $subsites = $this->createQueryBuilder('s')
  74.             ->select('s')
  75.             ->where('s.locale = :locale AND (s.inMainNav = true or s.slug = :mybox)')
  76.             ->setParameter('locale', $locale)
  77.             ->setParameter('mybox', 'mybox')
  78.             ->orderBy("s.position","ASC")
  79.             ->getQuery()
  80.             ->getResult();
  81.         if($subsites){
  82.             return $subsites;
  83.         }
  84.         return false;
  85.     }
  86.     public function getSubsitesInFormNavVideo($locale = 'nl'){
  87.         if($locale == 'nl'):
  88.             $slug = 'notaris%';
  89.         else:
  90.             $slug = 'notaire%';
  91.         endif;
  92.         $subsites = $this->createQueryBuilder('s')
  93.             ->select('s')
  94.             ->where('s.locale = :locale AND (s.inMainNav = true or s.slug like :slug)')
  95.             ->setParameter('locale', $locale)
  96.             ->setParameter('slug', $slug)
  97.             ->orderBy("s.position","ASC")
  98.             ->getQuery()
  99.             ->getResult();
  100.         if($subsites){
  101.             return $subsites;
  102.         }
  103.         return false;
  104.     }
  105.     public function getSubsitesInNavBrochure($locale = 'nl'){
  106.         if($locale == 'nl'):
  107.             $slug = 'notaris';
  108.         else:
  109.             $slug = 'notaire';
  110.         endif;
  111.         $query = $this->getEntityManager()
  112.             ->createQuery(
  113.                 'SELECT s FROM
  114.                     NotarisAdminBundle:Subsite s
  115.                      INNER JOIN NotarisAdminBundle:BrochureSubsite bs WITH bs.subsite = s.id
  116.                     WHERE s.locale = :locale AND (s.inMainNav = true or s.slug = :slug)
  117.                     ORDER BY s.position ASC'
  118.             )
  119.             ->setParameter('locale', $locale)
  120.             ->setParameter('slug', $slug);
  121.         $subsites  = $query->getResult();
  122.         if($subsites){
  123.             return $subsites;
  124.         }
  125.         return false;
  126.     }
  127.     
  128.     public function getSubsitesInNavVideo($locale = 'nl'){
  129.         if($locale == 'nl'):
  130.             $slug = 'notaris';
  131.         else:
  132.             $slug = 'notaire';
  133.         endif;
  134.         $query = $this->getEntityManager()
  135.             ->createQuery(
  136.                 'SELECT s FROM
  137.                     NotarisAdminBundle:Subsite s
  138.                      INNER JOIN NotarisAdminBundle:VideoSubsite vs WITH vs.subsite = s.id
  139.                     WHERE s.locale = :locale AND (s.inMainNav = true or s.slug = :slug)
  140.                     ORDER BY s.position ASC'
  141.             )
  142.             ->setParameter('locale', $locale)
  143.             ->setParameter('slug', $slug);
  144.         $subsites  = $query->getResult();
  145.         if($subsites){
  146.             return $subsites;
  147.         }
  148.         return false;
  149.     }
  150.     public function getSubsitesInNavVideo_notarispraat($locale = 'nl'){
  151.         if($locale == 'nl'):
  152.             $slug = 'notaris%';
  153.         else:
  154.             $slug = 'notaire';
  155.         endif;
  156.         $query = $this->getEntityManager()
  157.             ->createQuery(
  158.                 'SELECT s FROM
  159.                     NotarisAdminBundle:Subsite s
  160.                      INNER JOIN NotarisAdminBundle:VideoSubsite vs WITH vs.subsite = s.id
  161.                     WHERE s.locale = :locale AND (s.inMainNav = true or s.slug like :slug)
  162.                     ORDER BY s.position ASC'
  163.             )
  164.             ->setParameter('locale', $locale)
  165.             ->setParameter('slug', $slug);
  166.         $subsites  = $query->getResult();
  167.         if($subsites){
  168.             return $subsites;
  169.         }
  170.         return false;
  171.     }
  172.     
  173.     public function getSubsitesInNavFaq($locale = 'nl'){
  174.         if($locale == 'nl'):
  175.             $slug = 'notaris';
  176.         else:
  177.             $slug = 'notaire';
  178.         endif;
  179.         $query = $this->getEntityManager()
  180.             ->createQuery(
  181.                 'SELECT s FROM
  182.                     NotarisAdminBundle:Subsite s
  183.                      INNER JOIN NotarisAdminBundle:FaqSubsite fs WITH fs.subsite = s.id
  184.                     WHERE s.locale = :locale AND (s.inMainNav = true or s.slug = :slug or s.slug = :mybox) and s.isActive = true
  185.                     ORDER BY s.position ASC'
  186.             )
  187.             ->setParameter('locale', $locale)
  188.             ->setParameter('slug', $slug)
  189.             ->setParameter('mybox', 'mybox');
  190.         $subsites  = $query->getResult();
  191.         if($subsites){
  192.             return $subsites;
  193.         }
  194.         return false;
  195.     }
  196.     public function getSubsiteBySlugAndLocale($slug, $locale){
  197.         $query = $this->getEntityManager()
  198.             ->createQuery(
  199.                 'SELECT s FROM
  200.                   NotarisAdminBundle:Subsite s
  201.                   WHERE s.locale = :locale AND s.slug = :slug AND s.isActive = true'
  202.             )
  203.             ->setParameter('locale', $locale)
  204.             ->setParameter('slug', $slug);
  205.         $subsites = $query->getResult();
  206.         if($subsites){
  207.             return array_shift($subsites);
  208.         }
  209.         return false;
  210.     }
  211.     public function getSubsiteBySlugAndLocaleForPreview($slug, $locale){
  212.         $query = $this->getEntityManager()
  213.             ->createQuery(
  214.                 'SELECT s FROM
  215.                   NotarisAdminBundle:Subsite s
  216.                   WHERE s.locale = :locale AND s.slug = :slug'
  217.             )
  218.             ->setParameter('locale', $locale)
  219.             ->setParameter('slug', $slug);
  220.         $subsites = $query->getResult();
  221.         if($subsites){
  222.             return array_shift($subsites);
  223.         }
  224.         return false;
  225.     }
  226.     /*
  227.      * select s.id, s.slug, s.page_title, i.filename
  228. from subsite as s
  229. inner join ( SELECT min(position) max_position, asset_id, subsite_id
  230.     FROM subsite_banner
  231.     WHERE is_active =1
  232.     GROUP BY subsite_id) as b on s.id = b.subsite_id
  233.  inner join asset_image as ai on b.asset_id = ai.asset_id
  234.  inner join image as i on i.id = ai.image_id
  235. where s.locale = 'nl' and (s.in_main_nav = 1 or s.slug = 'notaris')
  236.      */
  237.     public function getThemesInfo($locale)
  238.     {
  239.         $em = $this->getEntityManager();
  240.         $con = $em->getConnection();
  241.         if($locale == 'nl'):
  242.             $slug = 'notaris';
  243.         else:
  244.             $slug = 'notaire';
  245.         endif;
  246.         $stmt = $con->prepare("select s.id, s.slug, s.page_title, s.oneliner, s.stylesheet, i.filename from subsite as s
  247. inner join subsite_banner as sb ON sb.subsite_id = s.id
  248. inner join ( SELECT min(position) min_position, subsite_id
  249.     FROM subsite_banner
  250.     WHERE is_active =1
  251.     GROUP BY subsite_id) as b on b.subsite_id = s.id and b.min_position = sb.position and sb.is_active = 1
  252.  inner join asset_image as ai on sb.asset_id = ai.asset_id
  253.  inner join image as i on i.id = ai.image_id
  254. where s.locale = :locale and (s.in_main_nav = 1 or s.slug = :slug) and s.is_active= 1 group by s.id  order by s.position");
  255.         $stmt->bindValue('locale', $locale);
  256.         $stmt->bindValue('slug', $slug);
  257.         $stmt = $stmt->execute();
  258.         $result = $stmt->fetchAll();
  259.         return $result;
  260.     }
  261. }