不得不吐槽下康盛在移动端挖了多少个坑,又弃了多少坑,从掌上论坛、触屏版在到独立客户端,全成了太监。现在又跑去搞X社区,触屏版刚出个模子就被弃了,导致很多东西都不完善,连标准版都不及!
这次主要说一下手机版支持播放外链视频的方法,可支持触屏版,也可支持标准版。
首先找到discuz的ubb代码解析文件(source/function/function_discuzcode.php),在大约199行的时候可以看到,如果用户打开的是手机版,那么[media]、[audio]、[flash]这3个标签都会被放弃解析,统一输出成[media]XXXXX[/media]这种格式。
首先改动[media]标签的解析,将第200行的代码:
- $message = preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is", "[media]\\2[/media]", $message);
修改为:
- $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);
在来改动[flash]标签的解析,将205行的代码:
- $message = preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is", "[media]\\4[/media]", $message);
修改为:
- $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);
然后修改模版文件(template/default/touch/forum/viewthread.htm),在任意一个JS标签中加入解析视频的代码:
- 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});
- })
- }
以上完成修改,可以用手机打开一个有视频的帖子看看效果了
注:我在这里只写了优酷和B站的解析,其他视频地址的解析暂时没有写,不过有了上面的JS做参考很简单就可以写出支持其他站的视频外链。其原理就是,按照视频URL匹配出VID然后组成可以加载出HTML5播放器的URL在通过iframe框架加载页面就行了。
分享到:
相关推荐
X3 在继承和完善 Discuz! X2.5 的基础上,针对“系统架构”、“负载性能”等几大方面,进行了全面升级。本次提供的为测试版,仅供广大站长安装测试,请勿直接用于正式站点。安装说明:全新安装:请参照以往版本的...
X3 在继承和完善 Discuz! X2.5 的基础上,针对“系统架构”、“负载性能”、“用户交互体验”等几大方面,进行了全面升级。 为进一步保障正式版的稳定,我们特此发布RC版,希望广大站长协助我们进行测试。 安装...
Discuz php 版 帮助文档。前后台使用手册、 支持原创 http://faq.comsenz.com/library/x3/index.html 不过他是epub文件类型,我这边转了格式。
X3版本,QQ互联显示正常,而升级Discuz! X3版本的QQ互联分享到“QQ好友和群”却显示英文。 参考Discuz!官方论坛的帖子 ://www.discuz.net/forum.php?mod=viewthread&tid=3255103 仍无法解决,后来发现问题并且在...
Discuz!X3Discuz!X3 设计漂亮的图片素材类网站模板@www.ymzja.com.zip
Discuz!_X3资料库_离线版_discuz最新chm版,dz官网资料库合集,最全面的discuz!X3资料库chm版
X1.5 手机版发布了,在今天开启的Discuz!X1.5 手机版试用申请活动中,在短短的5个小时之间,官方团队成员的微博转播数近200次,参与活动的站长多达550名,充分感受到了广大站长的热情以及对手机版的期待。
Discuz! X3找回重置管理员密码的方法.docx
Discuz! 目录结构说明、数据库字典和一些涉及二次开发的通用性类和函数做了简要的注释说明。 如果你想使用Discuz!的架构进行二次开发,对这些基础通用的类、函数进行了解和掌握,是必须进行的一步。
房产模块 1.2 正式版 for Discuz! X3系列 2013.10.11 1、修改可在Discuz 3 系列上安装,功能相对上一版本未做修改。 2011.12.16 1、修正了经纪人处中介图标不显示。 2、IE6下更新相册变成删除相册图片。 3、检索条...
Discuz!X3精仿163K地方门户+12类分类信息+商家点评+楼盘展示,gbk模板
网银在线插件适用于Discuz!X3 ,包含银行直连功能。
Discuz! X3 UTF-8多城市功能 按城市分别显示主题贴 可设置各城市二级域名
Discuz! X3服务器优化设置.docx
X3 在继承和完善 Discuz! X2.5 的基础上,针对“系统架构”、“负载性能”、“用户交互体验”等几大方面,进行了全面升级。 为进一步保障正式版的稳定,我们特此发布RC版,希望广大站长协助我们进行测试。 安装...
Discuz!X3模板 迪恩MOTO模特艺人摄影 商业版 GBK+UTF8 DZ社区论坛
X3 在继承和完善 Discuz! X2.5 的基础上,针对“系统架构”、“负载性能”、“用户交互体验”等几大方面,进行了全面升级。 为进一步保障正式版的稳定,我们特此发布RC版,希望广大站长协助我们进行测试。 安装...
X3 在继承和完善 Discuz! X2.5 的基础上,针对“系统架构”、“负载性能”、“用户交互体验”等几大方面,进行了全面升级。 为进一步保障正式版的稳定,我们特此发布RC版,希望广大站长协助我们进行测试。 安装...
Discuz! X3+ 急诊箱 For PHP7.x,默认密码:admin