找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2053|回复: 0

[分享] 为织梦dedecms不同页面中百度ueditor编辑器设置不同宽度

[复制链接]
发表于 2018-3-17 09:45:23 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
相信正在使用织梦dedecms作为网站管理程序的站长朋友对织梦自带的ckeditor编辑器一定感到非常纠心:其难看的外观,不太好用的添加视频功能,超级弱智的图片上传项,就连按个"tab"键都要跳出编辑框...这些无不让我们对其深恶痛绝(可能说得有点夸张)!
本人最近开了一个新站,最初因为这个ckeditor编辑器给编辑工作带来了诸多不便,所以最后痛下决心:改成百度ueditor。
为什么改成ueditor而不是别的编辑器呢?原因主要有三点:
一、ueditor界面相当美观,用起来舒服;
二、功能强悍,比如图片上传功能:它支持批量上传,图片搜索,还有非常不错的图片管理器;再比如视频添加功能:直接填写优酷土豆等视频网址即可,不用像ckeditor那样非常麻烦地去找".swf"的flash地址;
三、基于百度雄厚的实力,相信这个ueditor功能也会越来越强大。
是不是心动了?想体验ueditor的朋友可以去我的小创意网(www.smallcy.com)看看,相信会带给你不错的体验。
不过ueditor装上后也不是马上就能用的(至于怎么安装,大家可以在官方论坛上找),一般都会存在一些小问题。下面我就来谈谈其中一个非常重要的问题的解决方案。
安装完ueditor后,我们可以在ueditor的配置文件中对其界面宽度进行设置,但问题就出在这里,在这里设置的宽度是对全局而言,即所有网站内的编辑器宽度都一样。但对于我们dedecms用户而言,一般前台和后台编辑器宽度不一致,这样就会造成编辑器越界的问题。解决方案:将ueditor宽度设置放在编辑器调用阶段,具体做法如下:
1. /include/helpers/util.helper.php中增加以下代码:
  1. if ( ! function_exists('GetEditorD'))
  2. {
  3. function GetEditorD($fname, $fvalue, $nheight="350", $etype="Basic", $gtype="print", $isfullpage="FALSE",$bbcode=false)
  4. {
  5. if(!function_exists('SpGetEditorD'))
  6. {
  7. require_once(DEDEINC."/inc/inc_fun_funAdmin.php");
  8. }
  9. return SpGetEditorD($fname, $fvalue, $nheight, $etype, $gtype, $isfullpage, $bbcode);
  10. }
  11. }
  12. 2. /include/inc/inc_fun_funAdmin.php中增加以下代码:
  13. function SpGetEditorD($fname,$fvalue,$nheight="350",$etype="Basic",$gtype="print",$isfullpage="false",$bbcode=false)
  14. {
  15. global $cfg_ckeditor_initialized;
  16. if(!isset($GLOBALS['cfg_html_editor']))
  17. {
  18. $GLOBALS['cfg_html_editor']='fck';
  19. }
  20. if($gtype=="")
  21. {
  22. $gtype = "print";
  23. }
  24. if($GLOBALS['cfg_html_editor']=='fck')
  25. {
  26. require_once(DEDEINC.'/FCKeditor/fckeditor.php');
  27. $fck = new FCKeditor($fname);
  28. $fck->BasePath = $GLOBALS['cfg_cmspath'].'/include/FCKeditor/' ;
  29. $fck->Width = '100%' ;
  30. $fck->Height = $nheight ;
  31. $fck->ToolbarSet = $etype ;
  32. $fck->Config['FullPage'] = $isfullpage;
  33. if($GLOBALS['cfg_fck_xhtml']=='Y')
  34. {
  35. $fck->Config['EnableXHTML'] = 'true';
  36. $fck->Config['EnableSourceXHTML'] = 'true';
  37. }
  38. $fck->Value = $fvalue ;
  39. if($gtype=="print")
  40. {
  41. $fck->Create();
  42. }
  43. else
  44. {
  45. return $fck->CreateHtml();
  46. }
  47. }
  48. else if($GLOBALS['cfg_html_editor']=='ckeditor')
  49. {
  50. require_once(DEDEINC.'/ckeditor/ckeditor.php');
  51. $CKEditor = new CKEditor();
  52. $CKEditor->basePath = $GLOBALS['cfg_cmspath'].'/include/ckeditor/' ;
  53. $config = $events = array();
  54. $config['extraPlugins'] = 'dedepage,multipic,addon';
  55. if($bbcode)
  56. {
  57. $CKEditor->initialized = true;
  58. $config['extraPlugins'] .= ',bbcode';
  59. $config['fontSize_sizes'] = '30/30%;50/50%;100/100%;120/120%;150/150%;200/200%;300/300%';
  60. $config['disableObjectResizing'] = 'true';
  61. $config['smiley_path'] = $GLOBALS['cfg_cmspath'].'/images/smiley/';
  62. // 获取表情信息
  63. require_once(DEDEDATA.'/smiley.data.php');
  64. $jsscript = array();
  65. foreach($GLOBALS['cfg_smileys'] as $key=>$val)
  66. {
  67. $config['smiley_images'][] = $val[0];
  68. $config['smiley_descriptions'][] = $val[3];
  69. $jsscript[] = '"'.$val[3].'":"'.$key.'"';
  70. }
  71. $jsscript = implode(',', $jsscript);
  72. echo jsscript('CKEDITOR.config.ubb_smiley = {'.$jsscript.'}');
  73. }

  74. $GLOBALS['tools'] = empty($toolbar[$etype])? $GLOBALS['tools'] : $toolbar[$etype] ;
  75. $config['toolbar'] = $GLOBALS['tools'];
  76. $config['height'] = $nheight;
  77. $config['skin'] = 'kama';
  78. $CKEditor->returnOutput = TRUE;
  79. $code = $CKEditor->editor($fname, $fvalue, $config, $events);
  80. if($gtype=="print")
  81. {
  82. echo $code;
  83. }
  84. else
  85. {
  86. return $code;
  87. }
  88. }else if($GLOBALS['cfg_html_editor']=='ueditor')
  89. {
  90. $fvalue = $fvalue=='' ? '<p></p>' : $fvalue;
  91. $code = '<script type="text/javascript" charset="gbk" src="'.$GLOBALS['cfg_cmspath'].'/include/ueditor/editor_config.js"></script>
  92. <script type="text/javascript" charset="gbk" src="'.$GLOBALS['cfg_cmspath'].'/include/ueditor/editor_all_min.js"></script>
  93. <link rel="stylesheet" type="text/css" href="'.$GLOBALS['cfg_cmspath'].'/include/ueditor/themes/default/ueditor.css"/>
  94. <textarea name="'.$fname.'" id="'.$fname.'" style="width:100%;">'.$fvalue.'</textarea>
  95. <script type="text/javascript">
  96. var ue = new baidu.editor.ui.Editor({ initialFrameWidth:824 });ue.render("'.$fname.'"); //红色处为修改宽度
  97. </script>';
  98. if($gtype=="print")
  99. {
  100. echo $code;
  101. }
  102. else
  103. {
  104. return $code;
  105. }
  106. }

  107. else {
  108. /*
  109. // ------------------------------------------------------------------------
  110. // 当前版本,暂时取消dedehtml编辑器的支持
  111. // ------------------------------------------------------------------------
  112. require_once(DEDEINC.'/htmledit/dede_editor.php');
  113. $ded = new DedeEditor($fname);
  114. $ded->BasePath = $GLOBALS['cfg_cmspath'].'/include/htmledit/' ;
  115. $ded->Width = '100%' ;
  116. $ded->Height = $nheight ;
  117. $ded->ToolbarSet = strtolower($etype);
  118. $ded->Value = $fvalue ;
  119. if($gtype=="print")
  120. {
  121. $ded->Create();
  122. }
  123. else
  124. {
  125. return $ded->CreateHtml();
  126. }
  127. */
  128. }
  129. }
复制代码

3. 在编辑器调取页面将以下代码:
<?php GetEditor("body","",350,"Member"); ?>
改为:
  1. <?phpGetEditorD("body","",350,"Member"); ?>
复制代码

以上方案的思想是:在不同界面使用不同的编辑器调用函数。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-12-23 16:33 , Processed in 0.047031 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表