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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[原创]贴内支持多媒体在线播放{自定义大小/是否自播}{添加专用按扭}

[复制链接]
zole 发表于 2005-10-30 03:04:06 | 显示全部楼层
还有个Bug..如果协议是mmst://的,它就自动在前面加http://了..怎么让[wmv][/wmv]里面的不转换..
回复

使用道具 举报

fhg007 发表于 2005-11-3 06:00:05 | 显示全部楼层
我装了个自动识别图片地址的插件结果冲突了
现在的的MAV文件都无法放映
全是灰色的
只有RM可以
回复

使用道具 举报

fhg007 发表于 2005-11-3 06:02:27 | 显示全部楼层
  1. <?php

  2. /*
  3. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4. :: [DISCUZ!]  Crossday Discuz! Board                                    ::
  5. :: (c) 2001-2005 Comsenz Technology Ltd ([url]www.discuz.com)[/url]                ::
  6. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  7. :: Author:  Crossday ([email]tech@discuz.com[/email]) Cnteacher ([email]cnteacher@discuz.com[/email]) ::
  8. :: Version: 2.5F   2004/10/01 05:15                                     ::
  9. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  10. */
  11. //fix:  BY pk0909
  12. /*
  13. 1 多出来的空格
  14. 2 bbcode 解析问题
  15. 3 img code 对特殊符号的js未转义
  16. */

  17. if(!defined('IN_DISCUZ')) {
  18.         exit('Access Denied');
  19. }

  20. $searcharray=$replacearray= array();
  21. $post_codecount = $post_phpcodecount = -1;
  22. $codecount = 0 ;

  23. function censor($message) {
  24.         global $_DCACHE;

  25.         require_once(DISCUZ_ROOT.'/forumdata/cache/cache_censor.php');
  26.         return empty($_DCACHE['censor']) ? $message : @preg_replace($_DCACHE['censor']['find'], $_DCACHE['censor']['replace'], $message);
  27. }

  28. function credithide($creditsrequire, $message) {
  29.         if($GLOBALS['credit'] < $creditsrequire && !$GLOBALS['ismoderator']) {
  30.                 return "<b>**** Hidden to Credits Lower Than $creditsrequire ****</b>";
  31.         } else {
  32.                 return '<b>以下信息只有积分大于'.$creditsrequire.'才可以浏览</b><br>'.
  33.                         '==============================<br><br>'.
  34.                         str_replace('\"', '"', $message).'<br><br>'.
  35.                         '==============================';
  36.         }
  37. }

  38. function codedisp($code) {
  39.         global $thisbg, $codecount, $post_codecount, $codehtml;
  40.         $post_codecount++;
  41.         $code = htmlspecialchars(str_replace('\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
  42.         $codehtml[$post_codecount] = "<blockquote class="code"><b class="smalltxt">CODE:</b>  <a href="###" class="smalltxt" onclick="copycode(findobj('code$codecount'));">[点击这里把以下内容复制到剪贴板]</a><hr size=1 color="".BORDERCOLOR.""><div style="padding:5px; font-family:Courier New;" id="code$codecount">$code</div></blockquote>";

  43.         $codecount++;
  44.         return "[\tDISCUZ_CODE_$post_codecount\t]";
  45. }

  46. //[HACK]自动解析图片URL By Bob Gao
  47. function parseurl($message) {
  48.         return preg_match("/\[code\].+?\[\/code\]/is", $message) ? $message :
  49.                 preg_replace(        array(
  50.                                         "/(?<=[^\]a-z0-9-="'\\/])((https?|ftp|gopher|news|telnet|mms|rtsp):\/\/|www\.)([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+)(.jpg|.png|.gif)/i",
  51.                                         "/(?<=[^\]a-z0-9-="'\\/])((https?|ftp|gopher|news|telnet|mms|rtsp):\/\/|www\.)([a-z0-9\/\-_+=.~!%@?#%&;:$\\()|]+)/i",
  52.                                         "/(?<=[^\]a-z0-9\/\-_.~?=:.])([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4}))/i"
  53.                                 ), array(
  54.                                         "[img]\\0[/img]",
  55.                                         "[url]\\1\\3[/url]",
  56.                                         "[email]\\0[/email]"
  57.                                 ), ' '.$message);
  58. }
  59. //[HACK]自动解析图片URL By Bob Gao

  60. function postify($message, $smileyoff, $bbcodeoff, $allowsmilies = 1, $allowhtml = 0, $allowbbcode = 1, $allowimgcode = 1) {
  61.         global $credit, $tid, $discuz_uid, $codehtml, $post_codecount, $thisbg, $highlight, $table_posts, $db, $searcharray, $replacearray, $ismoderator,$phpcodehtml,$post_phpcodecount;

  62.         if(!$bbcodeoff && $allowbbcode) {
  63.                 $message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);
  64.             $message = preg_replace("/\s*\[php\](.+?)\[\/php\]\s*/ies", "phpcodedisp('\\1')", $message);
  65.         }

  66.         if(!$allowhtml) {
  67.                 $message = dhtmlspecialchars($message);
  68.         }

  69.         if(!$smileyoff && $allowsmilies) {

  70.                 if(is_array($GLOBALS['_DCACHE']['smilies'])) {
  71.                         foreach($GLOBALS['_DCACHE']['smilies'] as $smiliey) {
  72.                                 $message = str_replace($smiliey['code'], "<img src="".SMDIR."/$smiliey[url]" align="absmiddle" border="0">",$message);
  73.                         }
  74.                 }
  75.         }

  76.         if(!$bbcodeoff && $allowbbcode) {

  77.                 if(empty($searcharray['bbcode_regexp']) || empty($replacearray['bbcode_regexp']) || empty($searcharray['bbcode_str']) || empty($replacearray['bbcode_str'])) {
  78.                         $searcharray['bbcode_regexp'] = array(
  79.                                 "/\s*\[quote\][\n\r]*(.+?)[\n\r]*\[\/quote\]\s*/is",
  80.                                 "/(\[box=(#[0-9A-F]{6}|[a-z]+)\])[\n\r]*(.+?)[\n\r]*(\[\/box\])/is",
  81.                                 "/\[url\]\s*([url]www.|https?:[/url]\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/){1}([^\["']+?)\s*\[\/url\]/ie",
  82.                                 "/\[url=www.([^\["']+?)\](.+?)\[\/url\]/is",
  83.                                 "/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms){1}:\/\/([^\["']+?)\](.+?)\[\/url\]/is",
  84.                                 "/\[email\]\s*([A-Za-z0-9\-_.]+)@([A-Za-z0-9\-_]+[.][A-Za-z0-9\-_.]+)\s*\[\/email\]/i",
  85.                                 "/\[email=([A-Za-z0-9\-_.]+)@([A-Za-z0-9\-_]+[.][A-Za-z0-9\-_.]+)\](.+?)\[\/email\]/is",
  86.                                 "/\[color=([#0-9a-zA-Z]{3,10})\]/i",
  87.                                 "/\[size=([\-0-9]{1,2})\]/i",
  88.                                 "/\[font=([^\[]+?)\]/i",
  89.                                 "/\[align=(left|right|center)\]/i",
  90.                                 "/\[center\]/i"
  91.                         );
  92.                         $replacearray['bbcode_regexp'] = array(
  93.                                 "<br><br><center><table border="0" width="90%" cellspacing="0" cellpadding="0"><tr><td>  Quote:</td></tr><tr><td><table border="0" width="100%" cellspacing="1" cellpadding="10" bgcolor="".BORDERCOLOR.""><tr><td width="100%" bgcolor="".ALTBG2."" style="word-break:break-all">\\1</td></tr></table></td></tr></table></center><br>",
  94.                                 "<blockquote style="background-color: \\2 ;"><span class="bold">$title</span>\\3</blockquote>",
  95.                                 "cuturl('\\1\\2')",
  96.                                 "<a href="http://www.\\1" target="_blank">\\2</a>",
  97.                                 "<a href="\\1://\\2" target="_blank">\\3</a>",
  98.                                 "<a href="mailto:\\1@\\2">\\1@\\2</a>",
  99.                                 "<a href="mailto:\\1@\\2">\\3</a>",
  100.                                 "<font color="\\1">",
  101.                                 "<font size="\\1">",
  102.                                 "<font face="\\1">",
  103.                                 "<p align="\\1">",
  104.                                 "<p align="center">"
  105.                         );

  106.                         if($GLOBALS['_DCACHE']['bbcodes']) {
  107.                                 $searcharray['bbcode_regexp'] = array_merge($searcharray['bbcode_regexp'], $searcharray['bbcode_regexp'], $GLOBALS['_DCACHE']['bbcodes']['searcharray']);
  108.                                 $replacearray['bbcode_regexp'] = array_merge($replacearray['bbcode_regexp'], $replacearray['bbcode_regexp'], $GLOBALS['_DCACHE']['bbcodes']['replacearray']);
  109.                                 unset($GLOBALS['_DCACHE']['bbcodes']);
  110.                         }

  111.                         $searcharray['bbcode_str'] = array(
  112.                                 '[/color]', '[/size]', '[/font]', '[/align]', '[b]', '[/b]',
  113.                                 '[i]', '[/i]', '[u]', '[/u]', '[list]', '[list=1]', '[list=a]',
  114.                                 '[list=A]', '[*]', '[/list]','[/center]'
  115.                         );

  116.                         $replacearray['bbcode_str'] = array(
  117.                                 '</font>', '</font>', '</font>', '</p>', '<b>', '</b>', '<i>',
  118.                                 '</i>', '<u>', '</u>', '<ul>', '<ol type=1>', '<ol type=a>',
  119.                                 '<ol type=A>', '<li>', '</ul></ol>','</p>'
  120.                         );      
  121.                 }               

  122.                 @$message = str_replace($searcharray['bbcode_str'], $replacearray['bbcode_str'],
  123.                                 preg_replace($searcharray['bbcode_regexp'], $replacearray['bbcode_regexp'], $message));

  124.                 if(preg_match("/\[hide=?\d*\].+?\[\/hide\]/is", $message)) {
  125.                         if(stristr($message, '[hide]')) {
  126.                                 $query = $db->query("SELECT pid FROM $table_posts WHERE tid='$tid' AND authorid='$discuz_uid' LIMIT 1");
  127.                                 if($ismoderator || $db->result($query, 0)) {
  128.                                         $message = preg_replace("/\[hide\]\s*(.+?)\s*\[\/hide\]/is", "<span class="bold">以下信息只有回复者才可以浏览</span><br>==============================<br><br>\\1<br><br>==============================", $message);
  129.                                 } else {
  130.                                         $message = preg_replace("/\[hide\](.+?)\[\/hide\]/is", "<b>***** 以下信息只有回复者才可以浏览 *****</b>", $message);
  131.                                 }
  132.                         }
  133.                         $message = preg_replace("/\[hide=(\d+)\]\s*(.+?)\s*\[\/hide\]/ies", "credithide(\\1,'\\2')", $message);
  134.                 }

  135.         }

  136.         if(!$bbcodeoff && $allowimgcode) {
  137.                 if(empty($searcharray['imgcode']) || empty($replacearray['imgcode'])) {
  138.                         $searcharray['imgcode'] = array(
  139.                                 "/\[swf\]\s*([^\[]+?)\s*\[\/swf\]/ies",
  140.                                 "/\[img\]\s*([^\[]+?)\s*\[\/img\]/ies",
  141.         "/\[wmv\]\s*(.+?)\s*\[\/wmv\]/ies",
  142.         "/\[rm\]\s*(.+?)\s*\[\/rm\]/ies",
  143.         "/\[wmv=(\d+?)[x|\,](\d+?)[x|\,](\d+?)\]\s*(.+?)\s*\[\/wmv\]/ies",
  144.         "/\[rm=(\d+?)[x|\,](\d+?)[x|\,](\d+?)\]\s*(.+?)\s*\[\/rm\]/ies",                "/\[img=(\d{1,3})[x|\,](\d{1,3})\]\s*([^\[]+?)\s*\[\/img\]/ies"
  145.                         );
  146.                         $replacearray['imgcode'] = array(
  147.                                 "bbcodeurl('\\1', ' <img src="images/attachicons/flash.gif" align="absmiddle"> <a href="%s" target="_blank">Flash: %s</a> ')",
  148.                                 "bbcodeurl('\\1', '<img src="%s" border="0" onload="if(this.width>screen.width*0.55) {this.resized=true; this.width=screen.width*0.55; this.alt=\'Click here to open new window\';}" onmouseover="if(this.resized) this.style.cursor=\'hand\';" onclick="if(this.resized) {window.open(this.src);}">')",
  149.         "bbcodeurl('\\1', '<object align="middle" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" class="OBJECT" id="MediaPlayer" width="480" height="360" ><PARAM NAME="AutoStart" VALUE="0" ><param name="ShowStatusBar" value="-1"><param name="Filename" value="%s"><embed type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" flename="mp" src="%s" width="480" height="360"></embed></object>')",
  150.         "bbcodeurl('\\1', '<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" id="Player" width="480" height="360" viewastext><param name="Autostart" value="0"><param name="CONTROLS" value="ImageWindow"><param name="CONSOLE" value="_master"><param name="LOOP" value="-1"><param name="CENTER" value="0"></object><br><object classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA height=64 id=Player width=480 VIEWASTEXT><param name="_ExtentX" value="18256"><param name="_ExtentY" value="794"><param name="Autostart" value="0"><param name="LOOP" value="0"><param name="CENTER" value="0"><param name="BACKGROUNDCOLOR" value="#000000"><param name="SRC" value="\\1"></object>')",
  151.         "bbcodeurl('\\3', '<object width="\\1" height="\\2" align="middle" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" class="OBJECT" id="MediaPlayer"><param name="Autostart" VALUE="\\3"><param name="ShowStatusBar" VALUE="\\3"><param name="Filename" value="\\4"><embed type="application/x-oleobject" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" flename="mp" src="\\4"></embed></object>')",
  152.         "bbcodeurl('\\3', '<object width="\\1" height="\\2" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" id="Player" viewastext><param name="Autostart" value="\\3"><param name="CONTROLS" value="ImageWindow"><param name="CONSOLE" value="_master"><param name="LOOP" value="-1"><param name="CENTER" value="0"></object><br><object classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA height=64 id=Player width="\\1" VIEWASTEXT><param name="_ExtentX" value="18256"><param name="_ExtentY" value="794"><param name="Autostart" value="\\3"><param name="LOOP" value="0"><param name="CENTER" value="0"><param name="SRC" value="\\4"></object>')",
  153.                                 "bbcodeurl('\\3', '<img width="\\1" height="\\2" src="%s" border="0">')"
  154.                         );
  155.                 }
  156.                 $message = preg_replace($searcharray['imgcode'], $replacearray['imgcode'], $message);
  157.         }

  158.         for($i = 0; $i <= $post_codecount; $i++) {
  159.                 $message = str_replace("[\tDISCUZ_CODE_$i\t]", $codehtml[$i], $message);
  160.         }

  161.         if($highlight) {
  162.                 foreach(explode('+', $highlight) as $ret) {
  163.                         if($ret) {
  164.                                 $message = preg_replace("/(?<=[\s"\]>()]|^)(".preg_quote($ret, '/').")(([\.,;-?!()]+)?([\s"<\[]|$))/siU", "<u><b><font color="#FF0000">\\1</font></b></u>\\2", $message);
  165.                         }
  166.                 }
  167.         }
  168.         for($i = 0; $i <= $post_phpcodecount; $i++) {
  169.                         $message = str_replace("|\tDISCUZ_PHPCODE_$i\t|", $phpcodehtml[$i], $message);
  170.             }

  171.         $message = nl2br(str_replace(
  172.                                                         array("\t", '   ', '  '),
  173.                                                         array('        ', '   ', '  ')
  174.                                                         , $message)
  175.                                         );

  176.         return $message;
  177. }

  178. function cuturl($url) {
  179.         $length = 65;
  180.         $urllink = "<a href="".(substr(strtolower($url), 0, 4) == 'www.' ? "http://$url" : $url).'" target="_blank">';
  181.         if(strlen($url) > $length) {
  182.                 $url = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));
  183.         }
  184.         $urllink .= $url.'</a>';
  185.         return $urllink;
  186. }

  187. function bbcodeurl($url, $tags) {
  188.         if(!preg_match("/<.+?>/s",$url)) {
  189.                 if(!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'https:', 'ftp://', 'rtsp:/', 'mms://'))) {
  190.                         $url = 'http://'.$url;
  191.                 }
  192.                 return str_replace('submit', '', sprintf($tags, $url, $url));
  193.         } else {
  194.                 return ' '.$url;
  195.         }
  196. }

  197. function phpcodedisp($code) {
  198.         global $thisbg, $codecount, $post_phpcodecount, $phpcodehtml,$post;
  199.         $post_phpcodecount++;
  200.         $phpcode = phphighlite(str_replace("\\"", """, $code));
  201.                 $phpcodeid ="pcode_$post[pid]_$post_phpcodecount";
  202.                 $phpcodehtml[$post_phpcodecount] = "<blockquote class="code"><b class="smalltxt">PHP:</b>  <a href="###" class="smalltxt" onclick="copycode(findobj('$phpcodeid'));">[点击这里把以下内容复制到剪贴板]</a><hr size=1 color="".BORDERCOLOR.""><div style="padding:5px; font-family:Courier New;" id="$phpcodeid">$phpcode</div></blockquote>";
  203.         $phpcodecount++;
  204.         return "|\tDISCUZ_PHPCODE_$post_phpcodecount\t|";
  205. }
  206. function phphighlite($code) {
  207.         if(!strpos($code,"&lt;?\n") && !strpos($code,'&lt;?') &&  substr($code,0,2)!='&lt;?'){
  208.                 $code='<'.'?'.trim($code).' ?'.'>';
  209.                 $addedtags=1;
  210.         }
  211.         ob_start();
  212.         $oldlevel=error_reporting(0);
  213.         highlight_string($code);
  214.         error_reporting($oldlevel);
  215.         $buffer = ob_get_contents();
  216.         ob_end_clean();
  217.         if ($addedtags) {
  218.                 $openingpos = strpos($buffer,'&lt;?');
  219.                 $closingpos = strrpos($buffer, '?');
  220.                 $buffer=substr($buffer, 0, $openingpos).substr($buffer, $openingpos+5, $closingpos-($openingpos+5)).substr($buffer, $closingpos+5);
  221.         }
  222.         $buffer = str_replace(""", """, $buffer);
  223.         $buffer = str_replace("<br />", '', $buffer);
  224.         return $buffer;
  225. }

  226. function clear_bbcode($code){
  227.         $rep = array('[', ']', ':', '(', ')');
  228.         for ($x = 0; $x < count($rep); $x++) {
  229.                 $code = str_replace($rep[$x], '&#'.ord($rep[$x]).';', $code);
  230.         }
  231.         return $code;
  232. }
  233. ?>
复制代码
回复

使用道具 举报

yqlee 发表于 2005-11-4 08:44:04 | 显示全部楼层
支持
回复

使用道具 举报

cankeeping 发表于 2005-11-4 16:24:06 | 显示全部楼层
代码放进去以后,放表话题的页面全部错位了,这是怎么回事呀~~~~~~~~
回复

使用道具 举报

cankeeping 发表于 2005-11-4 16:25:41 | 显示全部楼层
我是个菜鸟,楼主,不如将这两个文件做好(反正这两个文件与风格无关),上传上来,我们来下载,同意的举手~~~~~~~~
回复

使用道具 举报

xuzhitao 发表于 2005-11-5 13:25:52 | 显示全部楼层

好,刚用了,顶!!

好,刚用了,顶!!
回复

使用道具 举报

小粉腸 发表于 2005-11-5 17:45:37 | 显示全部楼层
原帖由 oytktk 于 2005-7-2 18:29 发表
另外补充一下
发表格式为:



  1. [Wmv=x,y,n]视频URL[/Wmv]
  2. [RM=x,y,n]视频URL[/RM]
复制代码


X=宽
Y=高
N=1/0
     1=自动播放
     0=手动播放


請問, 這code要放在哪裡呢?
回复

使用道具 举报

sylvia_h 发表于 2005-11-11 14:38:55 | 显示全部楼层
晕,为什么我装了以后,点击按钮不会弹出提示窗口?然后左下角提示网页有错误!
回复

使用道具 举报

 楼主| oytktk 发表于 2005-11-11 15:17:56 | 显示全部楼层
原帖由 sylvia_h 于 2005-11-11 14:38 发表
晕,为什么我装了以后,点击按钮不会弹出提示窗口?然后左下角提示网页有错误!


加按扭的时候出错了..也就是bbcode.js,和post_bbinsert.htm文件改时的问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 06:52 , Processed in 0.137012 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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