在织梦dedecms中,百度ueditor编辑器的宽度设置通常会影响到网站的前台和后台的编辑体验,默认情况下,ueditor的宽度是全局统一的,这可能会导致前台和后台编辑器宽度不一致的问题,为了解决这一问题,可以通过修改代码来实现不同页面使用不同的编辑器宽度配置。
实现步骤
1、复制并重命名配置文件:
找到并复制/include/ueditor/editor_config.js
文件,然后将其重命名为/include/ueditor/editor_config1.js
。
这一步的目的是创建一个新的配置文件,以便为不同的页面应用不同的配置。
2、修改util.helper.php:
在/include/helpers/util.helper.php
文件中增加以下代码:
if ( ! function_exists('GetEditorD')) { function GetEditorD($fname, $fvalue, $nheight="350", $etype="Basic", $gtype="print", $isfullpage="FALSE",$bbcode=false) { if(!function_exists('SpGetEditorD')) { require_once(DEDEINC."/inc/inc_fun_funAdmin.php"); } return SpGetEditorD($fname, $fvalue, $nheight, $etype, $gtype, $isfullpage, $bbcode); } }
这段代码定义了一个新函数GetEditorD
,用于获取编辑器的配置。
3、修改inc_fun_funAdmin.php:
在/include/inc/inc_fun_funAdmin.php
文件中增加或修改以下代码:
function SpGetEditorD($fname,$fvalue,$nheight="350",$etype="Basic",$gtype="print",$isfullpage="false",$bbcode=false) { global $cfg_ckeditor_initialized; if(!isset($GLOBALS['cfg_html_editor'])) { $GLOBALS['cfg_html_editor']='fck'; } if($gtype=="") { $gtype = "print"; } if($GLOBALS['cfg_html_editor']=='fck') { require_once(DEDEINC.'/FCKeditor/fckeditor.php'); $fck = new FCKeditor($fname); $fck>BasePath = $GLOBALS['cfg_cmspath'].'/include/FCKeditor/' ; $fck>Width = '100%' ; $fck>Height = $nheight ; $fck>ToolbarSet = $etype ; $fck>Config['FullPage'] = $isfullpage; if($GLOBALS['cfg_fck_xhtml']=='Y') { $fck>Config['EnableXHTML'] = 'true'; $fck>Config['EnableSourceXHTML'] = 'true'; } $fck>Value = $fvalue ; if($gtype=="print") { $fck>Create(); } else { return $fck>CreateHtml(); } } else if($GLOBALS['cfg_html_editor']=='ckeditor') { require_once(DEDEINC.'/ckeditor/ckeditor.php'); $CKEditor = new CKEditor(); $CKEditor>basePath = $GLOBALS['cfg_cmspath'].'/include/ckeditor/' ; $config = $events = array(); $config['extraPlugins'] = 'dedepage,multipic,addon'; if($bbcode) { $CKEditor>initialized = true; $config['extraPlugins'] .= ',bbcode'; $config['fontSize_sizes'] = '30/30%;50/50%;100/100%;120/120%;150/150%;200/200%;300/300%'; $config['disableObjectResizing'] = 'true'; $config['smiley_path'] = $GLOBALS['cfg_cmspath'].'/images/smiley/'; // 获取表情信息 require_once(DEDEDATA.'/smiley.data.php'); $jsscript = array(); foreach($GLOBALS['cfg_smileys'] as $key=>$val) { $config['smiley_images'][] = $val[0]; $config['smiley_descriptions'][] = $val[3]; $jsscript[] = '"'.$val[3].'":"'.$key.'"'; } $jsscript = implode(',', $jsscript); echo jsscript('CKEDITOR.config.ubb_smiley = {'.$jsscript.'}'); } $GLOBALS['tools'] = empty($toolbar[$etype])? $GLOBALS['tools'] : $toolbar[$etype] ; $config['toolbar'] = $GLOBALS['tools']; $config['height'] = $nheight; $config['skin'] = 'kama'; $CKEditor>returnOutput = TRUE; $code = $CKEditor>editor($fname, $fvalue, $config, $events); if($gtype=="print") { echo $code; } else { return $code; } } else if($GLOBALS['cfg_html_editor']=='ueditor') { $fvalue = $fvalue=='' ? '<p></p>' : $fvalue; $code = '<script type="text/javascript" charset="gbk" src="'.$GLOBALS['cfg_cmspath'].'/include/ueditor/editor_config.js"></script> <script type="text/javascript" charset="gbk" src="'.$GLOBALS['cfg_cmspath'].'/include/ueditor/editor_all_min.js"></script> <link rel="stylesheet" type="text/css" href="'.$GLOBALS['cfg_cmspath'].'/include/ueditor/themes/default/css/ueditor.css"/>'; echo $code; } }
这段代码主要是根据不同的编辑器类型(如fckeditor、ckeditor和ueditor)来加载相应的配置,并允许设置编辑器的宽度。
注意事项
在修改配置文件之前,建议先备份原始文件,以防万一出现问题可以恢复。
确保你的网站已经安装了百度ueditor编辑器,并且能够正常工作。
根据你的具体需求,你可能需要调整编辑器的其他配置,如高度、工具栏类型等。
FAQs
1、如何在dedecms中为不同的页面设置不同的ueditor编辑器宽度?
你可以通过上述步骤,在util.helper.php
和inc_fun_funAdmin.php
文件中添加或修改代码,以实现在不同页面中使用不同的编辑器宽度配置,你可以在调用编辑器的时候指定不同的$nheight
参数值,这个参数决定了编辑器的宽度。
2、如果我想为后台编辑器保留所有功能,而为前台编辑器取消附件上传和图片在线管理功能,应该如何操作?
你可以通过修改editor_config1.js
文件来实现这一点,在这个文件中,你可以为前台编辑器配置取消附件上传和图片在线管理功能,而后台编辑器则保持全功能配置不变,这样,你就可以根据页面的不同需求来定制编辑器的功能了。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1234361.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复