Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

开启附件URL地址后attach://形式的地址无法解析的Bug

[复制链接]
ted1006 发表于 2011-8-12 14:23:29 | 显示全部楼层 |阅读模式
后台 → 全局 → 上传设置 → 论坛附件 → 附件 URL 地址、媒体附件播放,这项设置为开启后,上传附件的地址可通过 "attach://aid" 方式在任何帖内引用,并支持媒体类附件的直接播放。

此处在X2中存在Bug,添加后并不会正常解析,可根据如下方法进行修改:

找到 source\function\function_discuzcode.php 文件

修改第1处:95行附近
  1. $message = preg_replace("/attach:\/\/(\d+)\.?(\w*)/ie", "parseattachurl('\\1', '\\2')", $message);
复制代码
修改为
  1. $message = preg_replace("/attach:\/\/(\d+)\.?(\w*)/ie", "parseattachurl('\\1', '\\2', 1)", $message);
复制代码
在调用的parseattachurl函数中增加一个参数,为1。

修改第2处:287行附近
  1. function parseattachurl($aid, $ext) {
  2.         global $_G;
  3.         $_G['forum_skipaidlist'][] = $aid;
  4.         return $_G['siteurl'].'forum.php?mod=attachment&aid='.aidencode($aid, $ext, $_G['tid']).($ext ? '&request=yes&_f=.'.$ext : '');
  5. }
复制代码
修改为
  1. function parseattachurl($aid, $ext, $ignoretid = 0) {
  2.         global $_G;
  3.         $_G['forum_skipaidlist'][] = $aid;
  4.         return $_G['siteurl'].'forum.php?mod=attachment&aid='.aidencode($aid, $ext, $ignoretid ? '' : $_G['tid']).($ext ? '&request=yes&_f=.'.$ext : '');
  5. }
复制代码
为parseattachurl函数增加一个参数 $ignoretid ,忽略tid,默认值为0。
此修改则可当通过attach://形式引用附件时,则不传递当前主题的tid,以免导致解析错乱。
被风吹倒的男子 发表于 2011-8-12 14:26:21 | 显示全部楼层
本帖最后由 被风吹倒的男子 于 2011-8-12 14:26 编辑

支持新的教程,,,
回复

使用道具 举报

www.ou99.com 发表于 2011-8-12 14:33:13 | 显示全部楼层
这么久就出了这个个补丁,汗
回复

使用道具 举报

liujun1990 发表于 2011-8-12 19:55:56 | 显示全部楼层
支持新的教程
回复

使用道具 举报

gavys 发表于 2011-8-14 21:58:03 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-23 23:46 , Processed in 0.026010 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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