为ATK4实现WYSIWYG编辑器

时间:2011-12-07 15:04:16

标签: atk4

在提到这个问题Is there a CMS (WYSIWYG) Component for Agile Toolkit?时,我试图将elRTE编辑器添加为我安装ATK4的默认RTE。

简单地说,我应该在哪里将elRTE文件放在atk4目录结构中?

TIA PG

其他信息:

有没有人设法让WYSIWYG编辑器工作?

我尝试过使用tinyMCE和elRTE。我已将两个库放在atk4 / templates / js文件夹中,然后通过我的Admin 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();

在我的智慧结束时,我想要的只是管理员CRUD上的一个简单的所见即所得编辑器

1 个答案:

答案 0 :(得分:0)

我无法直接回答,但建议:

通常你应该把js放在templates / js / elrte /下并使用PathFinder。我已经像这样集成了StackOverflow的Markdown UI:

$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字段,但您可以对任何编辑器使用非常类似的方法。完成集成后,将代码粘贴到此处。