立即注册 找回密码

QQ登录

只需一步,快速开始

查看: 4734|回复: 0

[Discuz 通用教程] Discuz x3日志门户编辑器增加插入代码功能且代码高亮

[复制链接]

114

主题

10

回帖

1564

积分

超级版主

Rank: 8Rank: 8

积分
1564

最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

发表于 2017-11-29 19:05:36 | 显示全部楼层 |阅读模式
道勤网-数据www.daoqin.net

亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net

您需要 登录 才可以下载或查看,没有账号?立即注册

x
由于Jimmy发布的文章经常需要插入代码,而discuz的日志及门户编辑器都没有代码插入功能,于是决心修改一下discuz的日志及门户编辑器在百度也有类似的解决办法,但是只适合老版本的 x1.5 x2.0 Jimmy按照最新discuz官方的程序修改。
修改效果展示图,具体演示可参见本站
门户编辑器插入代码

Discuz x3日志门户编辑器增加插入代码功能且代码高亮

Discuz x3日志门户编辑器增加插入代码功能且代码高亮

效果图:

Discuz x3日志门户编辑器增加插入代码功能且代码高亮

Discuz x3日志门户编辑器增加插入代码功能且代码高亮

一、修改说明
修改目的:给日志及门户编辑器添加代码插入功能并实现代码高亮
对应版本:Discuz X系列根据以下修改说明自行修改
支持当前流行的各种编程语言:C#、CSS、C++、Delphi、Java、JavaScript、PHP、Python、Ruby、SQL、Visual Basic、XML / html
简介: Discuz X日志及门户编辑器整合syntaxhighlighter实现代码高亮,给Discuz X日志及门户编辑器添加代码插入功能,方便文章插入代码
二、所需修改文件:

根目录\source\module\home\home_editor.php
根目录\source\language\home\lang_editor.php
根目录\static\image\editor\editor_base.js
三、修改步骤:
1、修改\source\module\home\home_editor.php文件

查找:

  1. a.icoSwitchMdi{background-position:-671px 0px;width:23px}
复制代码

在其下插入:

  1. a.icoCode {background-position:-120px -20px}
复制代码

然后再查找

  1. <a href="javascript:;" class="icoSwf" id="icoSwf" onclick="createFlash(event, 1);return false;" title="<?php echo lang('home/editor', 'editor_link_flash');?>"></a>
复制代码

在其下插入:

  1. <a href="javascript:;" class="icoCode" id="icoCode" onclick="createCode(event,1);return false;" title="<?php echo lang('home/editor', 'editor_code');?>"></a>
复制代码

接着还是继续查找

  1. <div id="createPage" class="eMenu" style="display:none;top:35px;left:26px;width:300px;font-size:12px"></div>
复制代码

其上插入

  1. <div id="createCode" class="eMenu" style="display:none;top:35px;left:26px;width:400px;font-size:12px">
  2. <!--?php echo lang('home/editor', 'editor_code_tip');?-->:
  3. <select name="codeLanguage" id="codeLanguage">
  4. <option value="php">PHP</option>
  5. <option value="py">Python</option>
  6. <option value="sql">SQL</option>
  7. <option value="vb">Visual Basic</option>
  8. <option value="xml">Html/XML</option>
  9. <option value="as3">ActionScript3</option>
  10. <option value="bash">Bash/shell</option>
  11. <option value="csharp">C#</option>
  12. <option value="css">CSS</option>
  13. <option value="js">JavaScript</option>
  14. <option value="java">Java</option>
  15. <option value="perl">Perl</option>
  16. </select><br>
  17. <textarea type="text" id="Sourcecode" name="Sourcecode" value=" " style="width:400px;height:200;"></textarea><br>
  18. <input type="button" onclick="createCode();" name="createURL" value="<?php echo lang('home/editor', 'editor_ok');?>" class="submit">
  19. <a href="javascript:;" onclick="fHide($('createCode'));return false;"><!--?php echo lang('home/editor', 'editor_cancel');?--></a>
  20. </div>
复制代码

接着为了实现代码预览效果,我们还需在文件最下面找到

  1. body { margin: 0; padding: 0; word-wrap: break-word; font-size:14px; line-height:1.8em; font-family: Tahoma, Arial, Helvetica, snas-serif; }
复制代码

在下面加入这段定义pre标签的CSS代码

  1. pre {
  2. font-size:9pt;
  3. font-family:Courier New,Arial;
  4. border:1px solid #ddd;
  5. border-left:5px solid #6CE26C;
  6. background:#f6f6f6;
  7. padding:5px;
  8. }
复制代码
不然你是看不到“预览”效果的。


2、修改\source\language\home\lang_editor.php文件(目的是添加所需语言)
查找

  1. 'editor_prompt_mp3' => 'mp3 音乐',
复制代码

在其下加上

  1. 'editor_code_tip' => '请选择代码语言以便于着色',
  2. 'editor_code' => '插入代码',
复制代码

3、修改\static\image\editor\editor_base.js文件
用编辑器打开该文件,在文件末尾加上

  1. /**
  2. *创建代码高亮及着色方法
  3. *Time 2013.10.16 Jimmy
  4. */
  5. function createCode(e, show) {
  6. if(typeof show == 'undefined') {
  7. var sCode = $('Sourcecode').value;
  8. var sLan = $('codeLanguage').value;
  9. sCode = sCode.replace(/\<h3>[代码]'+sLan+'代码:</h3><pre class="brush:'+sLan+';auto-links:false;">'+sCode+'</pre>
复制代码
'); } fHide($('createCode')); $('Sourcecode').value = ''; //设置初始值 } else { if(gIsIE){ var e = window.event; } getCaret(); var dvCodeBox = $("createCode"); var iX = e.clientX; var iY = e.clientY; dvImgBox.style.display = ""; dvImgBox.style.left = (iX-300) + "px"; dvImgBox.style.top = 33 + "px"; } }

然后查找


  1. if(fInObj(el, "createUrl") || fInObj(el, "createImg") || fInObj(el, "createSwf") || fInObj(el, "createPage")){
复制代码

将这段代码改成

  1. if(fInObj(el, "createUrl") || fInObj(el, "createImg") || fInObj(el, "createSwf") || fInObj(el, "createPage")|| fInObj(el, "createCode")){
复制代码

即在上面的代码中加上|| fInObj(el, "createCode")

接着继续查找

  1. icoPage:"createPage"
复制代码

将其改成

  1. icoPage:"createPage",
  2. icoCode:"createCode"
复制代码

这段代码

以上还没完,,还有一段重要代码(关于编辑器菜单的)
查找

  1. var arr = ["fontface", "fontsize", "dvForeColor", "dvPortrait", "divAlign", "divList" ,"divInOut", "editFaceBox", "createUrl", "createImg", "createSwf", "createPage"];
复制代码

将其改为

  1. var arr = ["fontface", "fontsize", "dvForeColor", "dvPortrait", "divAlign", "divList" ,"divInOut", "editFaceBox", "createUrl", "createImg", "createSwf", "createPage","creatCode"];
复制代码

至此文件修改工作就结束了.

4、上传并替换文件
上传以上修改文件至对应目录,并上传下面的附件包文件(syntaxhighlighter代码高亮解析文件)至网站根目录,最后不要忘了到后台—》全局—》其他—》其他头部信息添加下面这段代码

  1. <script src="static/js/code/scripts/brush.js" type="text/javascript"></script>
  2. <link type="text/css" rel="stylesheet" href="static/js/code/styles/shCore.css">
  3. <link type="text/css" rel="stylesheet" href="static/js/code/styles/shThemeDefault.css">
  4. <script type="text/javascript">
  5. SyntaxHighlighter.config.clipboardSwf = 'static/js/code//scripts/clipboard.swf';
  6. SyntaxHighlighter.all();
  7. </script>
复制代码

否则是不会有代码高亮效果的注意你文件保存的目录。
以下是syntaxhighlighter代码高亮解析文件



道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题! 如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服! 如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

道勤网- 推荐内容!上一条 /2 下一条

!jz_fbzt! !jz_sgzt! !jz_xgzt! 快速回复 !jz_fhlb! !jz_lxwm! !jz_gfqqq!

关于我们|手机版|小黑屋|地图|【道勤网】-www.daoqin.net 软件视频自学教程|免费教程|自学电脑|3D教程|平面教程|影视动画教程|办公教程|机械设计教程|网站设计教程【道勤网】 ( 皖ICP备15000319号-1 )

GMT+8, 2024-11-25 17:07

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

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