原创文章(函数phphighlite()来自网络),转载请注明出处。
插件添加步骤如下:
修改include/discuzcode.func.php
查找
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function codedisp($code) { global $discuzcodes; $discuzcodes['pcodecount']++; $code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code))); $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = tpl_codedisp($discuzcodes, $code); $discuzcodes['codecount']++; return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]"; } |
在下面添加:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | //////Discuz!7.0实现PHP代码高亮 by 荒野无灯 blog.thinkstd.cn////// 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(' ', '', $buffer); return $buffer; } function phpcodedisp($code) { global $discuzcodes; $discuzcodes['pcodecount']++; $code = phphighlite(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code))); $discuzcodes['codehtml'][$discuzcodes['pcodecount']] ="<div class=\"blockcode\"><h5>PHP代码:</h5><div id=\"code$discuzcodes[codecount]\"><ol><li>$code</ol></div><em onclick=\"copycode($('code$discuzcodes[codecount]'));\">复制内容到剪贴板</em></div>"; // $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = tpl_codedisp($discuzcodes, $code); $discuzcodes['codecount']++; return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]"; } //////Discuz!7.0实现PHP代码高亮 by 荒野无灯 blog.thinkstd.cn////// |
查找:
1 2 3 4 5 6 | function discuzcode($message, $smileyoff, $bbcodeoff, $htmlon = 0, $allowsmilies = 1, $allowbbcode = 1, $allowimgcode = 1, $allowhtml = 0, $jammer = 0, $parsetype = '0', $authorid = '0', $allowmediacode = '0', $pid = 0) { global $discuzcodes, $credits, $tid, $discuz_uid, $highlight, $maxsmilies, $db, $tablepre, $hideattach; if($parsetype != 1 && !$bbcodeoff && $allowbbcode && (strpos($message, '[/code]') || strpos($message, '[/CODE]')) !== FALSE) { $message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message); } |
在其下加上
1 2 3 4 5 6 7 | //////Discuz!7.0实现PHP代码高亮 by 荒野无灯 blog.thinkstd.cn////// if($parsetype != 1 && !$bbcodeoff && $allowbbcode && (strpos($message, '[/php]') || strpos($message, '[/PHP]')) !== FALSE) { $message = preg_replace("/\s*\[php\](.+?)\[\/php\]\s*/ies", "phpcodedisp('\\1')", $message ); } //////Discuz!7.0实现PHP代码高亮 by 荒野无灯 blog.thinkstd.cn////// |
2.修改include\js\post.js
function wrapTags(tagname, useoption, selection) 修改
1 | insertText(text, strlen(opentag), strlen(closetag), in_array(tagname, ['code', 'quote', 'free', 'hide']) ? true : false); |
为
1 | insertText(text, strlen(opentag), strlen(closetag), in_array(tagname, ['code', 'quote', 'free', 'hide','php']) ? true : false); |
查找
1 | lang['e_code'] = '请输入要插入的代码'; |
在其下加上:
1 | lang['e_php'] = '请输入要插入的php代码'; |
查找
1 2 3 4 | if(wysiwyg) { if(cmd == 'code') { text = preg_replace(['<', '>'], ['<', '>'], text); } |
修改为:
1 2 3 4 | if(wysiwyg) { if(cmd == 'code' || cmd == 'php') { text = preg_replace(['<', '>'], ['<', '>'], text); } |
3.修改模板文件
在 \templates\default\seditor.htm
中查找:
1 2 3 | <!--{if in_array('code', $seditor[1])}--> <a href="javascript:;" title="{lang e_code}" class="tb_code" onclick="seditor_insertunit('$seditor[0]', '[code]', '[/code]')">Code</a> <!--{/if}--> |
在其下添加:
1 2 3 | <!--{if in_array('php', $seditor[1])}--> <a href="javascript:;" title="{lang e_php}" class="tb_php" onclick="seditor_insertunit('$seditor[0]', '[php]', '[/php]')">PHP</a> <!--{/if}--> |
在 \templates\default\css_seditor.htm
中查找:
1 | .editor_tb div a.tb_code { background-position: -3px -461px; } |
在其下加上:
1 | .editor_tb div a.tb_php { background-position: -3px -521px; } |
在 \templates\default\css_editor.htm 中查找:
1 | #e_cmd_code { background-position: 0 -461px;} |
在其下加上:
1 | #e_cmd_php { background-position: 0px -521px; } |
最后,进入DZ后台,“工具”->”数据库“->”升级 “,
在”Discuz! 数据库升级 – 请将数据库升级语句粘贴在下面“下的的框中粘贴以下代码(注意,cdb_bbcodes中的cdb_请更改为你自己的表前缀):
1 2 | INSERT INTO `cdb_bbcodes` (`id`, `available`, `type`, `tag`, `icon`, `replacement`, `example`, `explanation`, `params`, `prompt`, `nest`, `displayorder`) VALUES (25, 2, 1, 'php', 'cmd_php', '', '', '插入php代码', 1, '', 1, 10); |
再点击最下面那个”提交“按钮。
将\images\common\editor.gif替换为这个
好了,现在,进入DZ后台,“界面”->“编辑器设置”->“ Discuz! 代码”
看下php标签是否躺在那了?在去前台发个帖子看下。
我本地测试的效果:


喜欢这篇文章吗?
请订阅本站 RSS feed 或




2:15 上午, 2009年09月9日IsaacZ /
行号只显示第一行的,是个遗憾。
6:15 下午, 2009年05月17日phpcode /
行号显示不出来啊。
4:34 下午, 2009年05月17日phpcode /
知道了。post.js有一个地方没改。
if(in_array(cmd, ['quote', 'code', 'free', 'hide']))改为
if(in_array(cmd, ['quote', 'code', 'free', 'hide','php']))
就可以了
谢谢博主。
10:22 上午, 2009年05月18日荒野无灯 /
对,这里我忘记写了,谢谢指出!
4:22 下午, 2009年05月17日phpcode /
不行啊。博主。
图标出来来。但是点击没有弹出输入框啊。
能说说吗。谢谢
8:18 下午, 2009年05月16日荒野无灯 /
[img]标签自动加入图片盗链程序
针对目前一些相册的反盗链,必须在图片地址前面加上反盗链程序,很多用户不会使用或者忘记使用,致使论坛上很多叉叉,
将以下代码<?
$pics=file($p);
for($i=0;$i
复制代码保存为163photo.php上传至空间(譬如http://www.kofans.cn/163photo.php)
打开bbcode.js
查找if(!fetchCheckbox(‘bbcodeoff’)) {
if(allowimgcode) {
str = str.replace(/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ig, ‘screen.width*0.7)
复制代码替换为:if(!fetchCheckbox(‘bbcodeoff’)) {
if(allowimgcode) {
str = str.replace(/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ig, ‘screen.width*0.7)
复制代码以后就可以随便转贴163相册、QQ相册、SOHU相册、51相册中图片,而不需要做任何反盗链措施
因为每个[img]标签会自动在图片地址前加上盗链程序http://www.kofans.cn/163photo.php?p=
7:27 下午, 2009年04月21日simaopig /
你的论坛地址在哪啊?
12:26 下午, 2009年04月22日荒野无灯 /
@simaopig,
http://ihacklog.com/gogogo/aHR0cDovL2Jicy5mZW5neWV0aW5nLmNu
现在没怎么弄了,时间很少。
呵呵。