WIP: Fix elfinder paths #2326 (ckeditor + elfinder not working yet)

pull/2715/head
Julio Montoya 6 years ago
parent 128a7c6533
commit 6e54ab2891
  1. 7
      composer.json
  2. 21
      src/CoreBundle/Component/Editor/Connector.php
  3. 4
      src/CoreBundle/Component/Editor/Driver/CourseDriver.php
  4. 6
      src/CoreBundle/Controller/EditorController.php
  5. 9
      src/ThemeBundle/Resources/views/Editor/elfinder_standalone.html.twig

@ -103,9 +103,9 @@
"friendsofsymfony/jsrouting-bundle": "~2.0",
"gedmo/doctrine-extensions": "~2.4",
"gregwar/captcha-bundle": "^2.0",
"helios-ag/fm-elfinder-bundle": "~8.0",
"helios-ag/fm-elfinder-bundle": "~9.0",
"knplabs/gaufrette": "~0.5",
"knplabs/gaufrette": "~0.7",
"knplabs/doctrine-behaviors": "~1.5",
"knplabs/knp-components": "^1.3",
@ -156,6 +156,9 @@
"firebase/php-jwt": "^5.0",
"simplethings/entity-audit-bundle": "^1.0"
},
"config": {
"component-dir": "public/assets"
},
"require-dev": {
"symfony/var-dumper": "^4.0",
"friendsofphp/php-cs-fixer": "^2.7",

@ -4,8 +4,11 @@
namespace Chamilo\CoreBundle\Component\Editor;
use Chamilo\CoreBundle\Component\Editor\Driver\Driver;
use Doctrine\ORM\EntityManager;
use Symfony\Component\Routing\Router;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\TranslatorInterface;
//use Symfony\Component\Security\Core\SecurityContext;
@ -38,27 +41,27 @@ class Connector
public $driverList = [];
public function __construct(
/*EntityManager $entityManager,
EntityManager $entityManager,
array $paths,
Router $urlGenerator,
Translator $translator,
SecurityContext $security,*/
RouterInterface $urlGenerator,
TranslatorInterface $translator,
$security
//$user,
//$course = null
) {
$this->paths = [
'root_sys' => api_get_path(SYS_PATH),
'sys_root' => api_get_path(SYS_PATH), // just an alias
'sys_course_path' => api_get_path(SYS_COURSE_PATH),
//'root_sys' => api_get_path(SYS_PATH),
//'sys_root' => api_get_path(SYS_PATH), // just an alias
//'sys_course_path' => api_get_path(SYS_COURSE_PATH),
// 'sys_config_path' => $app['path.config'],
'path.temp' => api_get_path(SYS_ARCHIVE_PATH),
//'sys_log_path' => $app['path.logs']
];
/*$this->entityManager = $entityManager;
$this->entityManager = $entityManager;
$this->paths = $paths;
$this->urlGenerator = $urlGenerator;
$this->translator = $translator;
$this->security = $security;*/
$this->security = $security;
$this->user = api_get_user_info();
$this->course = api_get_course_info();
$this->driverList = $this->getDefaultDriverList();

@ -179,8 +179,8 @@ class CourseDriver extends Driver implements DriverInterface
$url = '';
if ($this->allow()) {
$directory = $this->getCourseDirectory();
$coursePath = $this->connector->paths['sys_course_path'];
$url = $coursePath.$directory.'/document/';
//$coursePath = $this->connector->paths['sys_course_path'];
//$url = $coursePath.$directory.'/document/';
}
return $url;

@ -7,7 +7,7 @@ use Chamilo\CoreBundle\Component\Editor\CkEditor\CkEditor;
use Chamilo\CoreBundle\Component\Editor\Connector;
use Chamilo\CoreBundle\Component\Editor\Finder;
use Chamilo\CoreBundle\Component\Utils\ChamiloApi;
use FM\ElFinderPHP\Connector\ElFinderConnector;
use FM\ElfinderBundle\Connector\ElFinderConnector;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
@ -60,6 +60,8 @@ class EditorController extends Controller
/**
* @Route("/connector", methods={"GET", "POST"}, name="editor_connector")
*
* @param Request $request
*
* @return Response
*/
public function editorConnector(Request $request)
@ -78,7 +80,7 @@ class EditorController extends Controller
$this->container->get('doctrine')->getManager(),
[],
$this->get('router'),
$this->container->get('translator.default'),
$this->container->get('translator'),
$this->container->get('security.authorization_checker'),
$this->getUser(),
$courseInfo,

@ -1,11 +1,12 @@
{% autoescape false %}
{% set finderFolder = _p.web ~ 'vendor/studio-42/elfinder/' %}
{% set finderFolder = url('legacy_public') ~ 'assets/elfinder/dist/' %}
<!-- elFinder CSS (REQUIRED) -->
<link rel="stylesheet" type="text/css" media="screen" href="{{ finderFolder }}css/elfinder.full.css">
<link rel="stylesheet" type="text/css" media="screen" href="{{ finderFolder }}css/elfinder.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="{{ finderFolder }}css/theme.css">
<!-- elFinder JS (REQUIRED) -->
<script type="text/javascript" src="{{ finderFolder }}js/elfinder.full.js"></script>
<script type="text/javascript" src="{{ finderFolder }}js/elfinder.min.js"></script>
<!-- elFinder translation (OPTIONAL) -->
<script type="text/javascript" src="{{ finderFolder }}js/i18n/elfinder.ru.js"></script>
@ -22,7 +23,7 @@
$().ready(function() {
var funcNum = getUrlParam('CKEditorFuncNum');
var elf = $('#elfinder').elfinder({
url : '{{ _p.web_lib ~ 'elfinder/connectorAction.php?' }}{{ course_condition }}', // connector URL (REQUIRED)
url : '{{ url('editor_connector') }}{{ course_condition }}', // connector URL (REQUIRED)
getFileCallback : function(file) {
window.opener.CKEDITOR.tools.callFunction(funcNum, file.url);
window.close();

Loading…
Cancel
Save