1. 程式人生 > >dedecms自定義模型內容呼叫多個Ueditor

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

以上幾個檔案,及其他的檔案的<head>裡面,這樣每次不管是新增還是編輯文章模型或者其他的自定義模型都不會出現問題了。需要注意的是,上面3行程式碼請全部換成純靜態地址,以免程式碼無效。