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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 《eMule[电驴]链接的发布及按钮的添加》for DZ5.0

[复制链接]
论坛的新主人 发表于 2006-8-6 18:03:14 | 显示全部楼层 |阅读模式
根据4.0插件《eMule[电驴]链接的发布及按钮的添加》修改
修改文件:include/discuzcode.func.php

电驴

查找:
  1. $message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);
复制代码

在下面添加:
  1. $message = preg_replace("/\s*\[emule\](.+?)\[\/emule\]\s*/ies", "emu('\\1')", $message);
复制代码


找到:
  1. "/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|ed2k){1}:\/\/([^\["']+?)\](.+?)\[\/url\]/is",
复制代码

替换成:
  1. //电驴
  2.          "/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto){1}:\/\/([^\["']+?)\](.+?)\[\/url\]/is",
  3. //电驴
复制代码


在最后  ?> 前加:
  1. //电
  2. function emu($code) {
  3.         global $discuzcodes;
  4.         $discuzcodes['pcodecount']++;
  5.         $codecount=$discuzcodes['pcodecount'];
  6.         $code = htmlspecialchars(str_replace('\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
  7.         $view = '';$temp = $total = 0;
  8.         $searcharray = explode("\n",$code);
  9.         $view = "<br><br><table width=80% align=center cellspacing=1 cellpadding=5 class=tableborder><tr><td colspan=2 align=center class=header>下面是eMule专用的下载链接,您必须安装eMule才能点击下载</td></tr>";
  10.   foreach($searcharray as $emule) {
  11.                 if($emule!='' && eregi("^ed2k:\/\/",$emule)){
  12.                         $temp++;
  13.                         $emule = dhtmlspecialchars(trim($emule));
  14.                         $emule_array = explode("|",$emule);
  15.                         $total += $emule_array[3];
  16.                         $totalper = esizecount($emule_array[3]);
  17.                         $view.="<tr class=category><td class=smalltxt width=88%><input type="checkbox" name="em$codecount" value="$emule" onclick="em_size('em$codecount');" checked="checked"><a href="$emule"><script language="javascript">document.write(unescape(decodeURIComponent("$emule_array[2]")));</script></a></td><td class=smalltxt align=center>$totalper</td></tr>";
  18.                 } else {
  19.                         $view.="<tr class=category><td colspan=2 class=smalltxt align=center>地址不正确</td></tr>";
  20.                 }
  21.         }
  22.   $total=esizecount($total);
  23.         $view.="<tr><td align=left><input type="checkbox" id="checkall_em$codecount" onclick="echeckAll('em$codecount',this.checked)" checked="checked"/> <label for="checkall_em$codecount">全选</label> <input type="button" value="下载选中的文件" onclick="download('em$codecount',0,1)"> <input type="button" value="复制选中的链接" onclick="copy('em$codecount')"><div id="ed2kcopy_em$codecount" style="position:absolute;height:0px;width:0px;overflow:hidden;"></div></td><td class=smalltxt align=center id="size_em$codecount">$total</div></table><br>";

  24.         $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "<div class="eMuleMain">$view</div></div>";
  25.         $discuzcodes['codecount']++;
  26.         return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
  27. }


  28. function esizecount($filesize) {
  29.         if($filesize >= 1073741824) {
  30.                 $filesize = round($filesize / 1073741824 * 100) / 100 . ' G';
  31.         } elseif($filesize >= 1048576) {
  32.                 $filesize = round($filesize / 1048576 * 100) / 100 . ' M';
  33.         } elseif($filesize >= 1024) {
  34.                 $filesize = round($filesize / 1024 * 100) / 100 . ' K';
  35.         } else {
  36.                 $filesize = $filesize . ' bytes';
  37.         }
  38.         return $filesize;
  39. }
复制代码


2.修改./include/common.js
在结尾添加:
  1. function echeckAll(str,checked) {
  2.     var a = document.getElementsByName(str);
  3.     var n = a.length;

  4.     for (var i = 0; i < n; i++) {
  5.         a[i].checked = checked;
  6.     }
  7.     em_size(str);
  8. }

  9. function download(str, i, first) {
  10.     var a = document.getElementsByName(str);
  11.     var n = a.length;

  12.     for (var i = i; i < n; i++) {
  13.         if(a[i].checked) {
  14.             window.location=a[i].value;
  15.             if (first)
  16.                 timeout = 6000;
  17.             else
  18.                 timeout = 500;
  19.             i++;
  20.             window.setTimeout("download('"+str+"', "+i+", 0)", timeout);
  21.             break;
  22.         }
  23.     }

  24. }

  25. function copy(str) {
  26.     var a = document.getElementsByName(str);
  27.     var n = a.length;
  28.     var ed2kcopy = document.getElementById("ed2kcopy_"+str)
  29.     ed2kcopy.innerHTML = ""
  30.     for (var i = 0; i < n; i++) {
  31.         if(a[i].checked)
  32.         {
  33.             ed2kcopy.innerHTML += a[i].value;
  34.             ed2kcopy.innerHTML += "<br />";
  35.         }
  36.     }
  37.         var rng = document.body.createTextRange();
  38.         rng.moveToElementText(ed2kcopy)
  39.         rng.scrollIntoView();
  40.         rng.select();
  41.         rng.execCommand("Copy");
  42.         rng.collapse(false);
  43. }

  44. function em_size(str) {
  45.     var a = document.getElementsByName(str);
  46.     var n = a.length;
  47.     try {
  48.         var input_checkall = document.getElementById("checkall_"+str);
  49.         var size = 0;
  50.         input_checkall.checked = true ;
  51.         for (var i=0; i < n; i++) {
  52.             if (a[i].checked) {
  53.                 var piecesArray = a[i].value.split( "|" );
  54.                 size += piecesArray[3]*1;
  55.             } else {
  56.                 input_checkall.checked = false;
  57.             }
  58.         }
  59.         test = document.getElementById("size_"+str);
  60.         test.innerHTML = gen_size(size, 3, 2);
  61.     } catch (e) {

  62.     }
  63. }

  64. function gen_size(val, li, sepa ) {
  65.     sep = Math.pow(10, sepa); //小数点后的位数
  66.     li = Math.pow(10, li); //开始截断的长度
  67.     retval  = val;
  68.     unit    = 'Bytes';
  69.     if (val >= li*1000000000) {
  70.         val = Math.round( val / (1099511627776/sep) ) / sep;
  71.         unit  = 'TB';
  72.     } else if (val >= li*1000000) {
  73.         val = Math.round( val / (1073741824/sep) ) / sep;
  74.         unit  = 'GB';
  75.     } else if (val >= li*1000) {
  76.         val = Math.round( val / (1048576/sep) ) / sep;
  77.         unit  = 'MB';
  78.     } else if (val >= li) {
  79.         val = Math.round( val / (1024/sep) ) / sep;
  80.         unit  = 'KB';
  81.     }
  82.     return val + unit;
  83. }
复制代码




按钮添加
后台:Discuz! 代码
中新增标签:“emule
图标文件"emule.gif"
将附件上传到:./images/common/emule.gif

在“[详情]”中设置如图,就ok!


[ 本帖最后由 论坛的新主人 于 2006-8-21 09:36 编辑 ]
DZbbs.Net 发表于 2006-8-6 20:59:51 | 显示全部楼层
不错,刚好赶上了
回复

使用道具 举报

shenstef 发表于 2006-8-6 21:05:32 | 显示全部楼层
隔岸观火
回复

使用道具 举报

DZbbs.Net 发表于 2006-8-6 21:06:47 | 显示全部楼层
全选按钮有问题.
回复

使用道具 举报

DZbbs.Net 发表于 2006-8-6 21:13:53 | 显示全部楼层
include/common.js
最后加入以下代码可以解决全选问题

  1. function echeckAll(str,checked) {
  2.     var a = document.getElementsByName(str);
  3.     var n = a.length;

  4.     for (var i = 0; i < n; i++) {
  5.         a[i].checked = checked;
  6.     }
  7.     em_size(str);
  8. }
复制代码
回复

使用道具 举报

zenglw 发表于 2006-8-6 22:45:09 | 显示全部楼层
万分感谢楼主,辛苦啦!
回复

使用道具 举报

renothing 发表于 2006-8-6 23:00:06 | 显示全部楼层
你好像把这个搞反了吧?


CODE:


"/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|ed2k){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",
替换:


CODE:


//电驴
         "/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",
//电驴
在最后  ?> 前加:
回复

使用道具 举报

tianye1990 发表于 2006-8-6 23:15:22 | 显示全部楼层
zhanwei ~
回复

使用道具 举报

 楼主| 论坛的新主人 发表于 2006-8-7 00:03:37 | 显示全部楼层
原帖由 renothing 于 2006-8-6 23:00 发表
你好像把这个搞反了吧?


CODE:


"/\+?)\](.+?)\/is",
替换:


CODE:


//电驴
         "/\+?)\](.+?)\/is",
//电驴
在最后  ?> 前加:


不明白什么意思,我从刚升级5.0就装好了,从没有发现问题,大家放心用吧,只以为看到好些人求次插件,才整理出来的!
回复

使用道具 举报

瓦李李 发表于 2006-8-7 06:43:27 | 显示全部楼层
不错
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-2 02:32 , Processed in 0.474076 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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