Редактор
По опыту многолетней работы было принято решение отказаться от визуальных редакторов в стандартной сборке cogear. В движке используется наш собственный редактор, который поможет пользователю с разметкой текста.
Вся полученная информация фильтруется парсером.
Подключить редактор в полю текста можно несколькими способами.
Обратите внимание на приятные особенности редактора:
Добавляются новые кнопки через хуки и JavaScript.
Более подробную информацию о редакторе можно найти в файле "/gears/editor/js/editor.html.js".
Вся полученная информация фильтруется парсером.
Подключить редактор в полю текста можно несколькими способами.
// Указав имя формы в файле конфигурации редактора
// Все текстовые поля будут заменены на редакторы
forms = node_createdit,create_mail,pages_createdit
// Использовать метод вызова редактора, как элемента формы
$this->form->set('nodes/createdit')
...
->editor('body')
...
// Добавить в массив editors объекта формы имя элемента textarea
$this->form->editors[] = 'body';
Обратите внимание на приятные особенности редактора:
- Размер окна ввода меняется динамически.
- Элементы управления редактора следуют за перемещением — всегда на виду.

Добавление новых элементов
Панель управления редактором может быть расширена посредством добавления новых кнопок.Добавляются новые кнопки через хуки и JavaScript.
// /gears/upload/_hooks.php
...
/**
* Add image upload button
*
* @param object
* @return void
*/
function upload_editor_compile_after_($Editor){
js('/gears/upload/js/inline/image',FALSE,TRUE);
}
// ------------------------------------------------------------------------
...
// /gears/upload/js/inline/image.js
window.addEvent('domready',function(){
for(name in editor.editors){
var e = editor.editors[name];
e.addButton({hotkey:'g',background:'/gears/upload/img/icon/images.png',action:'upload_image("'+e.el.id+'")'})
}
});
function upload_image(textarea){
ed = editor.get(textarea);
textarea = $type(textarea) == 'string' ? $(textarea) : textarea;
// Вызываем окно загрузчика
loader.ed = ed;
loader.value = textarea.value;
loader.frame('/upload/image/',500,420);
}
Более подробную информацию о редакторе можно найти в файле "/gears/editor/js/editor.html.js".
