Passed
Push — master ( 4bcd7f...0f4d24 )
by Julito
10:45 queued 10s
created

CGlossaryRepository::setResourceProperties()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 6
nc 2
nop 4
dl 0
loc 13
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A CGlossaryRepository::getResourceFormType() 0 3 1
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
namespace Chamilo\CourseBundle\Repository;
6
7
use Chamilo\CoreBundle\Component\Resource\Settings;
8
use Chamilo\CoreBundle\Component\Resource\Template;
9
use Chamilo\CoreBundle\Entity\Course;
10
use Chamilo\CoreBundle\Entity\ResourceInterface;
11
use Chamilo\CoreBundle\Entity\ResourceNode;
12
use Chamilo\CoreBundle\Entity\Session;
13
use Chamilo\CoreBundle\Entity\User;
14
use Chamilo\CoreBundle\Form\Resource\CGlossaryType;
15
use Chamilo\CoreBundle\Repository\ResourceRepository;
16
use Chamilo\CoreBundle\Repository\ResourceWithLinkInterface;
17
use Chamilo\CourseBundle\Entity\CGlossary;
18
use Chamilo\CourseBundle\Entity\CGroup;
19
use Doctrine\ORM\QueryBuilder;
20
use Doctrine\Persistence\ManagerRegistry;
21
use Symfony\Component\Routing\RouterInterface;
22
23
final class CGlossaryRepository extends ResourceRepository implements ResourceWithLinkInterface
24
{
25
    public function __construct(ManagerRegistry $registry)
26
    {
27
        parent::__construct($registry, CGlossary::class);
28
    }
29
30
    public function getResourceSettings(): Settings
31
    {
32
        $settings = parent::getResourceSettings();
33
34
        $settings->setAllowResourceCreation(true);
35
36
        return $settings;
37
    }
38
39
    public function getTemplates(): Template
40
    {
41
        $templates = parent::getTemplates();
42
43
        $templates
44
            ->setViewResource('@ChamiloCore/Resource/glossary/view_resource.html.twig')
45
        ;
46
47
        return $templates;
48
    }
49
50
    public function getResources(User $user, ResourceNode $parentNode, Course $course = null, Session $session = null, CGroup $group = null): QueryBuilder
51
    {
52
        return $this->getResourcesByCourse($course, $session, $group, $parentNode);
53
    }
54
55
    public function getResourceFormType(): string
56
    {
57
        return CGlossaryType::class;
58
    }
59
60
    public function getLink(ResourceInterface $resource, RouterInterface $router, $extraParams = []): string
61
    {
62
        $params = ['name' => 'glossary/index.php', 'glossary_id' => $resource->getResourceIdentifier()];
63
        if (!empty($extraParams)) {
64
            $params = array_merge($params, $extraParams);
65
        }
66
67
        return $router->generate('legacy_main', $params);
68
    }
69
}
70