trsteel/ckeditor-bundle

Symfony bundle for easy integration of the CKEditor WYSIWYG

Maintainers

👁 trsteel88

Package info

github.com/trsteel88/TrsteelCkeditorBundle

Type:symfony-bundle

pkg:composer/trsteel/ckeditor-bundle

Statistics

Installs: 639 301

Dependents: 13

Suggesters: 21

Stars: 95

Open Issues: 0

1.22.1 2025-12-11 03:38 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 982b4e0566980a8a36a9387ad1709356ba97f64f

  • Trent Steel <trsteel88.woop@gmail.com>

wysiwygeditorCKEditor


README

  1. Add TrsteelCkeditorBundle to your composer.json
  2. Enable the bundle
  3. Install bundle assets
  4. Configure the bundle (optional)
  5. Add the editor to a form
  6. Configure data transformers

Step 1: Add TrsteelCkeditorBundle to your composer.json

php composer.phar require Trsteel/ckeditor-bundle

Step 2: Enable the bundle

<?php
// app/AppKernel.php

public function registerBundles()
{
 $bundles = array(
 // ...
 new Trsteel\CkeditorBundle\TrsteelCkeditorBundle(),
 );
}

Step 3: Install bundle assets

$ php ./bin/console assets:install public --symlink

--symlink is optional

Step 4: Configure the bundle (optional)

For a full configuration dump use:

$ php ./bin/console config:dump-reference TrsteelCkeditorBundle

An example configuration:

trsteel_ckeditor:
 class: Trsteel\CkeditorBundle\Form\Type\CkeditorType
 transformers: ['html_purifier']
 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.

Step 5: Add the editor to a form

Example form:

<?php

$form = $this->createFormBuilder($post)
 ->add('title', 'text')
 ->add('content', \Trsteel\CkeditorBundle\Form\Type\CkeditorType::class, array(
 'transformers' => array('html_purifier'),
 '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').

Step 6: Configure data transformers

Data transformers will automatically update the html content when the form is processed.

The bundle comes with a html purifier transformer thanks to https://github.com/ezyang/htmlpurifier

If you do not want any transformers enabled you should disable them by:

  1. Disable globally in the config:
trsteel_ckeditor:
 transformers: []
  1. Disable them on a particular form:
<?php

$form = $this->createFormBuilder($post)
 ->add('title', 'text')
 ->add('content', \Trsteel\CkeditorBundle\Form\Type\CkeditorType::class, array(
 'transformers' => array(),
 ))
 ->getForm()
;

Next Steps