Как загрузить дополнительные плагины для Zend Dojo Form Element Editor? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть простой Zend_Dojo_Form с элементом Editor, когда я добавляю дополнительные плагины, я получаю уведомление от 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? Я попытался включить вручную, но те же результаты.

dojo.require("dijit._editor.plugins.LinkDialog");

есть предложения?

Ответы [ 2 ]

1 голос
/ 13 января 2012

Спасибо @Alan Kay, вы выбрали меня на правильном пути, но немного подробнее.

Похоже, есть две категории плагинов редактора Dojo: ' (встроенные) плагины ' и ' extraPlugins '.

Вот список встроенных плагинов (не уверен, что он актуален). Вы можете добавить встроенные плагины в Zend с поддержкой 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 (* 1015). К сожалению, «extraPlugins» недоступны в Zend Framework до следующего второстепенного выпуска (1.12) ZF-11511 . Вы можете использовать этот патч, чтобы создать собственную библиотеку для расширения Zend_Dojo_Form_Element_Editor.

Обратите внимание, что при указании «extraPlugins» вы хотите использовать «короткое имя» (например, «createLink»), а не «ресурс» (например, «linkdialog»):

"Текст, выделенный жирным шрифтом, представляет ресурс; основной текст представляет "короткое имя", которое будет добавлено в список extraPlugins. " 'Использование плагинов' (http://dojotoolkit.org/documentation/tutorials/1.6/editor/)

Тем не менее, обратите внимание, что в приведенном выше примере можно включить 'короткие имена' для некоторых Dijit extraPlugin 'resources', но не Dojox, насколько мне известно. Не знаю, почему это так (не изучал dojo src - кто-нибудь?). Испытай свою удачу.

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

Я не знаю, будет ли это работать для вашего точного синтаксиса, но вы не хотите устанавливать 'LinkDialog', вы хотите 'createLink'.Я предполагаю, 'extraPlugins'=>array('createLink') - это нужное вам изменение

Я знаю, что для меня работает следующее:

$this->addElement(new Zend_Dojo_Form_Element_Editor('content',
    array(
        'label' => 'Content:',
        'class' => 'soria',
        )
    )
);
$this->contents->addPlugins(array('|', 'createLink');
...