作者:phpwind lyn
做任何修改之前请注意备份!
可以下载懒人包直接上传到论坛目录:
网盘下载懒人包
具体修改步骤:
步骤一:
将懒人包里的 code 文档上传到论坛根目录,这里面放着代码高亮用的文件。
步骤二:
打开 template/wind(这是默认风格,如果使用其它的风格,则相应修改)找到,header.htm,然后在文件中找到:
[Plain Text] 纯文本查看 复制代码 <link rel='archives' title="$db_bbsname" href="simple/" />
并在底下添加:
[Plain Text] 纯文本查看 复制代码 <link type="text/css" rel="stylesheet" href="code/shCoreDefault.css"/>
步骤三:
打开 template/wind(或你使用的风格)/read.htm,找到:
[Plain Text] 纯文本查看 复制代码 <!-- //end reply管理弹出 -->
下面添加(以下支持PHP代码、C语言、CSS代码3种):
[JavaScript] 纯文本查看 复制代码 <script type="text/javascript" src="code/shCore.js"></script>
<script type="text/javascript" src="code/shBrushPhp.js"></script>
<script type="text/javascript" src="code/shBrushCpp.js"></script>
<script type="text/javascript" src="code/shBrushCss.js"></script>
<script type="text/javascript">SyntaxHighlighter.all();</script>
步骤四:
1、找到(注意去掉代码中[/CODE ]和[/code ]的空格)
[PHP] 纯文本查看 复制代码 if (strpos($message,"[code ]") !== false && strpos($message,"[/code ]") !== false) {
$message = preg_replace("/\[code\](.+)?\[\/code\]/eisU","phpcode('\\1')",$message,$db_cvtimes);
}
替换成(注意去掉代码中[/CODE ]和[/code ]的空格):
[PHP] 纯文本查看 复制代码 if (strpos($message,'[/CODE ]') !== false || strpos($message,'[/code ]') !== false) {
$searcharray = array(
"/\[code\](.+?)\[\/code\]/eis",
"/\[code=([#0-9a-z]{1,10})\](.+?)\[\/code\]/eis",
);
$replacearray = array(
"phpcode('\\1')",
"phpcode2('\\2','\\1')",
);
2、找到
[PHP] 纯文本查看 复制代码 function phpcode($code){
global $phpcode_htm,$codeid;
$code = str_replace(array("[p_w_upload=",'\\"'),array("[p_w_upload=",'"'),trim($code));
$codeid ++;
$code = preg_replace('/^(<br \/>)?(.+)?(<br \/>)?$/','\\2',$code);
$code = str_replace("<br />", "</li><li>", $code);
$phpcode_htm[$codeid] = "<div class=\"f12\"><a href=\"javascript:\" onclick=\"CopyCode(document.getElementById('code$codeid'));\">".getLangInfo('bbscode','copycode')."</a></div><div class=\"blockquote2\" id=\"code$codeid\"><ol><li>".preg_replace("/^(\<br \/\>)?(.*)/is","\\2",$code)."</li></ol></div>";
return "<\twind_phpcode_$codeid\t>";
}
在底下添加:
[PHP] 纯文本查看 复制代码 function phpcode2($code,$type){
global $phpcode_htm,$codeid;
$code = str_replace(array("[p_w_upload=",'\\"'),array("[p_w_upload=",'"'),trim($code));
$codeid ++;
$code = str_replace("<br />", "\n", $code);
$phpcode_htm[$codeid] = "<pre class=\"brush: $type;\">".$code."</pre>";
return "<\twind_phpcode_$codeid\t>";
}
步骤五:
打开 js/breeze/editor/code.js 把里面所有代码替换为(注意去掉代码中2处[/code ]的空格):
[JavaScript] 纯文本查看 复制代码
// JavaScript Document
B.namespace('editor.code', function(B){
//create PopUp
var insertTrigger;
function code2HTML(str){
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
return str.replace(/\r?\n/g, '<br />');
}
B.require('util.dialog', function(B){
B.util.dialog({
id: 'B_editor_code',
pos: ['left','top',-10000, 0],
reuse: true,
data: '<div class="B_menu B_p10B">\
<div style="width:320px;">\
<div class="B_h B_drag_handle"><a href="javascript://" class="B_menu_adel B_close">×</a>插入代码内容</div>\
<form name="B_editor_codeForm" class="B_tableA">\
<table width="100%" class="B_mb10"><tbody>\
<tr>\
<td>选择代码类型</td>\
<td><select name="cType"><option value="">none</option><option value="php">PHP</option><option value="php">PHP</option><option value="css">Css</option><option value="cpp">C语言</option></select></td>\
</tr>\
<tr>\
<td colspan="2"><div id="B_editor_codeText" class="B_mb10"><textarea name="content" rows="5" style="width:300px;overflow:auto;line-height:1.5;border:1px solid #ccc;"></textarea></div></td>\
</tr>\
</tbody></table>\
</form>\
<div class="B_tac B_p10"><span class="B_btn2"><span><button class="B_sumbit" type="button">提 交</button></span></span><span class="B_bt2"><span><button class="B_close" type="button">取 消</button></span></span></div>\
</div>\
</div>',
callback: function(popup){
var btn = B.$('#B_editor_code .B_sumbit');
B.addEvent(btn, 'click', function(){
var form = document.B_editor_codeForm,
content = code2HTML(form.content.value);
type = form.cType.value;
if(type==''){
str = '[ code]' + content + '[ /code ]';
}else{
str = '[ code=' + type + ']' + content + '[ /code ]';
}
insertTrigger(str);
form.reset();
popup.closep();
});
}
});
//绑定事件
});
B.editor.code = function(elem, fn){
insertTrigger = fn;
B.util.dialog({
id: 'B_editor_code',
pos: ['leftAlign', 'bottom']
}, elem);
}
});
至此完成!
添加其他语言支持
以javascript为例:
上述步骤三:
在第4行下面增加一行
[JavaScript] 纯文本查看 复制代码 <script type="text/javascript" src="code/shBrushJScript.js"></script>
上述步骤五:
第22行中间
[Plain Text] 纯文本查看 复制代码 <option value="cpp">C语言</option>
后面(不折行)增加
[JavaScript] 纯文本查看 复制代码 <option value="js">javascript</option>
完成! |