discuz门户文章增加代码高亮

简介: discuz门户文章增加代码高亮

一些有技术类的门户站文章详情页,会有代码高亮的需求,这样便于用户体验,discuz论坛帖子部分有这类插件,目前门户文章还没有没有对应的插件只能自行开发,修改系统内文件

对应dz版本:discuz X系列
支持语言:C#、CSS、C++、Delphi、Java、JavaScript、PHP、Python、Ruby、SQL、Visual Basic、XML / HTML等

前台文章详情展示

前台发布文章页展示

解决思路:

第一步:修改\source\module\home\home_editor.php文件

搜索

a.icoSwitchMdi{background-position:-239px -60px;float:right}

在其下插入

a.icoCode {background-position:-120px -20px}

继续搜索

<a href="javascript:;" class="icoSwf" id="icoSwf" οnclick="createFlash(event, 1);return false;" title="<?php echo lang('home/editor', 'editor_link_flash');?>"></a>

在其下插入:

<a href="javascript:;" class="icoCode" id="icoCode" οnclick="createCode(event,1);return false;" title="<?php echo lang('home/editor', 'editor_code');?>"></a>

还是继续查找

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

其上插入

<div id="createCode" class="eMenu" style="display:none;top:35px;left:26px;width:400px;font-size:12px">
<!--?php echo lang('home/editor', 'editor_code_tip');?-->:
<select name="codeLanguage" id="codeLanguage"> 
<option value="php">PHP</option> 
<option value="py">Python</option> 
<option value="sql">SQL</option> 
<option value="vb">Visual Basic</option> 
<option value="xml">Html/XML</option> 
<option value="as3">ActionScript3</option> 
<option value="bash">Bash/shell</option> 
<option value="csharp">C#</option> 
<option value="css">CSS</option> 
<option value="js">JavaScript</option> 
<option value="java">Java</option> 
<option value="perl">Perl</option> 
</select><br>
<textarea type="text" id="Sourcecode" name="Sourcecode" value=" " style="width:400px;height:200;"></textarea><br>
<input οnclick="createCode();" name="createURL" value="<?php echo lang('home/editor', 'editor_ok');?>" class="submit" type="button">
<a href="javascript:;" οnclick="fHide($('createCode'));return false;"><!--?php echo lang('home/editor', 'editor_cancel');?--></a>
</div>

本文件最后一个位置搜索

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

在其下插入:

pre {
font-size:9pt;
font-family:Courier New,Arial;
border:1px solid #ddd;
border-left:5px solid #6CE26C;
background:#f6f6f6;
padding:5px;
}

第二步:修改\source\language\home\lang_editor.php文件(目的是添加所需语言)

搜索

'editor_prompt_mp3' => 'mp3 音乐',

在其下插入:

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

第三步:修改\static\image\editor\editor_base.js文件

在文件的底部插入

/**
*创建代码高亮及着色方法
*Time 2012.3.5 侠客
*/
function createCode(e, show) {
if(typeof show == 'undefined') {
var sCode = $('Sourcecode').value;
var sLan = $('codeLanguage').value;
sCode = sCode.replace(/\</g,"<");
if (sCode!=null){
setCaret();
format("insertHTML", '<div><h3>[代码]'+sLan+'代码:</h3><pre class="brush:'+sLan+';auto-links:false;">'+sCode+'</pre></div> <br/>');
}
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";
}
}

搜索

if(fInObj(el, "createUrl") || fInObj(el, "createImg") || fInObj(el, "createSwf") || fInObj(el, "createPage")){

将其修改为

if(fInObj(el, "createUrl") || fInObj(el, "createImg") || fInObj(el, "createSwf") || fInObj(el, "createPage")|| fInObj(el, "createCode")){

继续搜索

icoPage:"createPage"

将其就改为

icoPage:"createPage",
icoCode:"createCode"

接着继续搜索

var arr = ["fontface", "fontsize", "dvForeColor", "dvPortrait", "divAlign", "divList" ,"divInOut", "editFaceBox", "createUrl", "createImg", "createSwf", "createPage"];

将其修改为

var arr = ["fontface", "fontsize", "dvForeColor", "dvPortrait", "divAlign", "divList" ,"divInOut", "editFaceBox", "createUrl", "createImg", "createSwf", "createPage","creatCode"];

第四步:修改/template/当前使用模板文件夹/common/header.php文件

搜索

</head>

在其上方插入

<style>
    pre {
        font-size:9pt;
        font-family:Courier New,Arial;
        border:1px solid #ddd;
        border-left:5px solid #15A3F4;
        background:#f6f6f6;
        padding:5px;
        overflow: auto;
    }
</style>

修改文件部分已结束


本文有参照http://www.dtyuanma.com/article-21-1.html也修改了其部分内容

目录
相关文章
|
弹性计算 JSON 数据可视化
Grafana 10 新特性解读,体验与协作全面提升
Grafana 10 新特性解读:体验与协作全面提升
32322 102
|
存储 负载均衡 NoSQL
|
缓存 网络协议 Linux
计算机网络——Wireshark软件使用与协议分析(ARP协议、IP与ICMP分析)
Wireshark软件使用与协议分析 ARP协议分析 使用 Wireshark 抓取局域网的数据包并进行分析: 1. 学习 Wireshark 基本操作:重点掌握捕获过滤器和显示过滤器。 2. 观察 MAC 地址:了解 MAC 地址的组成,辨识 MAC 地址类型。 3. 分析以太网帧结构:观察以太网帧的首部和尾部,了解数据封装成帧的原理。 4. 分析 ARP 协议:抓取 ARP 请求和应答报文,分析其工作过程。 IP与ICMP分析 启动 Wireshark,捕捉网络命令执行过程中本机接受和发送的数据报。
2447 0
计算机网络——Wireshark软件使用与协议分析(ARP协议、IP与ICMP分析)
|
10月前
|
自然语言处理 IDE Linux
就3步,用通义灵码写一个数字华容道小游戏
Hey,小伙伴!你是不是总是下定了学习编程的决心,但又因为枯燥、困难打起了退堂鼓?今天让我们跟着通义灵码边玩边练,只需要简单的几句话,就可以打造一款经典的数字华容道小游戏,即使没有代码基础也能快速上手,也许在这个过程中,你不经意间就掌握了一些编程知识。让我们开始吧!
1290 41
|
11月前
|
缓存 数据库 数据安全/隐私保护
Discuz! X 数据库字典详解:DZ各数据表作用及字段含义
我们使用DISCUZ做网站时,有时需要对数据表进行操作,在操作数据表之前,需要对数据表进行了解。下面是DISCUZ 数据库各数据表作用及字段含义详解,方便新手更好的了解DISCUZ数据库。
201 4
|
安全 网络安全 数据安全/隐私保护
阿里云服务器不能发邮件禁用25端口的三种解决方法
阿里云服务器不能发邮件禁用25端口的三种解决方法
1525 0
|
11月前
|
数据采集 机器学习/深度学习
港大发布智能交通大模型全家桶OpenCity!打破时空零样本预测壁垒,训练速度最多提升50倍
【10月更文挑战第15天】香港大学近日发布了智能交通大模型OpenCity,旨在通过创新技术手段解决城市交通预测和管理难题。OpenCity结合了Transformer和图神经网络(GNN)的优势,能够有效捕捉复杂时空依赖关系,实现零样本预测。该模型采用大规模异构交通数据集预训练,显著提升了泛化能力和训练速度,实验结果显示其在未见过的城市或区域的交通预测中表现出色。然而,模型的计算资源需求和数据质量仍需进一步优化。
176 1
|
Web App开发 前端开发 UED
移动端适配布局指南:打造完美用户体验的秘密武器
【8月更文挑战第26天】在Web前端开发中,选择合适的移动端适配方案对确保跨设备的良好显示与用户体验至关重要。常用方案包括:媒体查询实现响应式布局;百分比、flexbox与CSS Grid布局提供更灵活的设计;结合viewport元标签和rem单位实现等比缩放;利用第三方库如Bootstrap加速开发。实践中应综合运用这些技术,并通过广泛测试保证兼容性和效果。
386 4
|
安全 搜索推荐 测试技术
【实测】用chatGPT来完整的走一次测试流程吧,看看它到底相当于我们什么等级的工程师?
【实测】用chatGPT来完整的走一次测试流程吧,看看它到底相当于我们什么等级的工程师?
|
机器学习/深度学习 传感器 算法
【MOSMA】基于粘菌算法求解多目标优化问题附matlab代码
【MOSMA】基于粘菌算法求解多目标优化问题附matlab代码