Completed
Push — master ( 6130d0...57338d )
by Dev
24:32 queued 11:23
created

PageRepository   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 54
ccs 0
cts 35
cp 0
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getQueryToFindPublished() 0 6 1
A getPagesWithoutParent() 0 8 1
A getPagesUsingMedia() 0 11 1
1
<?php
2
3
namespace PiedWeb\CMSBundle\Repository;
4
5
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
6
use Doctrine\ORM\Query;
7
use PiedWeb\CMSBundle\Entity\PageInterface as Page;
8
9
/**
10
 * @method Page|null find($id, $lockMode = null, $lockVersion = null)
11
 * @method Page|null findOneBy(array $criteria, array $orderBy = null)
12
 * @method Page[]    findAll()
13
 * @method Page[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
14
 */
15
class PageRepository extends ServiceEntityRepository
16
{
17
    public function getQueryToFindPublished($p)
18
    {
19
        return $this->createQueryBuilder($p)
20
            ->andWhere($p.'.createdAt <=  :nwo')
21
            ->setParameter('nwo', new \DateTime())
22
            ->orderBy($p.'.createdAt', 'DESC');
23
    }
24
25
    /**
26
    public function findOneBySlug($slug, $language = null)
27
    {
28
        $q = $this->createQueryBuilder('p')
29
            ->andWhere('p.slug = :val')
30
            ->setParameter('val', $slug)
31
            ->setMaxResults(1)
32
            ->getQuery()
33
            ->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker')
34
            ->setHint(
35
                \Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE,
36
                'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker'
37
            );
38
        if (null !== $language) {
39
            $q->setHint(\Gedmo\Translatable\TranslatableListener::HINT_TRANSLATABLE_LOCALE, $language);
40
        }
41
42
        //var_dump($q->getSql()); exit;
43
        $result = $q->getResult();
44
45
        return isset($result[0]) ? $result[0] : null;
46
    }
47
     /**/
48
    public function getPagesWithoutParent()
49
    {
50
        $q = $this->createQueryBuilder('p')
51
            ->andWhere('p.parentPage is NULL')
52
            ->orderBy('p.slug', 'DESC')
53
            ->getQuery();
54
55
        return $q->getResult();
56
    }
57
58
    public function getPagesUsingMedia($media)
59
    {
60
        $q = $this->createQueryBuilder('p')
61
            ->andWhere('p.mainContent LIKE :val')
62
            ->setParameter('val', '%'.$media.'%')
63
            ->getQuery()
64
            //->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker')
65
        ;
66
67
        //var_dump($q->getSql()); exit;
68
        return $q->getResult();
69
    }
70
}
71