我有简单的Zend_Dojo_Form和Editor元素,当我添加aditional插件时,我从firebug得到通知
Cannot find plugin linkdialog
代码
class Some_Form extends Zend_Dojo_Form
{
public function init() {
$this->addElement('Editor', 'content', array(
'label'=> 'Some editor title',
'dijitParams' => array(
'extraPlugins'=>array('linkdialog')
),
);
}
}
如何为Zend_Dojo_Form_Element_Editor启用aditional插件?我试图包括manualy,但结果相同。
dojo.require("dijit._editor.plugins.LinkDialog");
有什么建议吗?
答案 0 :(得分:1)
谢谢@Alan Kay,你让我走上了正确的道路,但要详细说明一点。
似乎有两类Dojo编辑器插件,“(内置)插件”和“ extraPlugins ”。
以下是built-in plugins的列表(不确定它是否是最新的)。您可以在Dojo启用的Zend Forms Elements上添加内置插件:
$this->addElement('editor', 'summary', array(
'label' => 'Summary:',
'plugins' => array(
// NOTE: specifying any will lose the default builtin plugins,
// so need to re-add the ones you want.
// Builtin plugins
'bold', 'italic', 'underline', '|',
'insertOrderedList', 'insertUnorderedList', '|',
'indent', 'outdent', '|',
'justifyLeft', 'justifyRight', 'justifyCenter', 'justifyFull', '|',
// dijit._editor.plugins that work
'foreColor', 'hiliteColor', '|', // TextColor
'fontName', 'fontSize', 'formatBlock', '|', // FontChoice
'createLink', 'insertImage', '|', // LinkDialog
'viewSource', // ViewSource
)
));
或者,有两个主要的extraPlugins库,Dijit(http://dojotoolkit.org/reference-guide/dijit/_editor/plugins.html#dijit-editor-plugins)和Dojox(http:// dojotoolkit。组织/参考导/ DojoX中/编辑/ plugins.html#DojoX中的编辑器-插件)。不幸的是,'extraPlugins'在Zend Framework中不可用,直到下一个次要版本(1.12)ZF-11511。您可以使用该补丁创建自己的库以在此期间扩展Zend_Dojo_Form_Element_Editor。
注意,在指定'extraPlugins'时,您要使用'短名称'(例如'createLink'),而不是'资源'(例如'linkdialog'):
“粗体文本代表资源;基本文本代表资源 “短名称”将被添加到extraPlugins列表中。“'使用插件'(http://dojotoolkit.org/documentation/tutorials/1.6/editor/)<< em>
但是,请注意,在上面的示例中,可以包含某些 Dijit extraPlugin'资源'的“短名称”,但据我所知,不包括Dojox。不确定为什么这样(没有看过dojo src - 有人吗?)。试试你的运气。
答案 1 :(得分:0)
我不知道这是否适用于您的确切语法,但您不想设置'LinkDialog',您想要'createLink'。我猜'extraPlugins'=>array('createLink')
是你需要的改变
我知道以下内容适用于我:
$this->addElement(new Zend_Dojo_Form_Element_Editor('content',
array(
'label' => 'Content:',
'class' => 'soria',
)
)
);
$this->contents->addPlugins(array('|', 'createLink');