Кастомизация редактора

Для настройки стилей, используемых редактором вы можете выполнить кастомизацию. Рассмотрим пример добавления пользовательского стиля "Computer Code 1".

Необходимо открыть на редактирование (или создать) файл по пути

/var/www/devprom/htdocs/conf/plugins/wrtfckeditor/custom.js

В этом файле необходимо разместить скрипты для конфигурирования редактора. Например, содержимое может быть таким:

CKEDITOR.stylesSet.add( 'default', [
	{ name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } },
	{ name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } },
	{
		name: 'Special Container',
		element: 'div',
		styles: {
			padding: '5px 10px',
			background: '#eee',
			border: '1px solid #ccc'
		}
	},

	{ name: 'Marker', element: 'span', attributes: { 'class': 'marker' } },

	{ name: 'Big', element: 'big' },
	{ name: 'Small', element: 'small' },
	{ name: 'Typewriter', element: 'tt' },

	{ name: 'Computer Code 1', element: 'code', attributes: {'custom': 'true'} },
	{ name: 'Keyboard Phrase', element: 'kbd' },
	{ name: 'Sample Text', element: 'samp' },
	{ name: 'Variable', element: 'var' },

	{ name: 'Deleted Text', element: 'del' },
	{ name: 'Inserted Text', element: 'ins' },

	{ name: 'Cited Work', element: 'cite' },
	{ name: 'Inline Quotation',	element: 'q' },


	/* Object styles */

	{
		name: 'Styled Image (left)',
		element: 'img',
		attributes: { 'class': 'left' }
	},
	{
		name: 'Styled Image (right)',
		element: 'img',
		attributes: { 'class': 'right' }
	},

	{
		name: 'Compact Table',
		element: 'table',
		attributes: {
			cellpadding: '5',
			cellspacing: '0',
			border: '1',
			bordercolor: '#ccc'
		},
		styles: {
			'border-collapse': 'collapse'
		}
	},

	{ name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
	{ name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } },

	/* Widget styles */

	{ name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } },
	{ name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } },

	{ name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },

	{ name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } },

	{ name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' }, group: 'size' },
	{ name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' }, group: 'size' },
	{ name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' }, group: 'size' },
	{ name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' }, group: 'size' },
	{ name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' }, group: 'size' },

	// Adding space after the style name is an intended workaround. For now, there
	// is no option to create two styles with the same name for different widget types. See https://dev.ckeditor.com/ticket/16664.
	{ name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' }, group: 'size' },
	{ name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' }, group: 'size' },
	{ name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' }, group: 'size' },
	{ name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' }, group: 'size' },
	{ name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' }, group: 'size' }
] );

В примере выше мы добавили пользовательский стиль:

{ name: 'Computer Code 1', element: 'code', attributes: {'custom': 'true'} },

атрибуты, перечисленные в поле attributes будут подставлены в HTML-разметку, к чему в дальнейшем можно будет привязать настройки пользовательского стиля.

Таким образом, при оформлении текста данным стилем, мы получим следующую разметку:

И выглядеть это может так:

Для задания параметров стиля необходимо отредактировать файл:

/var/www/devprom/htdocs/conf/plugins/wrtfckeditor/custom.css

Например, добавить туда следующее оформление:

code[custom=true]
{
    background-color: black;
    color: white;
}

После сброса кеша приложения и кеша браузера данные настройки будут подхвачены редактором документов.