discuz论坛这么多个版本,有时候部落真是想不通,居然没有一个支持手机版播放在线视频的,正常情况下,我们在手机上打开某个含有视频链接的贴子,显示的都是一行代码,当然,现在已经有插件可以解决这个问题.不过部落当时试了一个,效果也不是很理想,像播放网络视频,也就是外部视频的话,需要支持的东西有点多,最让人不舒服的是,discuz这么多的版本,居然没有一个解析外部视频链接的. 论坛如何发表连接外部视频(例如优酷网的视频)的帖子. 这里部落先简单说一下,可以使用以下两种方法 方法1: a、后台 => 界面 => 编辑器设置 => Discuz!代码 => Flash栏 勾选 可用 b、版块 => 版块名称后编辑 => 帖子选项 => 允许使用 Discuz! 代码: 选择 是 c、用户 => 用户组 => 详情 => 帖子选项 => 设置下允许使用discuz代码 d、发帖时可以选择开启的 Flash 图标,放入优酷等视频网站的 Flash 地址。 方法2: a、后台 => 界面 => 编辑器设置 => Discuz!代码 => media栏 勾选 可用 b、版块 => 版块名称后编辑 => 帖子选项 => 设置允许使用media代码以及允许使用 Discuz! 代码 c、发帖时可以选择开启的 media 图标,放入优酷等视频网站的 Flash 地址. 通常情况下,我们在贴子中插入一段视频,在手机上打开,显示的是下面的内容:
- l8 g* I+ f- a7 \2 p1 f) G-
9 R1 q# V( F( f9 n. {) j, R: @$ g & M P, Q2 Y; ~5 E' P# T* V
discuz手机播放视频 部落找到了一个六月_手机视频播放免费版,大家可以试试看,介绍地址是:由此直达. 优酷 土豆 56 酷六视频等视频资源在手机端点击既能及时观看. 当然,还有其它的,自己可以找一下. 如何让discuz论坛手机版也能播放网络视频? 这里部落列出自己收集的几个方法: 一. 如果手机安装了flash播放器,可以使用下面的方法. 首先我们打开source/function/function_discuzcode.php,然后查找:
, U. H O% O" u8 A/ @. v" f2 o- $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "[media]\\4[/media]", $message); ( M6 _7 n+ ?- r: o) s1 E0 D6 ^
+ F$ q0 L( V2 S9 E" A& |9 ^: \修改为: 3 F: r$ S1 m7 l
- $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/", "<embed src='\\4' allowFullScreen='true' quality='high' width='260' height='150' align='middle' allowScriptAccess='always' type='application/x-shockwave-flash'></embed>", $message);
0 P( `1 i3 u2 K$ f& ~ 7 v I. u/ [" h6 [- ]: a t/ L
保存后手机版的discuz 也能播放网络视频了. 部落的线报论坛成功操作后如下图: [/url] 二. 另外一种方法实现,在版块里禁用discuz代码,采用html代码!然后在编辑器里用如杲方式调用,这样手机就可以访问了. [url=http://www.mfbuluo.com/wp-content/uploads/2016/05/dzsjbfsp1.jpg] <iframe height=280 width=260 src="http://player.youku.com/embed/XMjYwNTIxODg1Ng" frameborder=0></iframe> 论坛板块和用户权限打开html支持,发帖选项,纯文本,html(点开附加选项才可以选html),然后插入以下代码,视频id XNzEwMzEyNDk2 换成自己的,可以在优酷网视频网址里看到. 这个方法部落没有测试,自测吧. 三. 手机版支持播放外链视频的方法,可支持触屏版,也可支持标准版. 首先找到discuz的ubb代码解析文件(source/function/function_discuzcode.PHP),在大约199行的时候可以看到,如果用户打开的是手机版,那么[media]、、[flash]这3个标签都会被放弃解析,统一输出成[media]XXXXX[/media]这种格式. 首先改动[media]标签的解析,将第200行的代码:这个和第一部的基本一样,只是后面加入解析代码. - f+ u: F) b8 l
- $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "[media]\\2[/media]", $message); : {$ W+ v& `3 f- {5 k% G: h
# A3 J/ D. K. X* J L3 q修改为:
]& u4 }: Q6 i% v+ \% X, h$ g0 _- $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "<p class=\"hm\" onclick=\"openVideo(this,'\\2')\"><img src=\"static/image/common/vd.gif\" /></p>", $message);
! v; d+ o) G) `3 ^) _+ z4 ~ ' k4 u# D' X% V1 S2 E% D* w; m
在来改动[flash]标签的解析,将205行的代码:
; S- a7 z% ^3 P, b! F- $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "[media]\\4[/media]", $message); ) p% L2 }( _. z) X( `
. `% n7 n7 J8 i+ K. T8 _9 v
修改为:
* q8 p) G T" R- $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "<p class=\"hm\" onclick=\"openVideo(this,'\\4')\"><img src=\"static/image/common/vd.gif\" /></p>", $message); / q& G* C& @2 Y
. [; o# ^* A) x1 R9 Q# P0 [然后修改模版文件(template/default/touch/forum/viewthread.htm),在任意一个JS标签中加入解析视频的代码:
. V+ e. `* t+ w* A% d4 k- function openVideo(a,b) {
- $(a).html('<img src="static/image/mobile/images/icon_load.gif" />');
- var w = $(a).width();
- var h = w * 0.85;
- if(/youku/.test(b)){ //解析优酷
- b = b.match(/id_(.*?)\.html|sid\/(.*?)\/v/);
- b = 'http://player.youku.com/embed/' + (b[1] ? b[1] : b[2]);
- }else if(/bilibili|acg\.tv/.test(b)){ //解析B站
- b = b.match(/o\/av(.*?)\/|aid=(.*?)&/);
- b = 'http://www.bilibili.com/video/av' + (b[1] ? b[1] : b[2]);
- }else{
- $(a).html('不支持此视频地址显示:' + b);
- return;
- }
- $(a).append('<iframe width=0 height=0 src="' + b + '" scrolling=no frameborder=0 allowfullscreen></iframe>');
- $(a).children('iframe').load(function(){
- $(a).children('img').remove();
- $(a).children('iframe').css({'width':w,'height':h});
- })
- } 0 f$ x/ g" N$ \; N
! `( m: X& R! J3 I; u9 Q
可以用手机打开一个有视频的帖子看看效果了. 这里只写了优酷和B站的解析,其他视频地址的解析暂时没有写,不过有了上面的JS做参考很简单就可以写出支持其他站的视频外链。其原理就是,按照视频URL匹配出VID然后组成可以加载出HTML5播放器的URL在通过iframe框架加载页面就行了. 小结 discuz论坛手机版也能播放网络视频,如果要等官方的支持,估计还得有些时间.部落目前自己使用的就是第一种方法.
4 M. h$ E/ U% S
四.用FTP打开网站根目录下的source/function/function_discuzcode.php,
: k1 [/ @. b. `+ n# ~2 q* e4 Y& `* e6 f$ L. `6 G X" Q* _6 Y4 V
然后查找以下代码:
* `$ D9 ~$ O/ `. p' V& k6 |# V. I8 o/ x/ u% J7 U# L8 r
. w/ k T* {' H $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "[media]\\2[/media]", $message); / Q" A. z0 ~! n0 d! b8 `
( k" |5 }9 X3 N" V) D5 H y
修改为:* R1 S( l- ]3 g6 \2 ?0 N5 x. n" i' l0 q% P; C% A$ M+ \+ M
/ _7 Z& t8 m% t6 e/ v* Y( `; r4 o" K $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "<iframe height='260' width='100%' src='\\4' scrolling='no' allowfullscreen='true' frameborder='0'></iframe>", $message); } |