dedecms自定义模型内容调用多个Ueditor

Posted 王二麻子技术交流园地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dedecms自定义模型内容调用多个Ueditor相关的知识,希望对你有一定的参考价值。

关于dedecms后台如何整合百度编辑器(ueditor)网上有很多了,本站就不再赘述了,主要问题是,涉及到如果有内容模型的修改,则按照网络上介绍的方法会发现有BUG。当修改过默认的文章模型或者其他模型,有添加自定义字段,字段类型是HTML格式或者文本保存HTML格式,当你发布或者编辑内容的时候,发现要么是只有一个编辑器出来,要么是一旦保存完内容再次打开编辑的时候,百度编辑器的内容都是一样的了。主要原因在于/include/inc/inc_fun_funAdmin.php 文件内实例化编辑器的时候出现JS和CSS引用重复的问题:

 

else if($GLOBALS[\'cfg_html_editor\']==\'ueditor1.4.3\')
    {
        $fvalue = $fvalue==\'\' ? \'<p></p>\' : $fvalue;
        $code = \'<script type="text/javascript" charset="utf-8" src="\'.$GLOBALS[\'cfg_cmspath\'].\'/include/ueditor1.4.3/ueditor.config.js"></script>\';
     $code .= \'<script type="text/javascript" charset="utf-8" src="\'.$GLOBALS[\'cfg_cmspath\'].\'/include/ueditor1.4.3/ueditor.all.min.js"></script>\';
        $code .= \'<link rel="stylesheet" type="text/css" href="\'.$GLOBALS[\'cfg_cmspath\'].\'/include/ueditor1.4.3/themes/default/css/ueditor.css"/>\';
        //$code .= \'<textarea name="\'.$fname.\'" id="\'.$fname.\'" style="width:100%;">\'.$fvalue.\'</textarea>\';
        $code .= \'<script type="text/plain" name="\'.$fname.\'" id="\'.$fname.\'">\'.$fvalue.\'</script>\';
        if( !empty($toolbar[$etype]))
        {
            $code .= \'<script type="text/javascript">UE.getEditor("\'.$fname.\'",{toolbars:[["Source","|",
        "bold", "italic", "underline","|","fontsize","forecolor","emotion","Undo", "Redo"]],initialFrameHeight:100});</script>\';
        }
        else
        {
            $code .= \'<script type="text/javascript">UE.getEditor("\'.$fname.\'",{initialFrameHeight:450});</script>\';
        }        
                                                                                                  
        if($gtype=="print")
        {
            echo $code;
        }
        else
        {
            return $code;
        }
    }

 

注意上面2个JS和CSS文件,当有ueditor实例化的时候他们就被引用一次,因此后一次的总会覆盖前面一次的。解决方法很简单,将上面3行代码从此处移走

 

<script type="text/javascript" charset="utf-8" src="\'.$GLOBALS[\'cfg_cmspath\'].\'/include/ueditor1.4.3/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="\'.$GLOBALS[\'cfg_cmspath\'].\'/include/ueditor1.4.3/ueditor.all.min.js"></script>
<link rel="stylesheet" type="text/css" href="\'.$GLOBALS[\'cfg_cmspath\'].\'/include/ueditor1.4.3/themes/default/css/ueditor.css"/>

 放到/dede/templates/

article_add.htm
article_edit.htm
archives_add.htm
archives_edit.htm
catalog_add.htm
catalog_edit.htm

以上几个文件,及其他的文件的<head>里面,这样每次不管是添加还是编辑文章模型或者其他的自定义模型都不会出现问题了。需要注意的是,上面3行代码请全部换成纯静态地址,以免代码无效。

以上是关于dedecms自定义模型内容调用多个Ueditor的主要内容,如果未能解决你的问题,请参考以下文章

dedecms自定义模型之独立模型在首页列表页内容调用内容

dedecms搜索模板,使用{dede:list}标签调用自定义字段不显示(空白)

使用dedecms中常见错误提示及解决办法

dedecms织梦添加ueditor百度编辑器(支持本地图片水印)

织梦新增的字段怎么调用不出来

DedeCMS搜索结果页面调用自定义字段的方法