去除Dede編輯器粘貼/回車都自動(dòng)加DIV的方法
時(shí)間: 2018-12-01 10:11
閱讀: 次
作者:素材無憂網(wǎng)
DEDE5.6版及后續(xù)版本內(nèi)置的可視化編輯器變成了只有ckeditor 使用中發(fā)現(xiàn)一個(gè)問題不管是黏貼文本進(jìn)來,還是手工輸入,然后回車,都會(huì)被自動(dòng)加<DIV>標(biāo)簽,如果遇到長文章,自動(dòng)分頁,可能會(huì)出現(xiàn)<DIV></DIV>標(biāo)簽被截?cái)嗟默F(xiàn)象,造成文章后面的模板全部錯(cuò)亂。因此需要將自動(dòng)添加的<DIV>標(biāo)簽去除。
打開/dede/inc/inc_archives_functions.php
大概在這個(gè)文件的第633行找到下面的代碼:
function AnalyseHtmlBody($body,&$description,&$litpic,&$keywords,$dtype='')
{
在下面加入如下代碼:
$body = str_replace("div","p",$body);
echo $str."\n";
但是以上代碼僅限于普通的網(wǎng)站,也就是不會(huì)在發(fā)布的文章中有文本的<DIV>字符的,如果是站長源碼類網(wǎng)站,或者技術(shù)類網(wǎng)站,因?yàn)榻?jīng)常會(huì)在文章中出現(xiàn)<DIV>的字眼,這些字同樣會(huì)在發(fā)布的時(shí)候被自動(dòng)替換掉,這樣就使發(fā)布的文章跟原文不一樣的。因此笨牛網(wǎng)在嘗試了以上方法后發(fā)現(xiàn)不適合笨牛網(wǎng)(BNXB.COM)使用,繼續(xù)查閱文章,發(fā)現(xiàn)可以從CKEDITOR的配置文件著手
/include/ckeditor/config.js
在
/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config )
{
// Define changes to default configuration here. For example:
// config.language = 'fr';
config.uiColor = '#F1F5F2';
// 文件瀏覽
config.filebrowserImageBrowseUrl = "../include/dialog/select_images.php";
config.filebrowserFlashBrowseUrl = "../include/dialog/select_media.php";
config.filebrowserImageUploadUrl = "../include/dialog/select_images_post.php";
下方添加
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_P;
config.enterMode = CKEDITOR.ENTER_BR;這句在的意思就是將ENTER換行的換行符改成<BR>
config.shiftEnterMode = CKEDITOR.ENTER_P; 這句的意思就是將SHIFT+ENTER換行的換行符改成<P>
所以如果想ENTER改成<P>那可以使用config.enterMode = CKEDITOR.ENTER_P;
改完后文件如下
/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.editorConfig = function( config )
{
// Define changes to default configuration here. For example:
// config.language = 'fr';
config.uiColor = '#F1F5F2';
// 文件瀏覽
config.filebrowserImageBrowseUrl = "../include/dialog/select_images.php";
config.filebrowserFlashBrowseUrl = "../include/dialog/select_media.php";
config.filebrowserImageUploadUrl = "../include/dialog/select_images_post.php";
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_P;
config.autoParagraph = false;
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_P;
};
這樣在手工錄入的時(shí)候就可以按回車換行,換行符是<BR>而不是之前的<DIV>了。
不過到這里還不是完全符合我們的要求,我們從外部TXT文件黏貼內(nèi)容進(jìn)來,任然會(huì)被自動(dòng)套一層<DIV></DIV>
以下繼續(xù)改進(jìn)
打開/include/ckeditor/ckeditor.js
然后查找 'p':'div' 改成'div':'p'
完成
標(biāo)簽: