Templates"

This website contains links to software which is either no longer maintained or will be supported only until the end of 2019 (CKFinder 2). For the latest documentation about current CKSource projects, including software like CKEditor 4/CKEditor 5, CKFinder 3, Cloud Services, Letters, Accessibility Checker, please visit the new documentation website.

If you look for an information about very old versions of CKEditor, FCKeditor and CKFinder check also the CKEditor forum, which was closed in 2015. If not, please head to StackOverflow for support.

(Pointing the Editor to a Custom Templates Definitions File: Article section proof-read)
(The Templates Definitions File Contents: Article section proof-read)
Line 14: Line 14:
 
Note that the <code>[http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.templates_files templates_files]</code> setting is an array, which means that more than one template file can be used.
 
Note that the <code>[http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.templates_files templates_files]</code> setting is an array, which means that more than one template file can be used.
  
=== The Templates Definitions File Contents ===
+
=== Template Definition File Contents ===
This is a sample Template Definition file that defines two simple templates:
+
Below you will find a sample template definition file that defines two simple templates.
  
 
<source language="js">
 
<source language="js">
// Register a templates definition set named "default".
+
// Register a template definition set named "default".
 
CKEDITOR.addTemplates( 'default',
 
CKEDITOR.addTemplates( 'default',
 
{
 
{
// The name of sub folder which hold the shortcut preview images of the templates.
+
// The name of the subfolder that holds the preview images of the templates.
 
imagesPath : CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'templates' ) + 'templates/images/' ),
 
imagesPath : CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'templates' ) + 'templates/images/' ),
  
// The templates definitions.
+
// The template definitions.
 
templates :
 
templates :
 
[
 
[
Line 30: Line 30:
 
title: 'My Template 1',
 
title: 'My Template 1',
 
image: 'template1.gif',
 
image: 'template1.gif',
description: 'Description of my template 1.',
+
description: 'Description of My Template 1.',
 
html:
 
html:
 
'<h2>Template 1</h2>' +
 
'<h2>Template 1</h2>' +
'<p><img src="/logo.png" style="float:left" />Type the text here.</p>'
+
'<p><img src="/logo.png" style="float:left" />Type your text here.</p>'
 
},
 
},
 
{
 
{
Line 39: Line 39:
 
html:
 
html:
 
'<h3>Template 2</h3>' +
 
'<h3>Template 2</h3>' +
'<p>Type the text here.</p>'
+
'<p>Type your text here.</p>'
 
}
 
}
 
]
 
]
Line 45: Line 45:
 
</source>
 
</source>
  
As we can see here, the above is pure JavaScript code. It's a simple call to the <code>[http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.html#.addTemplates CKEDITOR.addTemplates]</code> function, which registers the templates under a unique name (<code>default</code>). This name can be then used by the <code>[http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.templates templates]</code> setting.
+
The above example contains pure JavaScript code. It is a simple call to the <code>[http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.html#.addTemplates CKEDITOR.addTemplates]</code> function, which registers the templates under a unique name (<code>default</code>). This name can be later used by the <code>[http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.templates templates]</code> setting.

Revision as of 15:12, 13 January 2011

With CKEditor, content writers can select a template from a list by clicking the Templates button in the toolbar. A template is a predefined piece of HTML that is placed inside the editor. In this way the user doesn't need to start writing from scratch. Designers can prepare well designed templates, avoiding user errors before they happen.

Template Definition Files

CKEditor comes with three sample templates that are there just to show the way this feature works. They are defined in the plugins/templates/templates/default.js file. Developers should most definitely modify the default templates as they are not particularly useful to end users.

Note that a template definition file is a JavaScript file that is loaded when opening the Content Templates dialog window for the first time. This file may be modified to include custom templates, or you can create a separate template file outside the editor installation directory, and configuring the editor to use it.

Pointing the Editor to a Custom Templates Definition File

Suppose you have created a custom template definition file named mytemplates.js (starting from a copy of default.js) and placed it in the root directory of your website. You can now add the following setting in the editor configuration:

config.templates_files = [ '/mytemplates.js' ];

Note that the templates_files setting is an array, which means that more than one template file can be used.

Template Definition File Contents

Below you will find a sample template definition file that defines two simple templates.

// Register a template definition set named "default".
CKEDITOR.addTemplates( 'default',
{
	// The name of the subfolder that holds the preview images of the templates.
	imagesPath : CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'templates' ) + 'templates/images/' ),

	// The template definitions.
	templates :
		[
			{
				title: 'My Template 1',
				image: 'template1.gif',
				description: 'Description of My Template 1.',
				html:
					'<h2>Template 1</h2>' +
					'<p><img src="/logo.png" style="float:left" />Type your text here.</p>'
			},
			{
				title: 'My Template 2',
				html:
					'<h3>Template 2</h3>' +
					'<p>Type your text here.</p>'
			}
		]
});

The above example contains pure JavaScript code. It is a simple call to the CKEDITOR.addTemplates function, which registers the templates under a unique name (default). This name can be later used by the templates setting.