- Add TrsteelCkeditorBundle to your composer.json
- Enable the bundle
- Install bundle assets
- Configure the bundle (optional)
- Add the editor to a form
- Configure data transformers
{
"require": {
"Trsteel/ckeditor-bundle": "dev-master"
}
}
and update your project dependencies:
php composer.phar update Trsteel/ckeditor-bundle
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Trsteel\CkeditorBundle\TrsteelCkeditorBundle(),
);
}
$ php ./app/console assets:install web --symlink
--symlink is optional
For a full configuration dump use:
$ php ./app/console config:dump-reference TrsteelCkeditorBundle
An example configuration:
trsteel_ckeditor:
class: Trsteel\CkeditorBundle\Form\Type\CkeditorType
transformers: ['strip_js', 'strip_css', 'strip_comments']
toolbar: ['document', 'clipboard', 'editing', '/', 'basicstyles', 'paragraph', 'links', '/', 'insert', 'styles', 'tools']
toolbar_groups:
document: ['Source','-','Save','-','Templates']
clipboard: ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo']
editing: ['Find','Replace','-','SelectAll']
basicstyles: ['Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat']
paragraph: ['NumberedList','BulletedList','-','Outdent','Indent','-','JustifyLeft', 'JustifyCenter','JustifyRight','JustifyBlock']
links: ['Link','Unlink','Anchor']
insert: ['Image','Flash','Table','HorizontalRule']
styles: ['Styles','Format']
tools: ['Maximize', 'ShowBlocks']
ui_color: '#000000'
startup_outline_blocks: true
width: 800 #Integer or %
height: 300 #Integer or %
language: 'en-au'
filebrowser_upload_url:
url: relative-url.php?type=file
filebrowser_image_browse_url:
route: route_name
route_parameters:
type: image
Or even overwrite the 'document' toolbar group in your application completely.
trsteel_ckeditor:
class: Trsteel\CkeditorBundle\Form\Type\CkeditorType
toolbar: ['document', 'clipboard', 'editing', '/', 'basicstyles', 'paragraph', 'links', '/', 'insert', 'styles', 'tools']
toolbar_groups:
document: ['Source']
You can create additional toolbar groups. Just create the group and specify the items. As you can see in the above config the 'document' toolbar group has been overwritten and only shows the 'Source' icon.
Example form:
<?php
$form = $this->createFormBuilder($post)
->add('title', 'text')
->add('content', 'ckeditor', array(
'transformers' => array('strip_js', 'strip_css', 'strip_comments'),
'toolbar' => array('document','basicstyles'),
'toolbar_groups' => array(
'document' => array('Source')
),
'ui_color' => '#fff',
'startup_outline_blocks' => false,
'width' => '100%',
'height' => '320',
'language' => 'en-au',
'filebrowser_image_browse_url' => array(
'url' => 'relative-url.php?type=file',
),
'filebrowser_image_browse_url' => array(
'route' => 'route_name',
'route_parameters' => array(
'type' => 'image',
),
),
))
->getForm()
;
Note: All parameters from config.yml can be overwritten in a form (excluding 'class').
Data transformers will automatically update the html content when the form is processed.
This bundle comes with several built-in transformers.
strip_js: Strips all javascript from the posted data
strip_css: Strips all css from the posted data
strip_comments: Strips all comments from html eg.
If you do not want any transformers enabled you should disable them by:
- Disable globally in the config:
trsteel_ckeditor:
transformers: []
- Disable them on a particular form:
<?php
$form = $this->createFormBuilder($post)
->add('title', 'text')
->add('content', 'ckeditor', array(
'transformers' => array(),
))
->getForm()
;