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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] DISCUZ社区专用UBB播放器for ALL

[复制链接]
998w 发表于 2007-3-14 19:03:12 | 显示全部楼层 |阅读模式
=========================
DISCUZ社区专用UBB播放器
适合版本:Discuz! 6.0  5.5    5.0
发布日期:2007-3-14
修 改 人: 无语
技术支持:Discuz!官方论坛
演示地址:http://bbs.wuyouw.com/thread-3167-1-1.html
问题反馈:http://bbs.wuyouw.com/thread-3168-1-1.html
申    明:此插件并非本人原创,来源于网络,经本人多次修改测试后才发布!
          其实学习做插件及其他最好的老师就是百度,DZ好多插件都是仿照
          PW,DV的插件而修改来的。相反DZ好的插件也被他们修改利用。

=========================
6.0版的修改方法与5.5版雷同,只是请注意三楼的第5步修改方法即可!!
注意:手动修改中提供了5.0的修改方法,请仔细按照修改方法修改!!!
另外提供几套在线图标 http://www1.discuz.net/thread-548469-1-1.html
功能简介:
         1.增加下列播放器标签
      
      
  1. [mp]http://www.xxx.com/1.mp3[/mp]
复制代码

                //用于播放mp3等无图像的media player可播放的文件

               
  1. [wmv]http://www.xxx.com/1.wmv[/wmv]
复制代码

                //用于播放media player可播放的文件

              
  1. [wmv=450,350,1]http://www.xxx.com/1.wmv[/wmv]
复制代码

                //用于播放media player可播放的文件 带可控的[宽度,高度,自动或手动]参数

              
  1. [rm]http://www.xxx.com/1.rm[/rm]
复制代码

                //用于播放real player可播放的文件

              
  1. [rm=450,350,1]http://www.xxx.com/1.rm[/rm]
复制代码

                //用于播放real player可播放的文件 带可控的[宽度,高度,自动或手动]参数


        2.有图像的可以全屏观看
        3.支持一页内插入多个播放器(至多有一个播放器设置为自动播放,其他设置为手动)
                4.支持带有空格的url
                5.带有可控开关
        6.提供媒体文件url使播放器更加人性化

使用说明:   
       安装插件有风险, 请不要让插件的功能左右您的意志。在安装本插件前请先备份,然后将文件包下的所有文件夹和文件直接上传到论坛根目录即可。

         考虑有部份人已安装其他插件,在此将安装详细过程发布出来,以供大家学习,希望大家有好的插件也拿出来分享,我们要坚决抵制收费插件,就像抵制日货在中国流通一样!!!

安装方法
1.上传wuyouw_webplayer.php文件到论坛根目录
2.打开include/javascript/common.js
在最下面加上
  1. /*------------------DISCUZ社区专用UBB播放器---------代码开始------------------*/
  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://www.wuyouw.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://www.wuyouw.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[i].text + ' <a href="' + s.options[i].value + '" target="_blank">' + s.options[i].value + '</a><br />';
  103.                 }
  104.                 u.innerHTML = temp;
  105.                 u.style.display = 'block';
  106.                 $('download_' + pid).innerHTML = '隐藏地址';
  107.         } else {
  108.                 u.innerHTML = '';
  109.                 u.style.display = 'none';
  110.                 $('download_' + pid).innerHTML = '显示地址'
  111.         }
  112. }
  113. /*---------------DISCUZ社区专用UBB播放器----代码结束---------------------------*/
复制代码


注意:修改未完成,继续请见二楼和三楼!

*****此内容已隐藏,回复可见*****



[ 本帖最后由 998w 于 2007-8-2 18:13 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

2

查看全部评分

 楼主| 998w 发表于 2007-3-14 19:03:34 | 显示全部楼层
3.打开include/javascript/editor.js
在最下面加上
  1. /*------------------DISCUZ社区专用UBB播放器---------代码开始------------------*/
  2. function DISCUZ_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("./wuyouw_webplayer.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. /*---------------DISCUZ社区专用UBB播放器----代码结束---------------------------*/
复制代码


4.打开include/discuzcode.func.php(注意:重要文件请注意备份!! )
DZ5.0找到
  1. $message = preg_replace($discuzcodes['searcharray']['imgcode'], $discuzcodes['replacearray']['imgcode'], $message);
  2.         }
复制代码

DZ5.5找到
  1. if(!$bbcodeoff) {
  2.                 $message = preg_replace(array(
  3.                                         ($parsetype != 1 ? "/\[swf\]\s*([^\[\<\r\n]+?)\s*\[\/swf\]/ies" : "//"),
  4.                                         "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies",
  5.                                         "/\[img=(\d{1,4})[x|\,](\d{1,4})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies"
  6.                                 ), $allowimgcode ? array(
  7.                                         ($parsetype != 1 ? "bbcodeurl('\\1', ' <img src="images/attachicons/flash.gif" align="absmiddle" alt="" /> <a href="%s" target="_blank">Flash: %s</a> ')" : ""),
  8.                                         "bbcodeurl('\\1', '<img src="%s" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'%s\');}" onmousewheel="return imgzoom(this);" alt="" />')",
  9.                                         "bbcodeurl('\\3', '<img width="\\1" height="\\2" src="%s" border="0" alt="" />')"
  10.                                 ) : array(
  11.                                         ($parsetype != 1 ? "bbcodeurl('\\1', ' <img src="images/attachicons/flash.gif" align="absmiddle" alt="" /> <a href="%s" target="_blank">Flash: %s</a> ')" : ""),
  12.                                         "bbcodeurl('\\1', '<a href="%s" target="_blank">%s</a>')",
  13.                                         "bbcodeurl('\\3', '<a href="%s" target="_blank">%s</a>')"
  14.                                 ), $message);
  15.         }
复制代码

下面
  1. /*------------------DISCUZ社区专用UBB播放器---------代码开始------------------*/
  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. /*---------------DISCUZ社区专用UBB播放器----代码结束---------------------------*/
复制代码


?>

前面加上
  1. /*------------------DISCUZ社区专用UBB播放器---------代码开始------------------*/
  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. <object classid="CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="$width" height="$height" id="player_{$pid}">
  11.         <param name="Console" value="Console_{$pid}">
  12.         <param name="Controls" value="ImageWindow">
  13.         <param name="AutoStart" value="0">
  14.         <param name="Src" value="http://www.wuyouw.com/">
  15. </object><br />
  16. <object classid="CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" width="$width" height="32">
  17.         <param name="Console" value="Console_{$pid}">
  18.         <param name="Controls" value="ControlPanel">
  19. </object>
  20. html;
  21.         } else {
  22.                 if ($type == 'mp') {
  23.                         $width = 400; $height = 69;
  24.                 }else {
  25.                         $height += 69;
  26.                 }
  27.                 $player = <<<html
  28. <object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" width="$width" height="$height" id="player_{$pid}" style="FILTER: xray()">
  29.         <param name="AutoStart" value="0">
  30.         <param name="ShowStatusBar" value="1">
  31.         <param name="EnableContextMenu" value="0">
  32.         <param name="FileName" value="http://www.wuyouw.com/">
  33. </object>
  34. html;
  35.         }

  36.         $url = explode("\r\n", trim($url));
  37.         $select = "播放&gt; <select id="select_{$pid}" onchange="player_change('$pid', '$type')">";
  38.         foreach ($url as $key => $value) {
  39.                 $value = preg_replace("/<a href="(.[^"']+)"(.+?)<\/a>/i","\\1", str_replace('"','"',$value));
  40.                 $one = explode('|', $value);
  41.                 $one[0] = str_replace('"', '"', trim($one[0]));
  42.                 if(!$one[0]) continue;
  43.                 ++$count;
  44.                 $select .= "<option value="{$one[0]}"> $count ".cutstr(trim($one[1]), 20)." </option>";
  45.         }
  46.         $select .= '</select>';

  47.         if($type != 'mp') {
  48.                 $full = "<a href="###" onclick="javascript:player_fullscreen('$pid', '$type')">全屏播放</a> ";
  49.         } else { $full = ''; }
  50.         $prev_next = "<a href="###" onclick="player_prev('$pid', '$type');">上一集</a> ";
  51.         $prev_next .= "<a href="###" onclick="player_next('$pid', '$type');">下一集</a> ";
  52.         $cp = '&copy; <a href="http://www.wuyouw.com" >wuyouw</a>';
  53.         if($count == 1) {
  54.                 $select = "<div style="display:none">$select</div>";
  55.                 $select .= $cp;
  56.                 $prev_next = '';
  57.         }
  58.         $player = <<<html
  59. <table class="msgborder" style="width:auto;">
  60.         <tr class="msgheader"><td style="padding:5px;">
  61.                 〖DISCUZ社区专用播放器〗 ( 此专辑共<FONT color=red>$count</font>集 )
  62.         </td><td align="right">
  63.                 <a href="###" id="expand_{$pid}" onclick="player_expand('$pid', '$type')">展开</a>
  64.         </td></tr>
  65.         <tbody id="tbody_$pid" style="display:none;">
  66.         <tr><td colspan="2">
  67.                 $player
  68.         </td></tr>
  69.         </tbody>
  70.         <tr><td colspan="2">
  71.                 <span id="cp_$pid" style="float:right">$cp</span>
  72.                 <span id="buttons_$pid" style="display:none;">
  73.                         <div style="float:right;">$select</div>{$full}{$prev_next}
  74.                 </span>
  75.                 <a href="###" id="download_$pid" onclick="player_showurl('$pid');"></a>
  76.         </td></tr>
  77.         <tr><td colspan="2" id="url_$pid" style="display:none;">
  78.         </td></tr>
  79. </table>
  80. html;
  81.         if ($auto) {
  82.                 $player .= "<script type="text/javascript">player_change('$pid', '$type');</script>";
  83.         }
  84.         $player_num ++;
  85.         //$player = str_replace(array("\t","\r","\n"), '', $player);
  86.         $player = preg_replace("/\s+/s", ' ', $player);
  87.         return $player;
  88. }
  89. /*---------------DISCUZ社区专用UBB播放器----代码结束---------------------------*/
复制代码


注意:如果想默认为自动播放,请修改上面代码里的
function media_player($type, $url, $auto = 0, $width = 450, $height = 340) {//需默认自动开始播放,请将$auto = 0改为$auto = 1

[ 本帖最后由 998w 于 2007-4-12 16:44 编辑 ]

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 998w 发表于 2007-3-14 19:05:11 | 显示全部楼层
5.打开templates/default/post_bbinsert.htm(重要文件,注意备份)

  1. <td><div class="editor_buttonnormal" id="{$editorid}_cmd_insertimage" onclick="discuzcode('insertimage')" onMouseOver="buttonContext(this, 'mouseover')" onMouseOut="buttonContext(this, 'mouseout')"><img src="images/common/bb_image.gif" width="21" height="20" title="{lang post_discuzcode_image}" alt="{lang post_discuzcode_image}" /></div></td>
复制代码

下面
  1. <td><div class="editor_buttonnormal" id="{$editorid}_cmd_insertplayer" onclick="DISCUZ_UBB('player')" onMouseOver="buttonContext(this, 'mouseover')" onMouseOut="buttonContext(this, 'mouseout')"><img src="images/common/bb_player.gif" width="21" height="20" title="插入播放器" alt="插入播放器" /></div></td>
复制代码

如果是6.0版本第五步请按下面方法修改:
5.打开templates/default/post_editor.htm(重要文件,注意备份)

  1. <td><a id="{$editorid}_cmd_insertimage"><img src="images/common/bb_image.gif" title="{lang post_discuzcode_image}" alt="Image" /></a></td>
复制代码

下面
  1. <td><a id="{$editorid}_cmd_insertplayer"><img src="images/common/bb_player.gif" title="插入播放器" alt="插入播放器" /></a></td>
复制代码


6.上传bb_player.gif文件到images\common\目录

安装完成,更新缓存 ok

[ 本帖最后由 998w 于 2007-8-2 18:09 编辑 ]
回复

使用道具 举报

gengfu 发表于 2007-3-14 19:05:27 | 显示全部楼层
坐板凳看哦
回复

使用道具 举报

 楼主| 998w 发表于 2007-3-14 19:05:35 | 显示全部楼层
自己占楼,呵呵
回复

使用道具 举报

 楼主| 998w 发表于 2007-3-14 19:06:48 | 显示全部楼层
自己占楼。。。。。。。。。。
回复

使用道具 举报

汪大东 发表于 2007-3-14 19:15:53 | 显示全部楼层
装下侃侃!
回复

使用道具 举报

 楼主| 998w 发表于 2007-3-14 19:23:52 | 显示全部楼层
我晕哟,这都没有人要????
回复

使用道具 举报

zhouguanyou 发表于 2007-3-14 19:28:46 | 显示全部楼层
感谢楼主 真的不错
PS:需要改的文件越少越好!!!
回复

使用道具 举报

ztonline 发表于 2007-3-14 19:30:15 | 显示全部楼层
顶起#!1
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 12:40 , Processed in 0.108239 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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