Passed
Branch master (a0cc06)
by Dāvis
17:06
created

BaseAdmin   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 33
rs 10
c 1
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getRedis() 0 10 2
A postUpdate() 0 4 1
A getTranslationFilter() 0 12 2
1
<?php
2
3
namespace Sludio\HelperBundle\Translatable\Admin;
4
5
use Sonata\AdminBundle\Admin\AbstractAdmin;
6
7
class BaseAdmin extends AbstractAdmin
8
{
9
    protected function getRedis()
10
    {
11
        global $kernel;
12
13
        if ('AppCache' == get_class($kernel)) {
14
            $kernel = $kernel->getKernel();
15
        }
16
17
        return $kernel->getContainer()->get('snc_redis.'.$kernel->getContainer()
18
                ->getParameter('sludio_helper.redis.translation'))
19
            ;
20
    }
21
22
    public function postUpdate($object)
23
    {
24
        $this->getRedis()->del($object->getClassName().':translations:'.$object->getId());
25
        $this->getRedis()->del($object->getClassName().':translations:'.$object->getId().':checked');
26
    }
27
28
    public function getTranslationFilter($queryBuilder, $alias, $field, $value)
29
    {
30
        if (!isset($value['value'])) {
31
            return;
32
        }
33
        $queryBuilder->leftJoin('Sludio:Translation', 't', 'WITH', 't.foreignKey = '.$alias.'.id');
34
        $queryBuilder->andWhere("t.field = '$field'");
35
        $queryBuilder->andWhere("t.objectClass = '".$objectClass = $this->getClass()."'");
0 ignored issues
show
Unused Code introduced by
The assignment to $objectClass is dead and can be removed.
Loading history...
36
        $queryBuilder->andWhere("t.content LIKE '%".$value['value']."%'");
37
        $queryBuilder->setFirstResult(0);
38
39
        return true;
40
    }
41
}
42