Completed
Push — master ( 5a8e55...7a79d7 )
by Benjamin
07:38 queued 05:28
created

CMSHelper::getNodeElementEntityFromNode()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 10
rs 9.4285
cc 2
eloc 6
nc 2
nop 1
1
<?php
2
3
namespace Alpixel\Bundle\CMSBundle\Helper;
4
5
use Alpixel\Bundle\CMSBundle\Entity\Node;
6
use Doctrine\ORM\EntityManager;
7
8
class CMSHelper
9
{
10
    protected $entityManager;
11
    protected $contentTypes;
12
13
    public function __construct(EntityManager $entityManager, $contentTypes)
14
    {
15
        $this->entityManager = $entityManager;
16
        $this->contentTypes = $contentTypes;
17
    }
18
19
    public function nodeGetTranslation(Node $node, $locale)
20
    {
21
        $node = $this->entityManager
22
                     ->getRepository('AlpixelCMSBundle:Node')
23
                     ->findTranslation($node, $locale);
24
25
        return $node;
26
    }
27
28
    public function createTranslation(Node $object, $locale)
29
    {
30
        if ($object->getTranslationSource() !== null) {
31
            $source = $object->getTranslationSource();
32
        } else {
33
            $source = $object;
34
        }
35
36
        $node = clone $object;
37
        $node->setLocale($locale);
38
        $node->setTranslationSource($source);
39
        $node->setTitle(sprintf('Version %s de la page "%s"', strtoupper($locale), $node->getTitle()));
40
41
        return $node;
42
    }
43
44
    public function getContentTypeFromNodeElementClass(Node $object)
45
    {
46
        foreach ($this->contentTypes as $contentType) {
47
            if ($contentType['class'] == get_class($object)) {
48
                return $contentType;
49
            }
50
        }
51
    }
52
}
53