Passed
Push — master ( c3cb05...1bd367 )
by Julito
09:55
created

EditorController::editorTemplates()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 7
nc 1
nop 0
dl 0
loc 11
rs 10
c 0
b 0
f 0
1
<?php
2
/* For licensing terms, see /license.txt */
3
4
namespace Chamilo\CoreBundle\Controller;
5
6
use Chamilo\CoreBundle\Component\Editor\CkEditor\CkEditor;
7
use Chamilo\CoreBundle\Component\Editor\Connector;
8
use Chamilo\CoreBundle\Component\Editor\Finder;
9
use Chamilo\CoreBundle\Component\Utils\ChamiloApi;
10
use FM\ElFinderPHP\Connector\ElFinderConnector;
11
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
12
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
13
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
14
use Symfony\Component\HttpFoundation\Request;
15
use Symfony\Component\HttpFoundation\Response;
16
17
/**
18
 * Class EditorController.
19
 *
20
 * @Route("/editor")
21
 *
22
 * @deprecated not used for now
23
 *
24
 * @package Chamilo\CoreBundle\Controller
25
 */
26
class EditorController extends Controller
27
{
28
    /**
29
     * Get templates (left column when creating a document).
30
     *
31
     * @Route("/templates", name="editor_templates")
32
     * @Method({"GET"})
33
     */
34
    public function editorTemplatesAction()
35
    {
36
        $editor = new CkEditor(
37
            $this->get('translator.default'),
38
            $this->get('router')
39
        );
40
        $templates = $editor->simpleFormatTemplates();
41
42
        return $this->render(
43
            '@ChamiloCore/Editor/templates.html.twig',
44
            ['templates' => $templates]
45
        );
46
    }
47
48
    /**
49
     * @Route("/filemanager", name="editor_filemanager")
50
     * @Method({"GET"})
51
     */
52
    public function editorFileManager(Request $request)
53
    {
54
        \Chat::setDisableChat();
55
56
        $courseId = $request->get('course_id');
57
        $sessionId = $request->get('session_id');
58
59
        return $this->render(
60
            '@ChamiloCore/Editor/elfinder.html.twig',
61
            [
62
                'course_id' => $courseId,
63
                'session_id' => $sessionId,
64
            ]
65
        );
66
    }
67
68
    /**
69
     * @Route("/connector", name="editor_connector")
70
     * @Method({"GET|POST"})
71
     */
72
    public function editorConnector(Request $request)
73
    {
74
        error_reporting(-1);
75
        $courseId = $request->get('course_id');
76
        $sessionId = $request->get('session_id');
77
78
        $courseInfo = [];
79
        if (!empty($courseId)) {
80
            $courseInfo = api_get_course_info_by_id($courseId);
81
        }
82
83
        /** @var Connector $connector */
84
        $connector = new Connector(
85
            $this->container->get('doctrine')->getManager(),
86
            [],
87
            $this->get('router'),
88
            $this->container->get('translator.default'),
89
            $this->container->get('security.authorization_checker'),
90
            $this->getUser(),
91
            $courseInfo,
92
            $sessionId
93
        );
94
95
        $driverList = [
96
            'PersonalDriver',
97
            'CourseDriver',
98
            //'CourseUserDriver',
99
            //'HomeDriver'
100
        ];
101
        $connector->setDriverList($driverList);
102
103
        $operations = $connector->getOperations();
104
105
        // Run elFinder
106
        ob_start();
107
        $finder = new Finder($operations);
108
        $elFinderConnector = new ElFinderConnector($finder);
109
        $elFinderConnector->run();
110
        $content = ob_get_contents();
111
112
        return $this->render(
113
            '@ChamiloCore/layout_empty.html.twig',
114
            ['content' => $content]
115
        );
116
    }
117
118
    /**
119
     * @Route("/config", name="config_editor")
120
     *
121
     * @Method({"GET"})
122
     *
123
     * @return Response
124
     */
125
    public function configEditorAction()
126
    {
127
        $moreButtonsInMaximizedMode = false;
128
        $settingsManager = $this->get('chamilo.settings.manager');
129
130
        if ($settingsManager->getSetting('editor.more_buttons_maximized_mode') === 'true') {
131
            $moreButtonsInMaximizedMode = true;
132
        }
133
134
        return $this->render(
135
            'ChamiloCoreBundle:Editor:config_js.html.twig',
136
            [
137
                // @todo replace api_get_bootstrap_and_font_awesome
138
                'bootstrap_css' => api_get_bootstrap_and_font_awesome(true),
139
                'css_editor' => ChamiloApi::getEditorBlockStylePath(),
140
                'more_buttons_in_max_mode' => $moreButtonsInMaximizedMode,
141
            ]
142
        );
143
    }
144
}
145