Реализация редактора WYSIWYG для ATK4 - PullRequest
1 голос
/ 07 декабря 2011

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

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

TIA PG

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

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

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

 $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

1 Ответ

0 голосов
/ 07 декабря 2011

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

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

...