本文作者:phpwind lyn
说明:
1、这里说的是8.3版本的方法,其他版本修改方法应该类似,大家可以依葫芦画瓢
2、其实code下的js文件并未完全利用上,用不到的可以按需求删掉(js代码来源:SyntaxHighlighter 3.0.83版本)
3、调用方法:[code=php ]代码[/mw_shl_code]、[code=cpp ]代码[/mw_shl_code]、[code=css ]代码[/mw_shl_code]类推,普通的[ code] [/ code]样式不受影响
4、不想自己改bbscode.php 可以直接下载附件:
require.rar
然后直接覆盖(可以省略步骤四)。
5、想要高亮其他的代码类型请自行依葫芦画瓢,但如果太贪心了小心得不偿失。
6、做任何修改之前请注意备份
7. 效果预览见:
http://www.groad.net/bbs/read.php?tid-3183.html
============以下是修改步骤==============
步骤一:下载附件
code.rar
步骤二:打开template/wind(或你使用的风格)/header.htm
找到:
[Plain Text] 纯文本查看 复制代码 <link rel='archives' title='$db_bbsname' href='$db_bbsurl/simple/' />
在下面添加:
[Plain Text] 纯文本查看 复制代码 <link type="text/css" rel="stylesheet" href="code/shCoreDefault.css"/>
步骤三:打开template/wind(或你使用的风格)/read.htm
文件最后添加(以下支持JS代码、PHP代码、C语言、CSS代码4种。另外需要什么语言高亮就添加code下的相应js文件,其中shCore.js必需有):
<script type="text/javascript" src="code/shCore.js"></script>
<script type="text/javascript" src="code/shBrushJScript.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>
步骤四:打开require/bbscode.php
1、找到(注意去掉代码中[/CODE ]和[/code ]的空格)
[PHP] 纯文本查看 复制代码
]if (strpos($message,"[code ]") !== false && strpos($message,"[/code ]") !== false) {
$message = preg_replace("/\[code\](.+?)\[\/code\]/eis","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')",
);
$message = preg_replace($searcharray,$replacearray,$message);
}
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>";
}
今天正值全国学习雷锋日,借此感谢作者的劳动以及无私奉献精神:) |