Passed
Push — master ( 15dae9...698027 )
by Julito
12:28
created

EditorController::editorConnector()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 43
Code Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

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