Powered by CodeIgniter

Редактор

По опыту многолетней работы было принято решение отказаться от визуальных редакторов в стандартной сборке cogear. В движке используется наш собственный редактор, который поможет пользователю с разметкой текста.
Вся полученная информация фильтруется парсером.
Подключить редактор в полю текста можно несколькими способами.// Указав имя формы в файле конфигурации редактора // Все текстовые поля будут заменены на редакторы 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".