搜索
虾皮社区 首页 编程开发 Discuz二次开发 查看内容

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

2018-10-26 21:23| 发布者: happyxp| 查看: 4131| 评论: 2

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

效果图:

一、修改说明
修改目的:给日志及门户编辑器添加代码插入功能并实现代码高亮
对应版本: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. :






复制代码

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

  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(/\
  10. if (sCode!=null){
  11. setCaret();
  12. format("insertHTML", '

    [代码]'+sLan+'代码:

    '+sCode+'

    ');
  13. }
  14. fHide($('createCode'));
  15. $('Sourcecode').value = ''; //设置初始值
  16. } else {
  17. if(gIsIE){
  18. var e = window.event;
  19. }
  20. getCaret();
  21. var dvCodeBox = $("createCode");
  22. var iX = e.clientX;
  23. var iY = e.clientY;
  24. dvImgBox.style.display = "";
  25. dvImgBox.style.left = (iX-300) + "px";
  26. dvImgBox.style.top = 33 + "px";
  27. }
  28. }
复制代码

然后查找

  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代码高亮解析文件)至网站根目录,最后不要忘了到后台—》全局—》其他—》其他头部信息添加下面这段代码

[代码]js代码:




 

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

syntaxhighlighter代码高亮解析文件.zip


路过

雷人

握手

鲜花

鸡蛋
本站文章如无特殊说明均为 虾皮社区 原创,可无偿使用和传播,欢迎转载分享!
转载请注明本文地址:
如有文章侵犯了您的权利,请联系本站站长,我们将在第一时间删除相关内容,谢谢!
热门文章
discuz开启板块图片列表模式,显示不了图片解决方法
discuz开启板块图片列表模式,显示不了图片解决方法
在discuz中如果你的图片板块一直没开启图片列表模式,突然开启的话默认缩略图是不显示的,这种情况下需要手动更新一下即可。后台打开工具,更新缓存,找到重建主题封面。填上板块ID,就是直接打开相关板块
discuz提示:对不起,您安装的不是正版应用,安装程序无法继续执行
discuz提示:对不起,您安装的不是正版应用,安装程序无
这个是因为这个模板、插件是正版的,而discuz 社区在更新到2.0以上后,增加了对插件的版本检测,那名我们有没有办法解决呢?答案是很简单的。 在网站的根目录下找到/source/function/function_cloudaddons
Discuz开通QQ互联绑定QQ显示!connect_config_bindinfo!
Discuz开通QQ互联绑定QQ显示!connect_config_bindinfo
Discuz开通QQ互联绑定QQ显示!connect_config_bindinfo!,今天碰到这个问题,搜了一圈没发现,估计不是什么大问题。然后更新了下缓存,就解决了。碰到类似问题,新装插件之类的,如果不好用,可以尝试更新
Discuz论坛如何设置添加板块内主题分类
Discuz论坛如何设置添加板块内主题分类
Discuz论坛中经常看到别人的论坛板块内还有类似标签的主题分类,这个怎么设置呢? 进入后台点击论坛,找到你想更改的板块依次点编辑——其他——主题分类。 启用主题分类:是,其他的设置按照需要。 在主
Discuz打开页面缓慢Waiting(TTFB)加载要5s以上很久的原因
Discuz打开页面缓慢Waiting(TTFB)加载要5s以上很久
今天刚建了个论坛,打开发现速度非常慢很卡。查看network发现Waiting(TTFB)加载要5s多,另一个要10s多怪不得这么慢,解决方案如下:解决方法:1、网站根目录——config——打开 config_global 和 config
discuz门户文章增加插入代码,语法代码高亮
discuz门户文章增加插入代码,语法代码高亮
论坛基本已经日薄西山了,很多地区对论坛类管理相当严格,所以很多站长将论坛转向门户方向了。 最近更新了discuzX 3.4,发现以前加的插入代码功能没有了,网上找了下重新加入了。可能是时间过得太久了,这
Discuz应用中心安装插件提示“数据下载错误(105)”的解决办法
Discuz应用中心安装插件提示“数据下载错误(105)”
近期很多用户在应用中心安装应用,提示105错误,大部分是阿里云的服务器,PHP 5.3.28、PHP5.3.29等。通过常规的方法排查后,仍然不能解决问题,官方给出的说明是PHP问题,升级PHP即可,经过测试,确实是PH
Discuz x3日志门户编辑器增加插入代码功能且代码高亮
Discuz x3日志门户编辑器增加插入代码功能且代码高亮
由于小编发布的文章经常需要插入代码,而discuz的日志及门户编辑器都没有代码插入功能,于是决心修改一下discuz的日志及门户编辑器在百度也有类似的解决办法,但是只适合老版本的 x1.5 x2.0 Jimmy按照最新
discuz X3门户文章页增加版权声明
discuz X3门户文章页增加版权声明
discuz X3以上版本,目前应该是到了discuz X3.4都可以使用。为了防止别人采集和粘贴网站的文章,也为了尊重作者的权益,当然,最重要的我个人觉得是可以给网站增加外链。两种修改方法,如下:一、直接修改
Discuz关于去除等待discuz.gtimg.cn的响应加载
Discuz关于去除等待discuz.gtimg.cn的响应加载
最近各位站长是不是发现自己DZ站点打开左下角会显示正在加载一个域名等待discuz.gtimg.cn的响应,不清楚是干吗用的,找到网址对应的js文件也打不开一查文件发现是漫游插件和漫游API接口里面的东西,管他的
发表评论

最新评论

查看全部评论(2)

虾皮社区,成立十年了!

站长自己也搞不懂想做个什么,反正就是一直在努力的做!

Copyright © 2007-2024 xp6.org Powered by Discuz

QQ|Archiver|手机版|小黑屋|虾皮社区 |网站地图
返回顶部