Passed
Push — master ( db4ea6...d5460f )
by Julito
11:23
created

CreateDefaultPages::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 2
c 1
b 0
f 1
nc 1
nop 2
dl 0
loc 4
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Component\Utils;
8
9
use Chamilo\CoreBundle\Entity\AccessUrl;
10
use Chamilo\CoreBundle\Entity\Page;
11
use Chamilo\CoreBundle\Entity\PageCategory;
12
use Chamilo\CoreBundle\Entity\User;
13
use Chamilo\CoreBundle\Repository\PageCategoryRepository;
14
use Chamilo\CoreBundle\Repository\PageRepository;
15
16
class CreateDefaultPages
17
{
18
    protected PageRepository $pageRepository;
19
    protected PageCategoryRepository $pageCategoryRepository;
20
21
    public function __construct(PageRepository $pageRepository, PageCategoryRepository $pageCategoryRepository)
22
    {
23
        $this->pageRepository = $pageRepository;
24
        $this->pageCategoryRepository = $pageCategoryRepository;
25
    }
26
27
    public function createDefaultPages(User $user, AccessUrl $url, string $locale): bool
28
    {
29
        $categories = $this->pageCategoryRepository->findAll();
30
31
        if (!empty($categories)) {
32
            return false;
33
        }
34
35
        $category = (new PageCategory())
36
            ->setTitle('home')
37
            ->setType('grid')
38
            ->setCreator($user)
39
        ;
40
        $this->pageCategoryRepository->update($category);
41
42
        $indexCategory = (new PageCategory())
43
            ->setTitle('index')
44
            ->setType('grid')
45
            ->setCreator($user)
46
        ;
47
        $this->pageCategoryRepository->update($indexCategory);
48
49
        $page = (new Page())
50
            ->setTitle('Welcome')
51
            ->setContent('Welcome to Chamilo')
52
            ->setCategory($category)
53
            ->setCreator($user)
54
            ->setLocale($locale)
55
            ->setEnabled(true)
56
            ->setUrl($url)
57
        ;
58
59
        $this->pageRepository->update($page);
60
61
        $indexPage = (new Page())
62
            ->setTitle('Welcome')
63
            ->setContent('<img src="/img/document/images/mr_chamilo/svg/teaching.svg" />')
64
            ->setCategory($indexCategory)
65
            ->setCreator($user)
66
            ->setLocale($locale)
67
            ->setEnabled(true)
68
            ->setUrl($url)
69
        ;
70
        $this->pageRepository->update($indexPage);
71
72
        return true;
73
    }
74
}
75