请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Discuz! 官方站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Discuz! X 最新研发动态 通过这个窗口,关注跟踪我们的研发进展 Discuz! 开发技术文库 - 给官方提建议

Discuz! X2 正式版下载 帮助网站实现一站式服务  商业支持服务咨询 下载 - 安装 - 常见问题 - 转换 - 讨论 - 购买

2012站长年会开启报名 限量船票免费发放 Discuz!十大荣誉用户评选 - Discuz!NT3.6发布 漫游引入QQ空间游戏 -一骑新区横扫三国-5d6d免费论坛

查看: 8202|回复: 52

[发布] 超酷播放器UBB标签 FOR Discuz! 6.0正式版本发布 [复制链接]

King

黑社会老大

Rank: 6Rank: 6

UID
625498
积分
1332
帖子
1596
威望
3
在线时间
21 小时
注册时间
2007-1-24
发表于 2007-9-5 13:35:50 |显示全部楼层
标题:超酷播放器UBB标签 FOR Discuz! 6.0正式版
=========================
插件名称:超酷播放器UBB标签
适合版本:Discuz! 6.0正式版
发布日期:2007-9-5
发  布 人: 2046
演     示:http://club.cimgoo.com/thread-230779-1-1.html
技术支持:Discuz!官方论坛
=========================

前段时间服务器频繁无故关闭(原因大家该都知道),造成我的社区长时间无法访问,也使得插件的开发滞后。让DZ的朋友们久等了,这里先想大家说对不起!

A、手动修改方法见下面的详细步骤,强烈推荐;你也可以直接下载我们做好的相应版本完整插件包直接上传覆盖你的原来文件,但记得一定要备份原始文件以防意外;如果你装过其他播放器插件,建议先删除(与DZ系统内置的所有播放标签都没有冲突,而且可以同时使用!)。
B、大家在安装过程中有什么问题直接到我站发贴提问  http://club.cimgoo.com/forum-60-1.html  ,我会第一时间答疑帮助,有什么建议和BUG希望大家提出,我会努力改进。
C、插件在“西谷IT社区”正式应用,而且永久和官方版本同步更新,关注本插件最新版本直接到
http://club.cimgoo.com/thread-230778-1-1.html免费下载。
D、此次版本较以前版本在安全机制上改动较大,对JavaScript嵌入攻击、钓鱼做过很好的防御,强烈建议更新。
E、插入要在Discuz!代码模式下进行。


一、需要添加的文件:

复制下面附件的 ubb_dialog.php 文件到根目录
ubb_dialog.rar (1.11 KB, 下载次数: 343)

复制下面附件的 bb_player.gif 图片到 ./images/common/目录下
bb_player.gif


二、需要修改的代码:

1、打开./include/discuzcode.func.php文件,查找:
  1. for($i = 0; $i <= $discuzcodes['pcodecount']; $i++) {
复制代码
在他前面加如以下代码:
  1. /*--------------------------------------------- CIMGOO --------------------------------------->>>---*/
  2. $allowplayercode = $allowsmilies;
  3. if(!$bbcodeoff && $allowplayercode && $GLOBALS['player_ubb_on']) {
  4. if(empty($discuzcodes['searcharray']['playercode'])) {
  5. $discuzcodes['searcharray']['playercode'] = array(
  6. "/\[mp\](.+?)\[\/mp\]/eis",
  7. "/\[mp=(\d)\](.+?)\[\/mp\]/eis",
  8. "/\[wmv\](.+?)\[\/wmv\]/eis",
  9. "/\[wmv=(\d{1,3})\,(\d{1,3})\,(\d)\](.+?)\[\/wmv\]/eis",
  10. "/\[rm\](.+?)\[\/rm\]/eis",
  11. "/\[rm=(\d{1,3})\,(\d{1,3})\,(\d)\](.+?)\[\/rm\]/eis"
  12. );
  13. $discuzcodes['replacearray']['playercode'] = array(
  14. "media_player('mp', '\\1')",
  15. "media_player('mp', '\\2', '\\1')",
  16. "media_player('wmv', '\\1')",
  17. "media_player('wmv', '\\4', '\\3', '\\1', '\\2')",
  18. "media_player('rm' , '\\1')",
  19. "media_player('rm' , '\\4', '\\3', '\\1', '\\2')"
  20. );
  21. }
  22. $message = preg_replace($discuzcodes['searcharray']['playercode'], $discuzcodes['replacearray']['playercode'], $message);
  23. }
  24. /*--------------------------------------------- CIMGOO ---------------------------------------<<<---*/
复制代码
在文件尾("?>"之前) 添加以下代码:
  1. /*--------------------------------------------- CIMGOO --------------------------------------->>>---*/
  2. $player_ubb_on = true;       //是否开启
  3. $player_num = 0;
  4. $player_pre = mt_rand();
  5. function media_player($type, $url, $auto = 0, $width = 450, $height = 340) {//需默认自动开始播放,请将$auto = 0改为$auto = 1
  6. global $player_pre, $player_num;
  7. $pid = $player_pre.'_'.$player_num;
  8. if($type == 'rm') {
  9.   $player = <<<html











  10. html;
  11. } else {
  12.   if ($type == 'mp') {
  13.    $width = 280; $height = 69;
  14.   }else {
  15.    $height += 69;
  16.   }
  17.   $player = <<<html



  18. <!--param name="EnableContextMenu" value="0"-->


  19. html;
  20. }
  21. $url = explode("\r\n", trim($url));
  22. $select = "播放> ";
  23. foreach ($url as $key => $value) {
  24.   $value = preg_replace("//i","\\1", str_replace('\"','"',$value));
  25.   $one = explode('|', $value);
  26.   $one[0] = str_replace('"', '"', trim($one[0]));
  27.   if(!$one[0]) continue;
  28.   ++$count;
  29.   $select .= " $count ".cutstr(trim($one[1]), 20)." ";
  30. }
  31. $select .= '';
  32. if($type != 'mp') {
  33.   $full = "全屏播放 ";
  34. } else { $full = ''; }
  35. $prev_next = "上一集 ";
  36. $prev_next .= "下一集 ";
  37. $cp = '&copy; CIMGOO.COM';
  38. if($count == 1) {
  39.   $select = "$select";
  40.   $select .= $cp;
  41.   $prev_next = '';
  42. }
  43. $player = <<<html


  44.   Web Media Player ( x$count )

  45.   展开



  46.   $player



  47.   $cp
  48.   
  49.    $select{$full}{$prev_next}
  50.   
  51.   显示地址




  52. html;
  53. if ($auto) {
  54.   $player .= "player_change('$pid', '$type');";
  55. }
  56. $player_num ++;
  57. //$player = str_replace(array("\t","\r","\n"), '', $player);
  58. $player = preg_replace("/\s+/s", ' ', $player);
  59. return $player;
  60. }
  61. /*--------------------------------------------- CIMGOO ---------------------------------------<<<---*/
复制代码

此段代码不知道为什么很多都过滤掉了,很奇怪,下面二楼补充代码
也可以到http://club.cimgoo.com/thread-230778-1-1.html查看完整版本。

2、打开./include/javascript/common.js文件。在末尾添加以下代码:


  1. /*--------------------------------------------- CIMGOO --------------------------------------->>>---*/
  2. function player_fullscreen(pid, t)
  3. {
  4. var p = $('player_' + pid);
  5. if(t == 'rm') {
  6.   if(!p.CanStop()) {
  7.    alert('影片未开始,无法全屏!');
  8.   } else {
  9.    alert('将进入全屏模式,按Esc键退出全屏!');
  10.    p.SetFullScreen();
  11.   }
  12. } else if(t == 'wmv' || t == 'mp') {
  13.   if(p.playstate != 2) {
  14.    alert('影片未开始,无法全屏!');
  15.   } else {
  16.    alert('将进入全屏模式,双击可退出全屏!');
  17.    p.DisplaySize = 3;
  18.   }
  19. }
  20. }
  21. function player_expand(pid, t)
  22. {
  23. var pl = $('player_' + pid);
  24. var tb = $('tbody_' + pid);
  25. var bt = $('buttons_' + pid);
  26. var ep = $('expand_' + pid);
  27. var cp = $('cp_' + pid);
  28. if(tb.style.display == 'none') {
  29.   tb.style.display = 'block';
  30.   bt.style.display = 'inline';
  31.   cp.style.display = 'none';
  32.   ep.innerHTML = '关闭';
  33.   if(t == 'rm') {
  34.    if(pl.GetSource() == 'http://cnguy.com/') {
  35.     player_change(pid, t);
  36.    }
  37.    pl.DoPlay();
  38.   } else if(t == 'wmv' || t == 'mp') {
  39.    pl.autostart = true;
  40.    if(pl.filename == 'http://cnguy.com/') {
  41.     player_change(pid, t);
  42.    }
  43.    pl.play();
  44.   }
  45. } else {
  46.   tb.style.display = 'none';
  47.   bt.style.display = 'none';
  48.   ep.innerHTML = '展开';
  49.   cp.style.display = 'inline';
  50.   if(t == 'rm') {
  51.    pl.DoPause();
  52.   } else if(t == 'wmv' || t == 'mp') {
  53.    pl.pause();
  54.   }
  55. }
  56. }
  57. function player_change(pid, t)
  58. {
  59. var p = $('player_'+pid);
  60. var s = $('select_'+pid);
  61. if($('tbody_'+pid).style.display == 'none') {
  62.   player_expand(pid, t);
  63. }
  64. if(t == 'rm') {
  65.   p.DoStop();
  66.   p.SetSource(s.options[s.selectedIndex].value);
  67.   p.DoPlay();
  68. } else if(t == 'wmv' || t == 'mp') {
  69.   p.stop();
  70.   p.filename = s.options[s.selectedIndex].value;
  71.   p.play();
  72. }
  73. self.focus();
  74. }
  75. function player_prev(pid, t)
  76. {
  77. var s = $('select_' + pid);
  78. if(s.selectedIndex == 0) {
  79.   alert('这已经是第一集了!'); return;
  80. }
  81. s.selectedIndex = s.selectedIndex - 1;
  82. player_change(pid, t);
  83. }
  84. function player_next(pid, t)
  85. {
  86. var s = $('select_' + pid);
  87. if(s.selectedIndex == s.options.length - 1) {
  88.   alert('这已经是最后一集了!'); return;
  89. }
  90. s.selectedIndex = s.selectedIndex + 1;
  91. player_change(pid, t);
  92. }
  93. function player_showurl(pid)
  94. {
  95. var u = $('url_' + pid);
  96. if(u.style.display == 'none')
  97. {
  98.   var s = $('select_' + pid);
  99.   var temp = '';
  100.   for(i=0; i<s.options.length ;i++)
  101.   {
  102.    temp += s.options.text + ' ' + s.options.value + '
  103. ';
  104.   }
  105.   u.innerHTML = temp;
  106.   u.style.display = 'block';
  107.   $('download_' + pid).innerHTML = '隐藏地址';
  108. } else {
  109.   u.innerHTML = '';
  110.   u.style.display = 'none';
  111.   $('download_' + pid).innerHTML = '显示地址'
  112. }
  113. }
  114. /*---------------------------------------------CIMGOO---------------------------------------<<<---*/
复制代码
3、打开./include/javascript/editor.js文件。在文件尾添加以下代码:


  1. /*--------------------------------------------- CIMGOO --------------------------------------->>>---*/
  2. function CNGUY_UBB(mod) {
  3. if(wysiwyg) {
  4.   alert('请在代码模式下使用');
  5.   return false;
  6. }
  7. var selection = getSel();
  8. if(selection === false) {
  9.   selection = '';
  10. } else {
  11.   selection += '';
  12. }
  13. var text = showModalDialog("./ubb_dialog.php?mod="+mod, selection, "dialogWidth:28em; dialogHeight:21em; status:yes; help:no; scroll:no");
  14. if (text === undefined) {
  15.   return false;
  16. }
  17. addSnapshot(getEditorContents());
  18. checkFocus();
  19. insertText(text, mb_strlen(text), 0);
  20. addSnapshot(getEditorContents());
  21. checkFocus();
  22. return false;
  23. }
  24. /*---------------------------------------------CIMGOO---------------------------------------<<<---*/
复制代码
4、打开./template/default/post_editor.htm文件(如果你改模板也改过该文件,就到相应位置改这个文件),查找以下:


  1. <!--{if $allowhidecode}--><td><a id="{$editorid}_cmd_hide"><img
  2. src="images/common/bb_hide.gif" title="{lang post_discuzcode_hide}" alt="Hide" /></a></td><!--{/if}-->
复制代码

  1. <td><div class="editor_buttonnormal" id="{$editorid}_cmd_insertplayer" onclick="CNGUY_UBB('player')" onMouseOver="buttonContext(this, 'mouseover')" onMouseOut="buttonContext(this, 'mouseout')"><img src="images/common/bb_player.gif" width="21" height="20"  alt="插入UBB播放器" /></div></td>
复制代码
到此你的播放器就完成了,如果你想修改播放器样式,让他变的更酷更个性化,可以修改include\discuzcode.func.php下的相应代码实现(在上面加入的代码里面找)。关于播放器样式代码可以参考: http://club.cimgoo.com/thread-8389-1-1.html ,文章有详细解释。

下面是完整插件包(直接覆盖),做插件不容易啊(又是两个通宵,专门做个压力和攻击测试),希望大家支持下!>>
UBB.rar (24.58 KB, 下载次数: 360)

[ 本帖最后由 cmc888 于 2007-9-6 21:52 编辑 ]
网络营销
www.cimgoo.com 站长学技术上落伍 站长学营销上西谷!

King

黑社会老大

Rank: 6Rank: 6

UID
625498
积分
1332
帖子
1596
威望
3
在线时间
21 小时
注册时间
2007-1-24
发表于 2007-9-5 13:39:37 |显示全部楼层

在文件尾("?>"之前) 添加以下代码: 很多代码都过滤掉

/*--------------------------------------------- CIMGOO --------------------------------------->>>---*/
$player_ubb_on = true;       //是否开启
$player_num = 0;
$player_pre = mt_rand();
function media_player($type, $url, $auto = 0, $width = 450, $height = 340) {//需默认自动开始播放,请将$auto = 0改为$auto = 1
global $player_pre, $player_num;
$pid = $player_pre.'_'.$player_num;
if($type == 'rm') {
  $player = <<<html
<object classid="CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="$width" height="$height" id="player_{$pid}">
<param name="Console" value="Console_{$pid}">
<param name="Controls" value="ImageWindow">
<param name="AutoStart" value="0">
<param name="Src" value="http://cnguy.com/">
</object>

<object classid="CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="$width" height="32">
<param name="Console" value="Console_{$pid}">
<param name="Controls" value="ControlPanel">
</object>
html;
} else {
  if ($type == 'mp') {
   $width = 280; $height = 69;
  }else {
   $height += 69;
  }
  $player = <<<html
<object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" width="$width" height="$height" id="player_{$pid}">
<param name="AutoStart" value="0">
<param name="ShowStatusBar" value="1">
<!--param name="EnableContextMenu" value="0"-->
<param name="FileName" value="http://cnguy.com/">
</object>
html;
}
$url = explode("\r\n", trim($url));
$select = "播放> <select id=\"select_{$pid}\" onchange=\"player_change('$pid', '$type')\">";
foreach ($url as $key => $value) {
  $value = preg_replace("/<a href=\"(.[^\"']+)\"(.+?)<\/a>/i","\\1", str_replace('\"','"',$value));
  $one = explode('|', $value);
  $one[0] = str_replace('"', '"', trim($one[0]));
  if(!$one[0]) continue;
  ++$count;
  $select .= "<option value=\"{$one[0]}\"> $count ".cutstr(trim($one[1]), 20)." </option>";
}
$select .= '</select>';
if($type != 'mp') {
  $full = "<a href=\"###\" onclick=\"javascript:player_fullscreen('$pid', '$type')\">全屏播放</a> ";
} else { $full = ''; }
$prev_next = "<a href=\"###\" onclick=\"player_prev('$pid', '$type');\">上一集</a> ";
$prev_next .= "<a href=\"###\" onclick=\"player_next('$pid', '$type');\">下一集</a> ";
$cp = '&copy; CIMGOO.COM';
if($count == 1) {
  $select = "<div style=\"display:none\">$select</div>";
  $select .= $cp;
  $prev_next = '';
}
$player = <<<html
<table class="msgborder" style="width:auto;">
<tr class="msgheader"><td style="padding:5px;">
  Web Media Player ( x$count )
</td><td align="right">
  <a href="###" id="expand_{$pid}" onclick="player_expand('$pid', '$type')">展开</a>
</td></tr>
<tbody id="tbody_$pid" style="display:none;">
<tr><td colspan="2">
  $player
</td></tr>
</tbody>
<tr><td colspan="2">
  <span id="cp_$pid" style="float:right">$cp</span>
  <span id="buttons_$pid" style="display:none;">
   <div style="float:right;">$select</div>{$full}{$prev_next}
  </span>
  <a href="###" id="download_$pid" onclick="player_showurl('$pid');">显示地址</a>
</td></tr>
<tr><td colspan="2" id="url_$pid" style="display:none;">
</td></tr>
</table>
html;
if ($auto) {
  $player .= "<script type=\"text/javascript\">player_change('$pid', '$type');</script>";
}
$player_num ++;
//$player = str_replace(array("\t","\r","\n"), '', $player);
$player = preg_replace("/\s+/s", ' ', $player);
return $player;
}
/*--------------------------------------------- CIMGOO ---------------------------------------<<<---*/
网络营销
www.cimgoo.com 站长学技术上落伍 站长学营销上西谷!

使用道具 举报

头像被屏蔽

Banned

UID
780989
积分
302
帖子
369
威望
0
在线时间
0 小时
注册时间
2007-8-17
发表于 2007-9-5 13:39:44 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

使用道具 举报

Rank: 3Rank: 3

UID
441108
积分
407
帖子
452
威望
-1
在线时间
10 小时
注册时间
2006-9-15
发表于 2007-9-5 13:49:30 |显示全部楼层
你那不是沙发

使用道具 举报

Rank: 4

UID
750740
积分
806
帖子
355
威望
4
在线时间
108 小时
注册时间
2007-7-10
发表于 2007-9-5 13:51:45 |显示全部楼层

支持,刚刚的支持!

:D :D :D :D
ccfr.org.cn

使用道具 举报

Forum Legend

Doctor[木钱途的职业!]

Rank: 8Rank: 8

UID
116273
积分
7646
帖子
7760
威望
91
在线时间
1 小时
注册时间
2004-9-1
发表于 2007-9-5 13:57:34 |显示全部楼层
有点意思.
凡事都要自己考虑以后再作判断,不要见得风就是雨!

使用道具 举报

Rank: 4

UID
454244
积分
610
帖子
628
威望
0
在线时间
86 小时
注册时间
2006-10-4
发表于 2007-9-5 14:09:20 |显示全部楼层
非常不错。。。。。。。。。。。。。。。
www.8899.in

使用道具 举报

Rank: 3Rank: 3

UID
680607
积分
414
帖子
277
威望
0
在线时间
33 小时
注册时间
2007-3-13
发表于 2007-9-5 14:49:39 |显示全部楼层
收藏先,但能够说明具体使用则更佳。

使用道具 举报

King

滾í 快滾,咑車滾!

Rank: 6Rank: 6

UID
679377
积分
2260
帖子
2294
威望
29
在线时间
1 小时
注册时间
2007-3-11
发表于 2007-9-5 14:59:32 |显示全部楼层
:) :) :)

使用道具 举报

King

黑社会老大

Rank: 6Rank: 6

UID
625498
积分
1332
帖子
1596
威望
3
在线时间
21 小时
注册时间
2007-1-24
发表于 2007-9-5 15:32:10 |显示全部楼层

回复 8# 的帖子

6.0内置可以选择的MEDIA 但这个灵活度不高  调节都不方便
而UBB刚好解决这个问题 而且安全性应该比MEDIA 高
网络营销
www.cimgoo.com 站长学技术上落伍 站长学营销上西谷!

使用道具 举报

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

fastpost

手机版|Archiver|北京康盛新创科技有限责任公司 ( 京ICP证110024号|京网文[2011]0019-007号 )  

GMT+8, 2012-2-9 12:56 , Processed in 0.119278 second(s), 16 queries , Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部