Skip to content

Commit

Permalink
Add Compatibility for Symfony 4 (#34)
Browse files Browse the repository at this point in the history
* Add compatibility for Sf 4

* Fix tests

* Update composer.json, update install doc

* Use FOSCkeditorBundle
  • Loading branch information
Damien Fayet authored and dunglas committed Jul 1, 2019
1 parent d4b0b1d commit eed6902
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 24 deletions.
6 changes: 3 additions & 3 deletions DependencyInjection/Configuration.php
Expand Up @@ -36,9 +36,9 @@ public function getConfigTreeBuilder()
->arrayNode('templates')
->addDefaultsIfNotSet()
->children()
->scalarNode('layout')->defaultValue('CoopTilleulsCKEditorSonataMediaBundle::layout.html.twig')->cannotBeEmpty()->end()
->scalarNode('browser')->defaultValue('CoopTilleulsCKEditorSonataMediaBundle:MediaAdmin:browser.html.twig')->cannotBeEmpty()->end()
->scalarNode('upload')->defaultValue('CoopTilleulsCKEditorSonataMediaBundle:MediaAdmin:upload.html.twig')->cannotBeEmpty()->end()
->scalarNode('layout')->defaultValue('@CoopTilleulsCKEditorSonataMedia/layout.html.twig')->cannotBeEmpty()->end()
->scalarNode('browser')->defaultValue('@CoopTilleulsCKEditorSonataMedia/MediaAdmin/browser.html.twig')->cannotBeEmpty()->end()
->scalarNode('upload')->defaultValue('@CoopTilleulsCKEditorSonataMedia/MediaAdmin/upload.html.twig')->cannotBeEmpty()->end()
->end()
->end()
;
Expand Down
1 change: 1 addition & 0 deletions Resources/config/services.xml
Expand Up @@ -6,6 +6,7 @@

<parameters>
<parameter key="coop_tilleuls_ck_editor_sonata_media.media.extension.class">CoopTilleuls\Bundle\CKEditorSonataMediaBundle\Admin\MediaAdminExtension</parameter>
<parameter key="sonata.media.admin.media.controller">CoopTilleuls\Bundle\CKEditorSonataMediaBundle\Controller\MediaAdminController</parameter>
</parameters>

<services>
Expand Down
40 changes: 33 additions & 7 deletions Resources/doc/install.md
Expand Up @@ -2,9 +2,13 @@

If not already done, install and configure [SonataMediaBundle](http://sonata-project.org/bundles/media/master/doc/index.html).

Then, use [Composer](https://getcomposer.org/) to install CoopTilleulsCKEditorSonataMediaBundle and IvoryCKEditorBundle:
Then, use [Composer](https://getcomposer.org/) to install CoopTilleulsCKEditorSonataMediaBundle and FOSCKEditorBundle:

composer require tilleuls/ckeditor-sonata-media-bundle egeloen/ckeditor-bundle
composer require tilleuls/ckeditor-sonata-media-bundle friendsofsymfony/ckeditor-bundle

If you use Symfony <3.4 and PHP <7.1 do

composer require tilleuls/ckeditor-sonata-media-bundle friendsofsymfony/ckeditor-bundle:1.2

Register the bundle in your AppKernel:

Expand All @@ -16,24 +20,46 @@ public function registerBundles()
return array(
// ...
new CoopTilleuls\Bundle\CKEditorSonataMediaBundle\CoopTilleulsCKEditorSonataMediaBundle(),
new Ivory\CKEditorBundle\IvoryCKEditorBundle(),
new FOS\CKEditorBundle\FOSCKEditorBundle(),
// ...
);
}
```
or

```php
// config/bundles.php

return [
// ...
CoopTilleuls\Bundle\CKEditorSonataMediaBundle\CoopTilleulsCKEditorSonataMediaBundle::class => ['all' => true],
FOS\CKEditorBundle\FOSCKEditorBundle::class => ['all' => true],
// ...
];
```

Install bundles:

```
$ composer update
```

Configure IvoryCKEditorBundle to use the bundle as file browser:
Add form theme to render the editor:

Symfony 2/3: app/config/config.yml
Symfony 4: config/packages/twig.yaml
```
twig:
form_themes:
- '@FOSCKEditor/Form/ckeditor_widget.html.twig'
```

Configure FOSCKEditorBundle to use the bundle as file browser:

```yaml
# app/config/config.yml

ivory_ck_editor:
fos_ck_editor:
default_config: default
configs:
default:
Expand Down Expand Up @@ -72,9 +98,9 @@ Then update your ApplicationSonataMediaBundle:
}
```

If you want to customize `MediaAdminController` you must extends `CoopTilleuls\Bundle\CKEditorSonataMediaBundle\Controller\MediaAdminController` in your bundle.
If you want to customize `MediaAdminController` you must extends `CoopTilleuls\Bundle\CKEditorSonataMediaBundle\Controller\MediaAdminController` in your bundle, and set parameter `sonata.media.admin.media.controller` to match your controller.

## Usage without IvoryCKEditorBundle
## Usage without FOSCKEditorBundle

This bundle can be used with a custom install of CKEditor.
Read the [file browser (uploader)](http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)) doc of CKEditor and the [architecture](architecture.md) of this bundle.
24 changes: 14 additions & 10 deletions Resources/views/layout.html.twig
Expand Up @@ -25,6 +25,20 @@ file that was distributed with this source code.
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
{% endblock %}

<meta data-sonata-admin='{{ {
config: {
CONFIRM_EXIT: sonata_admin.adminPool.getOption('confirm_exit'),
USE_SELECT2: sonata_admin.adminPool.getOption('use_select2'),
USE_ICHECK: sonata_admin.adminPool.getOption('use_icheck'),
USE_STICKYFORMS: sonata_admin.adminPool.getOption('use_stickyforms'),
DEBUG: sonata_admin.adminPool.getOption('js_debug'),
},
translations: {
CONFIRM_EXIT: 'confirm_exit'|trans({}, 'SonataAdminBundle'),
},
}|json_encode()|raw }}'
>

{% block stylesheets %}

{% for stylesheet in admin_pool.getOption('stylesheets', []) %}
Expand All @@ -34,16 +48,6 @@ file that was distributed with this source code.
{% endblock %}

{% block javascripts %}
<script>
window.SONATA_CONFIG = {
CONFIRM_EXIT: {% if admin_pool is defined and admin_pool.getOption('confirm_exit') %}true{% else %}false{% endif %},
USE_SELECT2: {% if admin_pool is defined and admin_pool.getOption('use_select2') %}true{% else %}false{% endif %},
USE_ICHECK: {% if admin_pool is defined and admin_pool.getOption('use_icheck') %}true{% else %}false{% endif %}
};
window.SONATA_TRANSLATIONS = {
CONFIRM_EXIT: '{{ 'confirm_exit'|trans({}, 'SonataAdminBundle')|escape('js') }}'
};
</script>

{% for javascript in admin_pool.getOption('javascripts', []) %}
<script src="{{ asset(javascript) }}" type="text/javascript"></script>
Expand Down
6 changes: 3 additions & 3 deletions Tests/DependencyInjection/ConfigurationTest.php
Expand Up @@ -27,8 +27,8 @@ public function testOptions()
$this->assertArrayHasKey('browser', $config['templates']);
$this->assertArrayHasKey('upload', $config['templates']);

$this->assertEquals('CoopTilleulsCKEditorSonataMediaBundle::layout.html.twig', $config['templates']['layout']);
$this->assertEquals('CoopTilleulsCKEditorSonataMediaBundle:MediaAdmin:browser.html.twig', $config['templates']['browser']);
$this->assertEquals('CoopTilleulsCKEditorSonataMediaBundle:MediaAdmin:upload.html.twig', $config['templates']['upload']);
$this->assertEquals('@CoopTilleulsCKEditorSonataMedia/layout.html.twig', $config['templates']['layout']);
$this->assertEquals('@CoopTilleulsCKEditorSonataMedia/MediaAdmin/browser.html.twig', $config['templates']['browser']);
$this->assertEquals('@CoopTilleulsCKEditorSonataMedia/MediaAdmin/upload.html.twig', $config['templates']['upload']);
}
}
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -14,7 +14,7 @@
],
"require": {
"sonata-project/media-bundle": "~3.0",
"sonata-project/admin-bundle": "~3.1"
"sonata-project/admin-bundle": "~3.40"
},
"require-dev": {
"symfony/phpunit-bridge": "~2.7|~3.0",
Expand Down

0 comments on commit eed6902

Please sign in to comment.