\\ ======Файлы конфигурации редактора====== Редактор **CKEditor**, включаемый в состав **GetSimple**, поставляется с файлом конфигурации по умолчанию и файлом стилей по умолчанию. У пользователей есть возможность создавать собственный конфигурационный файл, который не будет переписываться при очередном обновлении системы, для определения настроек редактора, которые отсутствуют в его усеченной версии для GS. ===== Стандартный файл конфигурации ===== Стандартный файл конфигурации редактора, идущий с пакетом **GetSimple**, располагается в папке ''Корневой_каталог_системы/admin/template/js/ckeditor'' и практически пуст: Он содержит всего 2 опции: CKEDITOR.editorConfig = function( config ) { // Определяйте изменения конфигурации по умолчанию здесь. Например: config.removePlugins = 'elementspath,resize' ; // не показывать путь к элементу, запретить изменение размера config.toolbarCanCollapse = false; //скрыть кнопку сворачивания панели инструментов }; Разумеется, дополнительные параметры конфигурации редактора можно указывать и в этом файле, но он будет переписываться с каждым обновлением системы. Поэтому лучшим решением будет создание пользовательского конфигурационного файла и хранение его в безопасном месте. ===== Пользовательский файл конфигурации ===== Преимуществом редактора CKEditor является возможность определения собственного конфигурационного файла или файла пользовательских настроек. Казалось бы, зачем вообще нужен такой файл? Вы уже убедились, что значительное количество параметров CKEditor определяется в файле настроек системы GetSimple ''gsconfig.php''. Для создания собственных настроек есть несколько причин: * Вам необходимо добавить большое количество опций и вам по какой-то причине удобнее сделать это в файле ''config.js'', а не в ''gsconfig.php'' * Вы хотите не только определить настройки редактора, но и , например, управлять поведением диалоговых окон * Вы хотите изменить автоматическое форматирование текста редактором по умолчанию * … Процесс создания файла пользовательской конфигурации достаточно прост. Файл ''config.js'' представляет собой обычный javascript-файл. * Возьмите файл ''config.js'', который поставляется с GetSimple, переименуйте его и сохраните в папке ''data'' или ''theme''. * Отредактируйте его и загрузите на сервер в соответствующую папку, проверьте права доступа (файл должен быть доступен на чтение); * Пропишите наименование и путь к вашему файлу конфигурации редактора в файле ''gsconfig.php'' в параметре GSEDITOROPTIONS. Пример: define('GSEDITOROPTIONS', "entities : false,customConfig : '../../../../theme/папка_вашей_темы/yourconfigfile.js',skin: 'v2' "); Эта инструкция определяет, что пользовательский файл конфигурации редактора с именем ''yourconfigfile.js'' расположен в папке с вашей активной темой ''папка_вашей_темы''. Еще пример: define('GSEDITOROPTIONS', "entities : false,customConfig : '../../../../data/editorconfig/yourconfigfile.js',skin: 'v2' "); Для данного случая необходимо создать папку ''editorconfig'' в папке ''data'' и загрузить файл конфигурации в эту папку. Проверьте, не запрещен ли доступ к js-файлам в папке ''data'' в соответствующем ''.htaccess'' файле. === Пример файла пользовательской конфигурации CKEditor: === /* Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ CKEDITOR.editorConfig = function( config ) { // Определяйте изменения настроек редактора по умолчанию здесь. Например: config.toolbarCanCollapse = true, config.enterMode = CKEDITOR.ENTER_P, config.shiftEnterMode = CKEDITOR.ENTER_BR, config.colorButton_enableMore = true, config.bodyId = 'content', config.entities = false, config.forceSimpleAmpersand = false, config.fontSize_defaultLabel = '12px', config.font_defaultLabel = 'Arial', config.emailProtection = 'encode', config.contentsLangDirection = 'ltr', config.language = 'en', config.contentsLanguage = 'en', config.toolbarLocation = 'top', config.browserContextMenuOnCtrl = false, config.image_previewText = CKEDITOR.tools.repeat('Get-Simple - the best CMS for your purposes. Install it, test it, enjoy it. Free, OpenSource and userfriendly', 50 ) }; // из http://help.pixelandtonic.com/brandonkelly/topics/how_do_i_set_output_formatting_writer_rules?from_gsfn=true CKEDITOR.on( 'instanceReady', function( ev ) { var blockTags = ['div','h1','h2','h3','h4','h5','h6','p','pre','ul','li']; var rules = { indent : false, breakBeforeOpen : false, breakAfterOpen : false, breakBeforeClose : false, breakAfterClose : true }; for (var i=0; i ===== Стандартный файл стилей ===== {{ :how_to:ckeditorstylecombo.jpg}} Пользователи как правило, не очень охотно используют стили по умолчанию, которые доступны в выпадающем списке стилей редактора. Они хотят иметь выбор. По умолчанию, стилевой файл редактора, определяющий содержимое выпадающего списка стилей, носит имя //default.js// и располагается по этому пути: ''Корневой_каталог_GetSimple /admin/template/js/ckeditor/plugins/styles/styles/default.js'' Этот файл можно редактировать, но он поставляется в сжатом формате, и процесс вряд ли доставит вам удовольствие. Но что еще более важно, этот файл будет переписываться сверху новым при каждом обновлении. Поэтому значительно удобнее создать собственную конфигурацию и хранить ее в безопасном для обновлений месте. ===== Пользовательские стили ===== Краткое описание шагов для применения пользовательского стиля в редакторе. - Скачайте несжатый файл стилей [[http://svn.ckeditor.com/CKEditor/trunk/_source/plugins/styles/styles/default.js| с домашней страницы CKEditor]] - Переименуйте файл как вам угодно и загрузите его в безопасное место на сервер, например, в папку data или theme - Отредактируйте соответствующим образом файл ''gsconfig.php'' и перезагрузите его на сервер. Теперь обсудим эти шаги более подробно: * Нам потребуется дополнительная (advanced) панель инструментов редактора, на которой расположен выпадающий список стилей. Активируйте ее в файле gsconfig.php , если вы еще этого не сделали.\\ define('GSEDITORTOOL', 'advanced'); * добавьте новый файл стиля в параметр GSEDITOROPTIONS файла gsconfig.php\\ define('GSEDITOROPTIONS',"stylesSet: 'default:http://www.yourdomain.de/getsimple-root/themes/ckeditorstyles.js'"); Теперь – что именно требуется редактировать в этом файле? Таблица стилей CKEditor содержит следующие стилевые правила: * Стили блочных элементов (уже определены, но могут быть изменены) * Стили строчных элементов * Стили объектов Определите категорию для элемента, который вы хотите добавить, и отредактируйте файл в соответствующем месте. Синтаксис: { name : 'Computer Code', element : 'code' }, или { name : 'Marker: Yellow', element : 'span', styles : { 'background-color' : 'Yellow' } }, или так { name : 'Image on Left', element : 'img', attributes : { 'style' : 'padding: 5px; margin-right: 5px', 'border' : '2', 'align' : 'left' } }, Определение должно содержать как минимум два параметра: ''name'' (наименование) и ''element'' (элемент). Наименование (name) может быть абсолютно любым, но лучше – значимым. Element служит для указания HTML-тэга, подлежащего вставке в редактируемую разметку при выделении в окне редактора любого текста и активации этого стиля. Таким образом, у вас есть возможность дать часто используемому формату значимое имя, под которым он будет выведен в выпадающий список стилей (можно также удалить неиспользуемые форматы, которые зачастую только раздражают пользователя). Если есть необходимость добавить к элементам **HTML-атрибуты**, потребуется третий параметр ''attributes'', например: { name : 'Tablecell top', element : 'td', attributes : { 'valign' : 'top' } }, Для **CSS-стилей** применяется параметр ''styles'', например: { name : 'Red table', element : 'table', styles : { 'background-color':'red' } }, \\ ===== HTML или XHTML? ===== По умолчанию CKEditor проставляет закрывающие тэги, следуя стандартам XHTML (каждый тэг должен быть закрыт), и соответствующим образом форматирует код. Для того, чтобы переключить поведение редактора на HTML-стандарт и не использовать косую черту в закрывающих тэгах (например, оставлять в документе тэг **
** (HTML) вместо **
** (XHTML) при сохранении страницы), необходимо отредактировать файл конфигурации редактора ''config.js'', расположенный в папке ''admin/template/js/ckeditor/'', добавив следующий код: CKEDITOR.on( 'instanceReady', function( ev ) { ev.editor.dataProcessor.writer.selfClosingEnd = '>'; });