Внедрение редактора WYSIWYG для ATK4

В отношении этого вопроса Есть ли компонент CMS (WYSIWYG) для Agile Toolkit?, я пытаюсь добавить редактор elRTE в качестве RTE по умолчанию для моей установки ATK4.

Просто, куда я должен поместить файлы elRTE в структуре каталогов atk4?

ТИА ПГ

Дополнительная информация:

Кому-нибудь удалось заставить работать редактор WYSIWYG?

Я пробовал с tinyMCE и elRTE. Я поместил обе библиотеки в папку atk4/templates/js, а затем загрузил их через мой класс API администратора (я хочу, чтобы библиотеки были доступны для всех моих моделей администратора):

 $this->js()
        ->_load('atk4_univ')
        ->_load('ui.atk4_notify')
        ->_load('tiny_mce/tiny_mce')
        ;

если я пробую elRTE, то загружаю его, а не tinyMCE -

            ->_load('elrte/js/elrte.min')

затем в моем классе page_manager я пытаюсь создать экземпляр редактора wysiwyg:

$tabs=$this->add('Tabs');
$crud = $tabs->addTab('listing')->add('CRUD');
$crud->setModel('Listing',array('title','body'),array('title'));

if ($crud->form) {
    $f = $crud->form;
    $f->getElement('body')->js(true)->tinyMCE.init();
}

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

$f->getElement('body')->js(true,'tinyMCE.init(mode:"textareas")');

$f->getElement('body')->js(true,'elrte()');

$f->getElement('body')->js(true)->elrte();

В конце концов, все, что я хочу, это простой редактор wysiwyg на CRUD администратора.


person Papa Gateau    schedule 07.12.2011    source источник
comment
Пожалуйста, расширьте свой вопрос, используя кнопку «Изменить», а не добавляя изменения в качестве ответа. Удачи!   -  person Andrew Kozak    schedule 08.12.2011
comment
Сделал так - извините, просто наткнулся на этот сайт.   -  person Papa Gateau    schedule 09.12.2011


Ответы (1)


Я не могу дать прямой ответ, но предложение:

Обычно вы должны поместить js в templates/js/elrte/ и использовать Навигатор. Я интегрировал пользовательский интерфейс StackOverflow Markdown следующим образом:

$m=$f->getElement('text');
$m->js(true)->parent()->prepend('<div id="'.$m->name.'-bar"></div>');
$m->js(true)->parent()->append('<div id="'.$m->name.'-preview" class="wmd-panel wmd-preview"></div>');
$m->js(true,' var converter1 = Markdown.getSanitizingConverter(); var editor1 = new Markdown.Editor(converter1,"'.
        $m->name.'");editor1.run();');

$this->api->jquery->addStaticInclude('pagedown/Markdown.Converter');
$this->api->jquery->addStaticInclude('pagedown/Markdown.Sanitizer');
$this->api->jquery->addStaticInclude('pagedown/Markdown.Editor');
$this->api->template->append('js_include',
    '<link type="text/css" href="'.$this->api->locateURL('js','pagedown/demo/browser/demo.css').'" rel="stylesheet" />'."\n");

Мне пришлось вручную изменить JS-файл, чтобы он поддерживал поля ID с префиксами, но вы можете использовать очень похожий подход для любого редактора. Вставьте сюда свой код после завершения интеграции.

person romaninsh    schedule 07.12.2011
comment
в вашем коде не используйте _load(), а вместо этого используйте addStaticInclude. Сравните исходный код страницы, созданной с помощью инструментария Agile, с демонстрационной страницей. - person romaninsh; 09.12.2011
comment
Я изменил свой код, чтобы использовать addStaticInclude, но это не имело значения. - person Papa Gateau; 09.12.2011