最近论坛的php高亮加上去了,现在把方法总结一下:
1: 修改 include/discuzcode.func.php
在 function codedisp($code)这个函数的下面再添加两个函数:代码如下
复制内容到剪贴板
代码:
/*************Display code start***************/
function phpcodedisp($code) {
global $discuzcodes;
$discuzcodes['pcodecount']++;
$code = phphighlite(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "[url=file://\\1]\\1[/url]", $code)));
$discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "<div class=\"blockcode\"><span class=\"headactions\" onclick=\"copycode($('code{$discuzcodes['codecount']}'));\">[Copy to clipboard]</span><h5>HP CODE:</h5><code id=\"code{$discuzcodes['codecount']}\">{$code}</code></div>";
$discuzcodes['codecount']++;
return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
}
/*************Display code End***************/
/**************phphigh lite start*************/
function phphighlite($code) {
if(!strpos($code,"<?\n") && !strpos($code,'<? ') && substr($code,0,2) != '<?') {
$code = '<'.'?'.trim($code).'?'.'>';
$addedtags = 1;
}
ob_start();
$oldlevel = error_reporting(0);
highlight_string($code);
error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
if ($addedtags) {
$openingpos = strpos($buffer, '?');
$closingpos = strrpos($buffer, '?');
$buffer = substr($buffer, $openingpos+1, $closingpos-($openingpos+1)).substr($buffer, $closingpos+5);
}
$buffer = str_replace('"', "\"", $buffer);
$buffer = str_replace('<br />', '', $buffer);
return $buffer;
}
/***********phphighlite end***********/2.在function discuzcode中的代码
复制内容到剪贴板
代码:
if($parsetype != 1 && !$bbcodeoff && $allowbbcode) {
$message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);
}再添加一段代码:
复制内容到剪贴板
代码:
/*********php high lite start******/
if($parsetype != 1 && !$bbcodeoff && $allowbbcode) {
$message = preg_replace("/\s*\[php\](.+?)\[\/php\]\s*/ies", "phpcodedisp('\\1')", $message);
}
/*********php high lite end*******/3.修改include/javascript/editor.js页面
将代码
复制内容到剪贴板
代码:
insertText(text, strlen(opentag), strlen(closetag), in_array(tagname, ['code', 'quote', 'free', 'hide']) ? true : false);修改为:
复制内容到剪贴板
代码:
insertText(text, strlen(opentag), strlen(closetag), in_array(tagname, ['code', 'quote', 'free', 'hide', 'php']) ? true : false);将代码
复制内容到剪贴板
代码:
if(in_array(cmd, ['quote', 'code', 'free', 'hide'])) 修改为
复制内容到剪贴板
代码:
if(in_array(cmd, ['quote', 'code', 'free', 'hide', 'php']))4.修改templates/default/post_editor.htm页面
在
复制内容到剪贴板
代码:
<td><a id="{$editorid}_cmd_code"><img src="images/common/bb_code.gif" title="{lang post_discuzcode_code}" alt="Code" /></a></td>的下面再添加一行
复制内容到剪贴板
代码:
<td><a id="{$editorid}_cmd_php"><img src="images/common/bb_php.gif" title="HP CODE" alt="php" /></a></td>5,最后将图片上传到images/common的目录下面,你也可以自己制作这个小图片