WIP: Add oneup/uploader-bundle

pull/2650/head
Julio Montoya 7 years ago
parent 447932aa3b
commit 534d8f779f
  1. 3
      composer.json
  2. 1
      config/bundles.php
  3. 11
      config/packages/oneup_uploader.yaml
  4. 1
      config/packages/sonata_page.yaml
  5. 1
      config/packages/twig.yaml
  6. 3
      config/routes/oneup_uploader.yaml
  7. 5
      src/CoreBundle/Controller/ResourceController.php
  8. 49
      src/CoreBundle/EventListener/CourseUploadListener.php
  9. 7
      src/CoreBundle/Resources/config/services.yml
  10. 11
      src/CoreBundle/Resources/views/Resource/upload.html.twig

@ -155,7 +155,8 @@
"symfony/requirements-checker": "^1.1",
"liip/theme-bundle": "^1.5",
"a2lix/translation-form-bundle": "^3.0",
"lunetics/locale-bundle": "^2.6"
"lunetics/locale-bundle": "^2.6",
"oneup/uploader-bundle": "^2.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.7",

@ -69,4 +69,5 @@ return [
A2lix\TranslationFormBundle\A2lixTranslationFormBundle::class => ['all' => true],
Lunetics\LocaleBundle\LuneticsLocaleBundle::class => ['all' => true],
Ivory\CKEditorBundle\IvoryCKEditorBundle::class => ['all' => true],
Oneup\UploaderBundle\OneupUploaderBundle::class => ['all' => true],
];

@ -0,0 +1,11 @@
# Read the documentation: https://github.com/1up-lab/OneupUploaderBundle/blob/master/Resources/doc/index.md
oneup_uploader:
mappings:
courses:
#frontend: dropzone # or any uploader you use in the frontend
frontend: blueimp
storage:
type: flysystem
filesystem: oneup_flysystem.courses_filesystem
root_folder: true
# namer: oneup_uploader.namer.urlsafe

@ -38,6 +38,7 @@ sonata_page:
- ^/faq/(.*)
- ^/faq
- ^/courses/(.*)
- ^/resource/(.*)
- ^/front/editor
- ^/contact(.*) # sonata admin
- ^/cms/pages/latest

@ -2,6 +2,7 @@ twig:
debug: '%kernel.debug%'
paths: ['%kernel.project_dir%/templates', '%kernel.project_dir%/main/template/']
form_themes:
- 'bootstrap_4_layout.html.twig'
- '@SonataFormatter/Form/formatter.html.twig'
exception_controller: 'Chamilo\ThemeBundle\Controller\ExceptionController::showAction'
globals:

@ -0,0 +1,3 @@
oneup_uploader:
resource: .
type: uploader

@ -27,9 +27,8 @@ class ResourceController extends BaseController
*/
public function uploadFile(): Response
{
$helper = $this->container->get('oneup_uploader.templating.uploader_helper');
$endpoint = $helper->endpoint('courses');
//$helper = $this->container->get('oneup_uploader.templating.uploader_helper');
//$endpoint = $helper->endpoint('courses');
return $this->render(
'@ChamiloCore/Resource/upload.html.twig',
[

@ -0,0 +1,49 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\EventListener;
use Doctrine\Common\Persistence\ObjectManager;
use Oneup\UploaderBundle\Event\PostPersistEvent;
use Oneup\UploaderBundle\Uploader\File\FlysystemFile;
/**
* Class UploadListener.
* @package Chamilo\CoreBundle\EventListener
*/
class CourseUploadListener
{
/**
* @var ObjectManager
*/
private $om;
/**
* CourseUploadListener constructor.
*
* @param ObjectManager $om
*/
public function __construct(ObjectManager $om)
{
$this->om = $om;
}
/**
* @param PostPersistEvent $event
*
* @return \Oneup\UploaderBundle\Uploader\Response\ResponseInterface
*/
public function onUpload(PostPersistEvent $event)
{
/** @var FlysystemFile $file */
$file = $event->getFile();
$file->
error_log($file->getPathname());
// If everything went fine
$response = $event->getResponse();
$response['success'] = true;
return $response;
}
}

@ -196,6 +196,13 @@ services:
tags:
- {name: kernel.event_listener, event: theme.messages, method: onListMessages}
# Course upload listener
chamilo_core.listener.course_upload_listener:
class: Chamilo\CoreBundle\EventListener\CourseUploadListener
arguments: ['@doctrine.orm.entity_manager']
tags:
- {name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload }
# chamilo_core.menu.simple_menu:
# class: Chamilo\CoreBundle\Menu\SimpleMenuBuilder
# arguments: ['@service_container']

@ -0,0 +1,11 @@
{% extends "@ChamiloTheme/Layout/layout_one_col.html.twig" %}
{% block content %}
<script>
$(document).ready(function() {
$('#fileupload').fileupload({});
});
</script>
<input id="fileupload" type="file" name="files[]" data-url="{{ oneup_uploader_endpoint('courses') }}" multiple />
{% endblock %}
Loading…
Cancel
Save