English spoken conference

Symfony 5: The Fast Track

A new book to learn about developing modern Symfony 5 applications.

Support this project

Template support

Template support

Enable the Templates Plugin

The bundle offers you the ability to manage extra templates. To use this feature, you need to enable the templates plugins shipped with the bundle. You can define it globally in your configuration:

1
2
3
4
5
6
# app/config/config.yml
fos_ck_editor:
    default_config: my_config
    configs:
        my_config:
            extraPlugins: "templates"

Or you can define it in your widget:

1
2
3
4
5
$builder->add('field', 'ckeditor', array(
    'config' => array(
        'extraPlugins' => 'templates',
    ),
));

Configure your templates

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# app/config/config.yml
fos_ck_editor:
    default_config: my_config
    configs:
        my_config:
            extraPlugins: "templates"
            templates:    "my_templates"
    templates:
        my_templates:
            imagesPath: "/bundles/mybundle/templates/images"
            templates:
                -
                    title:       "My Template"
                    image:       "image.jpg"
                    description: "My awesome template"
                    html:        "<p>Crazy template :)</p>"

Or you can define them in your widget:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
$builder->add('field', 'ckeditor', array(
    'config' => array(
        'extraPlugins' => 'templates',
        'templates'    => 'my_template',
    ),
    'templates' => array(
        'my_template' => array(
            'imagesPath' => '/bundles/mybundle/templates/images',
            'templates'  => array(
                array(
                    'title'       => 'My Template',
                    'image'       => 'images.jpg',
                    'description' => 'My awesome template',
                    'html'        => '<p>Crazy template :)</p>',
                ),
                // ...
            ),
        ),
    ),
));

Use a dedicated template

If you prefer define your html in a dedicated Twig or PHP template, you can replace the html node by the template one and provide the path of your template. You can optionally provide template parameters with the template_parameters node.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# app/config/config.yml
fos_ck_editor:
    default_config: my_config
    configs:
        my_config:
            extraPlugins: "templates"
            templates:    "my_templates"
    templates:
        my_templates:
            imagesPath: "/bundles/mybundle/templates/images"
            templates:
                -
                    title:       "My Template"
                    image:       "image.jpg"
                    description: "My awesome template"
                    template:    "AppBundle:CKEditor:template.html.twig"
                    template_parameters:
                        foo: bar

Or you can define them in your widget:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
$builder->add('field', 'ckeditor', array(
    'config' => array(
        'extraPlugins' => 'templates',
        'templates'    => 'my_template',
    ),
    'templates' => array(
        'my_template' => array(
            'imagesPath' => '/bundles/mybundle/templates/images',
            'templates'  => array(
                array(
                    'title'               => 'My Template',
                    'image'               => 'images.jpg',
                    'description'         => 'My awesome template',
                    'template'            => 'AppBundle:CKEditor:template.html.twig',
                    'template_parameters' => array('foo' => 'bar'),
                ),
                // ...
            ),
        ),
    ),
));

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.