<?php
namespace Notaris\AdminBundle\Entity;
use Doctrine\ORM\EntityRepository;
/**
* SubsiteRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class SubsiteRepository extends EntityRepository
{
public function getSubsitesForAdmin($locale = 'nl'){
$subsites = $this->createQueryBuilder('s')
->select('s')
->where('s.locale = :locale')
->setParameter('locale', $locale)
->orderBy("s.position")
->getQuery()
->getResult();
if($subsites){
// $this->getEntityManager()->flush();
return $subsites;
}
return false;
}
public function getSubsitesInHeadNav($locale = 'nl'){
$subsites = $this->createQueryBuilder('s')
->select('s')
->where('s.locale = :locale AND s.inMainNav = true AND s.isActive = true')
->setParameter('locale', $locale)
->orderBy("s.position","ASC")
->getQuery()
->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getSubsitesInNav($locale = 'nl'){
if($locale == 'nl'):
$slug = 'notaris';
else:
$slug = 'notaire';
endif;
$subsites = $this->createQueryBuilder('s')
->select('s')
->where('s.locale = :locale AND (s.inMainNav = true or s.slug = :slug)')
->andWhere('s.isActive = true')
->setParameter('locale', $locale)
->setParameter('slug', $slug)
->orderBy("s.position","ASC")
->getQuery()
->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getAllSubsitesInNav($locale = 'nl'){
$subsites = $this->createQueryBuilder('s')
->select('s')
->where('s.locale = :locale AND s.inMainNav = true')
->setParameter('locale', $locale)
->orderBy("s.position","ASC")
->getQuery()
->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getSubsitesInNavMybox($locale = 'nl'){
$subsites = $this->createQueryBuilder('s')
->select('s')
->where('s.locale = :locale AND (s.inMainNav = true or s.slug = :mybox)')
->setParameter('locale', $locale)
->setParameter('mybox', 'mybox')
->orderBy("s.position","ASC")
->getQuery()
->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getSubsitesInFormNavVideo($locale = 'nl'){
if($locale == 'nl'):
$slug = 'notaris%';
else:
$slug = 'notaire%';
endif;
$subsites = $this->createQueryBuilder('s')
->select('s')
->where('s.locale = :locale AND (s.inMainNav = true or s.slug like :slug)')
->setParameter('locale', $locale)
->setParameter('slug', $slug)
->orderBy("s.position","ASC")
->getQuery()
->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getSubsitesInNavBrochure($locale = 'nl'){
if($locale == 'nl'):
$slug = 'notaris';
else:
$slug = 'notaire';
endif;
$query = $this->getEntityManager()
->createQuery(
'SELECT s FROM
NotarisAdminBundle:Subsite s
INNER JOIN NotarisAdminBundle:BrochureSubsite bs WITH bs.subsite = s.id
WHERE s.locale = :locale AND (s.inMainNav = true or s.slug = :slug)
ORDER BY s.position ASC'
)
->setParameter('locale', $locale)
->setParameter('slug', $slug);
$subsites = $query->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getSubsitesInNavVideo($locale = 'nl'){
if($locale == 'nl'):
$slug = 'notaris';
else:
$slug = 'notaire';
endif;
$query = $this->getEntityManager()
->createQuery(
'SELECT s FROM
NotarisAdminBundle:Subsite s
INNER JOIN NotarisAdminBundle:VideoSubsite vs WITH vs.subsite = s.id
WHERE s.locale = :locale AND (s.inMainNav = true or s.slug = :slug)
ORDER BY s.position ASC'
)
->setParameter('locale', $locale)
->setParameter('slug', $slug);
$subsites = $query->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getSubsitesInNavVideo_notarispraat($locale = 'nl'){
if($locale == 'nl'):
$slug = 'notaris%';
else:
$slug = 'notaire';
endif;
$query = $this->getEntityManager()
->createQuery(
'SELECT s FROM
NotarisAdminBundle:Subsite s
INNER JOIN NotarisAdminBundle:VideoSubsite vs WITH vs.subsite = s.id
WHERE s.locale = :locale AND (s.inMainNav = true or s.slug like :slug)
ORDER BY s.position ASC'
)
->setParameter('locale', $locale)
->setParameter('slug', $slug);
$subsites = $query->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getSubsitesInNavFaq($locale = 'nl'){
if($locale == 'nl'):
$slug = 'notaris';
else:
$slug = 'notaire';
endif;
$query = $this->getEntityManager()
->createQuery(
'SELECT s FROM
NotarisAdminBundle:Subsite s
INNER JOIN NotarisAdminBundle:FaqSubsite fs WITH fs.subsite = s.id
WHERE s.locale = :locale AND (s.inMainNav = true or s.slug = :slug or s.slug = :mybox) and s.isActive = true
ORDER BY s.position ASC'
)
->setParameter('locale', $locale)
->setParameter('slug', $slug)
->setParameter('mybox', 'mybox');
$subsites = $query->getResult();
if($subsites){
return $subsites;
}
return false;
}
public function getSubsiteBySlugAndLocale($slug, $locale){
$query = $this->getEntityManager()
->createQuery(
'SELECT s FROM
NotarisAdminBundle:Subsite s
WHERE s.locale = :locale AND s.slug = :slug AND s.isActive = true'
)
->setParameter('locale', $locale)
->setParameter('slug', $slug);
$subsites = $query->getResult();
if($subsites){
return array_shift($subsites);
}
return false;
}
public function getSubsiteBySlugAndLocaleForPreview($slug, $locale){
$query = $this->getEntityManager()
->createQuery(
'SELECT s FROM
NotarisAdminBundle:Subsite s
WHERE s.locale = :locale AND s.slug = :slug'
)
->setParameter('locale', $locale)
->setParameter('slug', $slug);
$subsites = $query->getResult();
if($subsites){
return array_shift($subsites);
}
return false;
}
/*
* select s.id, s.slug, s.page_title, i.filename
from subsite as s
inner join ( SELECT min(position) max_position, asset_id, subsite_id
FROM subsite_banner
WHERE is_active =1
GROUP BY subsite_id) as b on s.id = b.subsite_id
inner join asset_image as ai on b.asset_id = ai.asset_id
inner join image as i on i.id = ai.image_id
where s.locale = 'nl' and (s.in_main_nav = 1 or s.slug = 'notaris')
*/
public function getThemesInfo($locale)
{
$em = $this->getEntityManager();
$con = $em->getConnection();
if($locale == 'nl'):
$slug = 'notaris';
else:
$slug = 'notaire';
endif;
$stmt = $con->prepare("select s.id, s.slug, s.page_title, s.oneliner, s.stylesheet, i.filename from subsite as s
inner join subsite_banner as sb ON sb.subsite_id = s.id
inner join ( SELECT min(position) min_position, subsite_id
FROM subsite_banner
WHERE is_active =1
GROUP BY subsite_id) as b on b.subsite_id = s.id and b.min_position = sb.position and sb.is_active = 1
inner join asset_image as ai on sb.asset_id = ai.asset_id
inner join image as i on i.id = ai.image_id
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");
$stmt->bindValue('locale', $locale);
$stmt->bindValue('slug', $slug);
$stmt = $stmt->execute();
$result = $stmt->fetchAll();
return $result;
}
}