Dz5.0支持多媒体播放和ubb按钮的自动开启,我们在后台可以自定义Discuz代码,但是我们最多只能定义3个动态参数,3个动态参数支持形如 [mp=500,300]多媒体地址[/mp] 这样的代码。
问题是,有些朋友是从dv转过来的或者以前对论坛代码进行过一些修改,导致老帖子里面有形如 [mp=500,300,0]多媒体地址[/mp] 的播放代码,这样的代码是有高度、宽度、是否自动播放、多媒体文件地址总共4个动态参数的,我们通过后台设置自定义Discuz代码也无能为力。
针对这一问题,目前流行的解决办法是直接修改discuz.func.php文件
参考:
播放器+FLASH+歌词秀+全按扭(HIDE) For 5.0.0 by oytktk和小雨!
https://discuz.dismall.com/thread-362508-1-1.html
但是这样的修改有一个问题:如果首选编辑器是所见即所得模式,编辑含有这些代码的帖子的时候,看到的不是ubb代码,而是html代码,当你从所见即所得模式切换到代码模式,会发现,这些代码消失不见了!(按照这种方法修改过的朋友可以试试看)
我就是从dv转过来的,老帖里面有很多这样的4个参数的代码都无法显示,而且本人和论坛会员也习惯了这种可以设定高度、宽度、是否自动播放的代码。为了解决这个问题,研究了一下代码,找到了一个自认为比较理想的解决办法,那就是:
将自定义Dicuz代码的最多参数个数从3增加到4
这样,我们在后台开启自定义Discuz代码,设置4个参数,就可以解决形如 [mp=500,300,0]多媒体文件地址[/mp] 这样的播放代码的遗留问题了。
------------------------------------------------------------------
修改内容:将自定义Discuz代码的最多参数个数从3增加到4
修改难度:容易
数据库升级:无
修改涉及文件:2个
------------------------------------------------------------------
修改方法:
1、修改include/cache.func.php
查找
- 1 => "/\[{bbtag}](.+?)\[\/{bbtag}\]/is",
- 2 => "/\[{bbtag}=(['"]?)(.+?)(['"]?)\](.+?)\[\/{bbtag}\]/is",
- 3 => "/\[{bbtag}=(['"]?)(.+?)(['"]?),(['"]?)(.+?)(['"]?)\](.+?)\[\/{bbtag}\]/is"
复制代码
修改为
- 1 => "/\[{bbtag}](.+?)\[\/{bbtag}\]/is",
- 2 => "/\[{bbtag}=(['"]?)(.+?)(['"]?)\](.+?)\[\/{bbtag}\]/is",
- 3 => "/\[{bbtag}=(['"]?)(.+?)(['"]?),(['"]?)(.+?)(['"]?)\](.+?)\[\/{bbtag}\]/is",
- 4 => "/\[{bbtag}=(['"]?)(.+?)(['"]?),(['"]?)(.+?)(['"]?),(['"]?)(.+?)(['"]?)\](.+?)\[\/{bbtag}\]/is"
复制代码
查找
- case 2:
- $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']);
- $bbcode['replacement'] = str_replace('{2}', '\\4', $bbcode['replacement']);
- break;
- case 3:
- $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']);
- $bbcode['replacement'] = str_replace('{2}', '\\5', $bbcode['replacement']);
- $bbcode['replacement'] = str_replace('{3}', '\\7', $bbcode['replacement']);
- break;
复制代码
后面添加
- case 4:
- $bbcode['replacement'] = str_replace('{1}', '\\2', $bbcode['replacement']);
- $bbcode['replacement'] = str_replace('{2}', '\\5', $bbcode['replacement']);
- $bbcode['replacement'] = str_replace('{3}', '\\8', $bbcode['replacement']);
- $bbcode['replacement'] = str_replace('{4}', '\\10', $bbcode['replacement']);
- break;
复制代码
2、修改admin/misc.inc.php
查找
- elseif($paramsnew < 1 || $paramsnew > 3 || $nestnew < 1 || $nestnew > 3)
复制代码
修改为
- elseif($paramsnew < 1 || $paramsnew > 4 || $nestnew < 1 || $nestnew > 3)
复制代码
修改完毕,修改以后,在后台开启自定义Discuz代码,你就可以最多设置4个动态参数了,可以很方便的支持形如 [mp=500,300,0][/mp] 这样的代码。
小提示:
1、开启自定义代码的时候,设置相应的ubb按钮图标,ubb按钮会自动在前台显示
2、用户组必须开启允许使用自定义Discuz代码,该用户组成员才能使用
================uusz.net原创修改,转载请注明===============
[ 本帖最后由 uusz 于 2006-8-28 20:00 编辑 ] |