如何在Yii中集成newtinymce + elfinder扩展?

时间:2013-10-13 20:46:17

标签: tinymce yii-extensions elfinder

我想将elFinder与TinyMCE集成。更具体地说,让它在TinyMCE上的某个地方作为按钮使用(如内部insert picture对话框)。

到目前为止我做了什么:
1.在protected/extensions文件夹下有newtinymceelfinder个扩展名。 (作者说,整合这两个代码会更清晰)
2.如扩展页面所述,ElfinderControllerTinyMceController 3.在protected/config/main.php component内部:

    'widgetFactory'=>array(
        'widgets'=>array(
            'TinyMce'=>array(
                'language'=>'en',
                'settings'=>array(
                    'language' => 'en',
                    'theme' => "advanced",
                    'skin' => 'o2k7',
                    'plugins' => "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",

                    // Theme options
                    'theme_advanced_buttons1' => "removeformat,pagebreak,visualchars,visualaid,|,insertlayer,moveforward,movebackward,absolute,styleprops,attribs,|,undo,redo,search,replace,cleanup,print,preview,save,newdocument",
                    'theme_advanced_buttons2' => "pastetext,pasteword,|,hr,blockquote,|,bullist,numlist,outdent,indent,justifyleft,justifycenter,justifyright,justifyfull,ltr,rtl,formatselect",//copy,cut,paste,
                    'theme_advanced_buttons3' => "nonbreaking,sub,sup,charmap,|,bold,italic,underline,strikethrough,forecolor,backcolor,fontsizeselect,fontselect",
                    'theme_advanced_buttons4' => "tablecontrols,|,link,unlink,anchor,|,image,media",

                    'theme_advanced_toolbar_location' => "top",
                    'theme_advanced_toolbar_align' => "right",
                    'theme_advanced_statusbar_location' => "bottom",
                    'theme_advanced_resizing' => true,
                    'relative_urls' => false,
                    'spellchecker_languages' => null,

                    'fileManager'=>array(
                        'class' => 'ext.elFinder.TinyMceElFinder',
                        'connectorRoute'=>'elfinder/connector',

                    ),
                )
            )
        )
    ),  

4。在视图文件中:

    <?php
    $this->widget('ext.tinymce.TinyMce', array(
    'model' => $model,
    'attribute' => 'content',
    'compressorRoute' => 'tinyMce/compressor',
        'htmlOptions' => array(
        'rows' => 6,
        'cols' => 60,
    ),
    )); ?>  

这给了我没有elFinder窗口的TinyMCE编辑器作为某个地方的TinyMCE按钮(如内部insert picture对话框)。

当我在视图文件中添加以下内容时,它会直接在我放置代码的位置为我提供elFinder 区域

    <?php $this->widget('ext.elFinder.ServerFileInput', array(
      'model' => $model,
      'attribute' => 'content',
      'connectorRoute' => 'elfinder/connector',
      )
    );?>  

我想这意味着elFinder正在发挥作用。但我不希望它作为字段的单独小部件,而是我希望它是 TinyMCE的一部分,如顶部所述。

我还需要整合它们还需要什么?

1 个答案:

答案 0 :(得分:0)

这是一个配置问题。 fileManager属性不是settings的孩子,而是兄弟姐妹。 所以config/main.php部分应该是这样的:

'widgetFactory'=>array(
    'widgets'=>array(
        'TinyMce'=>array(
            'language'=>'en',
            'settings'=>array(...),
            'fileManager'=>array(
                'class' => 'ext.elFinder.TinyMceElFinder',
                'connectorRoute'=>'elfinder/connector',
            ),