Discuz! 官方站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 76580|回复: 85

Discuz!论坛实现PHP代码高亮

[复制链接]
发表于 2007-12-4 14:10:03 | 显示全部楼层 |阅读模式
插件演示地址:Discuz!论坛实现PHP代码高亮:http://www.phpq.net/bbs/thread-5-1-1.html


插件添加步骤如下:

修改include/discuzcode.func.php

查找
  1. function codedisp($code) {
  2.         global $discuzcodes;
  3.         $discuzcodes['pcodecount']++;
  4.         $code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
  5.         $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = tpl_codedisp($discuzcodes, $code);
  6.         $discuzcodes['codecount']++;
  7.         return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
  8. }
复制代码
在下面添加:
  1. function phpcodedisp($code) {
  2.         global $discuzcodes;
  3.         $discuzcodes['pcodecount']++;
  4.         $code = phphighlite(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
  5.         $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "<div class=\"blockcode\"><span class=\"headactions\" onclick=\"copycode($('code{$discuzcodes['codecount']}'));\">复制内容到剪贴板</span><h5>HP代码:</h5><code id=\"code{$discuzcodes['codecount']}\">{$code}</code></div>";
  6.         $discuzcodes['codecount']++;
  7.         return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
  8. }

  9. function phphighlite($code) {
  10.         if(!strpos($code,"<?\n") && !strpos($code,'<? ') && substr($code,0,2) != '<?') {
  11.                 $code = '<'.'?'.trim($code).'?'.'>';
  12.                 $addedtags = 1;
  13.         }
  14.         ob_start();
  15.         $oldlevel = error_reporting(0);
  16.         highlight_string($code);
  17.         error_reporting($oldlevel);
  18.         $buffer = ob_get_contents();
  19.         ob_end_clean();
  20.         if ($addedtags) {
  21.                 $openingpos = strpos($buffer, '?');
  22.                 $closingpos = strrpos($buffer, '?');
  23.                 $buffer = substr($buffer, $openingpos+1, $closingpos-($openingpos+1)).substr($buffer, $closingpos+5);
  24.         }
  25.         $buffer = str_replace('"', "\"", $buffer);
  26.         $buffer = str_replace('
  27. ', '', $buffer);
  28.         return $buffer;
  29. }
复制代码
继续修改include/discuzcode.func.php
查找
  1. if($parsetype != 1 && !$bbcodeoff && $allowbbcode) {
  2.      $message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);
  3. }
复制代码
在其下面添加:

  1. if($parsetype != 1 && !$bbcodeoff && $allowbbcode) {
  2.         $message = preg_replace("/\s*\[php\](.+?)\[\/php\]\s*/ies", "phpcodedisp('\\1')", $message);
  3. }
复制代码
修改include/javascript/editor.js

查找
  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);
复制代码
继续修改include/javascript/editor.js

查找
  1. if(in_array(cmd, ['quote', 'code', 'free', 'hide'])) {
复制代码
修改为
  1. if(in_array(cmd, ['quote', 'code', 'free', 'hide', 'php'])) {
复制代码
6.修改templates/default/post_bbinsert.htm

查找
  1. <td><a id="{$editorid}_cmd_code"><img src="images/common/bb_code.gif" title="{lang post_discuzcode_code}" alt="Code" /></a></td>
复制代码
在下面添加
  1. <td><a id="{$editorid}_cmd_php"><img src="images/common/bb_php.gif" title="HP代码" alt="php" /></a></td>
复制代码
然后上传bb_php.gif到 images/common 目录下

评分

1

查看全部评分

发表于 2007-12-4 14:45:17 | 显示全部楼层
莫非是沙发支持 ?
回复

使用道具 举报

发表于 2007-12-4 15:39:19 | 显示全部楼层
不知道做啥用滴,学习中。。。
回复

使用道具 举报

发表于 2007-12-4 15:46:28 | 显示全部楼层
不错,感谢分享!
回复

使用道具 举报

发表于 2007-12-4 16:55:30 | 显示全部楼层
不错,感谢分享
回复

使用道具 举报

发表于 2007-12-4 17:40:53 | 显示全部楼层
占个首页位置
回复

使用道具 举报

发表于 2007-12-4 18:16:49 | 显示全部楼层
终于可以占到首页啦!
小水水进来作品不断啊~!
回复

使用道具 举报

发表于 2007-12-4 18:43:44 | 显示全部楼层
楼主说的详细点啊。干什么的?
回复

使用道具 举报

发表于 2007-12-4 18:50:57 | 显示全部楼层
不知道干什么的,晕了
回复

使用道具 举报

发表于 2007-12-4 20:08:27 | 显示全部楼层
原帖由 麦田-1979 于 2007-12-4 15:39 发表
不知道做啥用滴,学习中。。。


同样问题!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

腾讯云市场 一站式企业服务 爆款建站、小程序等1元起

QQ|小黑屋|Discuz! 官方站 ( 粤B2-20090059-165 )star

GMT+8, 2019-12-6 03:26

Powered by Discuz! X3.3

Copyright © 2001-2019 Tencent Cloud.

快速回复 返回顶部 返回列表