"хак сегодняшего дня" - вот пример на сегодня.
Так как я верстальщик, то в админке мне нужен нормальный редактор подсветки кода.
CodeMirror неудобен и глючен.
Недавно наконецто скачал и потрогал редактор Ace - он используется на github'е - с ним проблем не возникало вобщем то никаких. Так же в Firefox давно стоит плагин acebug - подсветка кода в
FireBug - полезнейшая вещь. Естественно возникло желание поставить его на замену CodeMirror.
Ну, думаю никаких проблем не должно быть... Ага, не тут то было...Проблем целый ворох. Нет, плагин я написал быстро, тут все ок.
Однако оказалось что я его не могу использовать для редактирования файлов шаблона, потому что разработчики Joomla за меня решили, что с этим лучше справится codemirror, чем какойто там еще редактор. Ну почему, а? Какой толк в установке плагинов, если ими нельзя воспользоваться?. Поглядел я почему так получается. Оказывается разработчики в нескольких местах свой codemirror повпихивали. в файлы XML - "модели" форм, даже в файл-модель для компонента редактирования шаблонов. Короче сделали его частью Joomla, все, его как мутулз теперь не выкорчаешь.
Вот так это выглядит (фу, аш блевать тянет)
// Codemirror or Editor None should be enabled
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('COUNT(*)');
$query->from('#__extensions as a');
$query->where('(a.name ='.$db->quote('plg_editors_codemirror').' AND a.enabled = 1) OR (a.name ='.$db->quote('plg_editors_none').' AND a.enabled = 1)');
$db->setQuery($query);
$state = $db->loadResult();
if ((int)$state < 1 ) {
$app->enqueueMessage(JText::_('COM_TEMPLATES_ERROR_EDITOR_DISABLED'), 'warning');
}
<field
name="source"
type="editor"
editor="codemirror|none"
/>
Ну разве так можно, а? Нельзя чтоли в опциях сделать два поля выбора:
Визуальный редактор (wysiwyg editor)
Невизуальный редактор (source editor)
Визуальный использовать для материалов и модулей, если выбран.
Невизуальный использовать для шаблона и материалов/модулей если не выбран визуальный.
Для field добавить атрибуты editor_type - source|wysiwyg, editor_syntax - css|html|php...
Добавляю что этот же редактор без проблем интегрировал в modx.