立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT升级至v2.1
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的免费网店托管-卖否
PHP实战精英班培训 | LAMP培训大连
Discuz!收费服务内容及价格
论坛免费升级 手握手
Discuz!/ECShop 专用官方虚拟主机
注册付费广告征集
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
第二届PHP中国开源发展及人才状况调查
发新话题
打印

[插件] 【eMule[电驴]链接的发布及按钮的添加】For 5.5(5.14修正空格问题)[版主安装测试通过]

【eMule[电驴]链接的发布及按钮的添加】For 5.5(5.14修正空格问题)[版主安装测试通过]

引用:
本插件由版主sakurakawaii于07年5月11日16:01分
在Windows XP Discuz!5.5.0标准模版 IE6 Mysql4.1下测试安装无错
本测试仅代表此插件安装无错,不包括今后长期使用中可能出现的问题
《eMule[电驴]链接的发布及按钮的添加》For Discuz!5.5.0(真正完美无错版)

☆★☆声明:版权属于Discuz原有作者!功能仿照VeryCD。如需转载,请注明转自Discuz官方!

#############################################
插件名称:[eMule]电驴电骡链接的发布及按钮的添加 For Discuz!5.5.0(真正完美无错版)
适用版本:Discuz!5.5.0 GBK
作  者:未知
修 改 者:sakurakawaii   sospost   小铭铭
最后更新:2007年5月14日
数据结构:未修改数据库
演示地址:http://www.007mov.com/viewthread.php?tid=26079
特别说明:如果您觉着这个作品侵犯了您的权利请您和我联系
修正:1.原版本复制无效问题 2.表格少量美化 3.空格问题

5月14日之前安装的请参照7楼重新修改一步
#############################################

1.修改 ./include/discuzcode.func.php

查找:
复制内容到剪贴板
代码:
$message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "codedisp('\\1')", $message);
在下面添加:
复制内容到剪贴板
代码:
$message = preg_replace("/\s*\[emule\](.+?)\[\/emule\]\s*/ies", "emu('\\1')", $message);
查找:
复制内容到剪贴板
代码:
return $htmlon || $allowhtml ? $message : nl2br(str_replace(array("\t", '   ', '  '), array('        ', '   ', '  '), $message));
替换为:
复制内容到剪贴板
代码:
$message = $htmlon || $allowhtml ? $message : nl2br(str_replace(array("\t", ' ', ' '), array(' ', ' ', ' '), $message));
             return str_replace("/<br />","/\n",$message);
查找:
复制内容到剪贴板
代码:
"/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",
替换为:
复制内容到剪贴板
代码:
"/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",
查找:
复制内容到剪贴板
代码:
?>
在上面添加:
复制内容到剪贴板
代码:
function emu($code) {
        global $discuzcodes;
        $discuzcodes['pcodecount']++;
        $codecount=$discuzcodes['pcodecount'];
        $code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
        $view = '';$temp = $total = 0;
        $searcharray = explode("\n",$code);
           $view = "<table width=90% align=center cellspacing=1 cellpadding=5 class=tableborder><tr><td colspan=2 align=center class=header>下面是eMule专用的下载链接,您必须<a href='http://www.emule.org.cn/download/' target='_blank'>安装eMule</a>才能点击下载</td></tr>";
  foreach($searcharray as $emule) {
                if($emule!='' && eregi("^ed2k:\/\/",$emule)){
                        $temp++;
                        $emule = dhtmlspecialchars(trim($emule));
                        $emule_array = explode("|",$emule);
                        $total += $emule_array[3];
                        $totalper = esizecount($emule_array[3]);
                        $view.="<tr class=category><td class=smalltxt width=90%><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>";
                }
        }
  $total=esizecount($total);
        if($temp>0){
                 $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=\"ed2kcopy('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>";
        }
        $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "<div class=\"eMuleMain\">$view</div></div>";
        $discuzcodes['codecount']++;
        return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
}


function esizecount($filesize) {
        if($filesize >= 1073741824) {
                $filesize = round($filesize / 1073741824 * 100) / 100 . ' G';
        } elseif($filesize >= 1048576) {
                $filesize = round($filesize / 1048576 * 100) / 100 . ' M';
        } elseif($filesize >= 1024) {
                $filesize = round($filesize / 1024 * 100) / 100 . ' K';
        } else {
                $filesize = $filesize . ' bytes';
        }
        return $filesize;
}
2.修改./include/javascript/common.js

在结尾添加:
复制内容到剪贴板
代码:
function echeckAll(str,checked) {
var a = document.getElementsByName(str);
var n = a.length;

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

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

for (var i = i; i < n; i++) {
if(a[i].checked) {
window.location=a[i].value;
if (first)
timeout = 6000;
else
timeout = 500;
i++;
window.setTimeout("download('"+str+"', "+i+", 0)", timeout);
break;
}
}

}

function ed2kcopy(str) {
var a = document.getElementsByName(str);
var n = a.length;
var ed2kcopy = document.getElementById("ed2kcopy_"+str)
ed2kcopy.innerHTML = ""
for (var i = 0; i < n; i++) {
if(a[i].checked)
{
ed2kcopy.innerHTML += a[i].value;
ed2kcopy.innerHTML += "<br />";
}
}
var rng = document.body.createTextRange();
rng.moveToElementText(ed2kcopy)
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
}

function em_size(str) {
var a = document.getElementsByName(str);
var n = a.length;
try {
var input_checkall = document.getElementById("checkall_"+str);
var size = 0;
input_checkall.checked = true ;
for (var i=0; i < n; i++) {
if (a[i].checked) {
var piecesArray = a[i].value.split( "|" );
size += piecesArray[3]*1;
} else {
input_checkall.checked = false;
}
}
test = document.getElementById("size_"+str);
test.innerHTML = gen_size(size, 3, 2);
} catch (e) {

}
}

function gen_size(val, li, sepa ) {
sep = Math.pow(10, sepa); //小数点后的位数
li = Math.pow(10, li); //开始截断的长度
retval = val;
unit = 'Bytes';
if (val >= li*1000000000) {
val = Math.round( val / (1099511627776/sep) ) / sep;
unit = 'TB';
} else if (val >= li*1000000) {
val = Math.round( val / (1073741824/sep) ) / sep;
unit = 'GB';
} else if (val >= li*1000) {
val = Math.round( val / (1048576/sep) ) / sep;
unit = 'MB';
} else if (val >= li) {
val = Math.round( val / (1024/sep) ) / sep;
unit = 'KB';
}
return val + unit;
}
3.后台按钮添加

后台:Discuz! 代码
中新增标签:“emule”
图标文件"bb_emule.gif"
将按钮的图片bb_emule.gif,上传到./images/common/下



4、修改 ./include/javascript/bbcode.js

在最下方增加:
复制内容到剪贴板
代码:
function bb_emule() {
if (helpmode){
alert('ed2k标记\\n使用ed2k标记,可以使输入的ed2k地址以超链接的形式在帖子中显示.\\n使用方法:\\n [ed2k]ed2k下载地址[/ed2k]');
} else if (document.selection && document.selection.type == "Text") {
var range = document.selection.createRange();
range.text = "[emule]" + range.text + "[/emule]";
} else if (advmode) {
AddTxt="[emule] [/emule]";
AddText(AddTxt);
} else {
txt=prompt('ed2k链接',"ed2k://");
if (txt!=null) {
AddTxt="\r[emule]"+txt;
AddText(AddTxt);
AddText("[/emule]");
}
}
}
发贴格式为:

[emule]ed2k://
ed2k://
ed2K://
[/emule]
注意是一个链接一换行

如果你安装还有问题的话可以PM我来帮你!

[ 本帖最后由 sakurakawaii 于 2007-5-14 13:57 编辑 ]

附件

bb_emule.gif (1005 Bytes)

2007-5-10 23:43

bb_emule.gif

本帖最近评分记录
  • cmc888 金币 +1 绝对的好人! 2007-5-12 17:20
沙发再次感谢sakurakawaii 斑竹!你真的很热心!
演示请看签名站!!!!!!!!!
【点击进入:::哟哟城市:::】
新网互联 COM,NET 50元/年 联系QQ:5166143
★淘宝鞋店★ 主营NIKE ADIDAS 篮球鞋、板鞋
那帖有错。
好,偶去试试这个
7.30日在次更新第一步最下面文件内容,就解决了空格及折行问题
1.修改 ./include/discuzcode.func.php

查找:
复制内容到剪贴板
代码:
function emu($code) {
        global $discuzcodes;
        $discuzcodes['pcodecount']++;
        $codecount=$discuzcodes['pcodecount'];
        $code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
        $view = '';$temp = $total = 0;
        $searcharray = explode("\n",$code);
           $view = "<br><br><table width=80% align=center cellspacing=1 cellpadding=5 class=tableborder><tr><td colspan=2 align=center class=header>下面是eMule专用的下载链接,您必须<a href='http://www.emule.org.cn/download/' target='_blank'>安装eMule</a>才能点击下载</td></tr>";
  foreach($searcharray as $emule) {
                if($emule!='' && eregi("^ed2k:\/\/",$emule)){
                        $temp++;
                        $emule = dhtmlspecialchars(trim($emule));
                        $emule_array = explode("|",$emule);
                        $total += $emule_array[3];
                        $totalper = esizecount($emule_array[3]);
                        $view.="<tr class=category><td class=smalltxt width=100%><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>";
                }
        }
  $total=esizecount($total);
        if($temp>0){
                 $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=\"ed2kcopy('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>";
        }
        $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "<div class=\"eMuleMain\">$view</div></div>";
        $discuzcodes['codecount']++;
        return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
}


function esizecount($filesize) {
        if($filesize >= 1073741824) {
                $filesize = round($filesize / 1073741824 * 100) / 100 . ' G';
        } elseif($filesize >= 1048576) {
                $filesize = round($filesize / 1048576 * 100) / 100 . ' M';
        } elseif($filesize >= 1024) {
                $filesize = round($filesize / 1024 * 100) / 100 . ' K';
        } else {
                $filesize = $filesize . ' bytes';
        }
        return $filesize;
}
替换为
复制内容到剪贴板
代码:
function emu($code) {
        global $discuzcodes;
        $discuzcodes['pcodecount']++;
        $codecount=$discuzcodes['pcodecount'];
        $code = htmlspecialchars(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is", "\\1", $code)));
        $view = '';$temp = $total = 0;
        $searcharray = explode("\n",$code);
           $view = "<table width=90% align=center cellspacing=1 cellpadding=5 class=tableborder><tr><td colspan=2 align=center class=header>下面是eMule专用的下载链接,您必须<a href='http://www.emule.org.cn/download/' target='_blank'>安装eMule</a>才能点击下载</td></tr>";
  foreach($searcharray as $emule) {
                if($emule!='' && eregi("^ed2k:\/\/",$emule)){
                        $temp++;
                        $emule = dhtmlspecialchars(trim($emule));
                        $emule_array = explode("|",$emule);
                        $total += $emule_array[3];
                        $totalper = esizecount($emule_array[3]);
                        $view.="<tr class=category><td class=smalltxt width=90%><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>";
                }
        }
  $total=esizecount($total);
        if($temp>0){
                 $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=\"ed2kcopy('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>";
        }
        $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = "<div class=\"eMuleMain\">$view</div>";
        $discuzcodes['codecount']++;
        return "[\tDISCUZ_CODE_$discuzcodes[pcodecount]\t]";
}


function esizecount($filesize) {
        if($filesize >= 1073741824) {
                $filesize = round($filesize / 1073741824 * 100) / 100 . ' G';
        } elseif($filesize >= 1048576) {
                $filesize = round($filesize / 1048576 * 100) / 100 . ' M';
        } elseif($filesize >= 1024) {
                $filesize = round($filesize / 1024 * 100) / 100 . ' K';
        } else {
                $filesize = $filesize . ' bytes';
        }
        return $filesize;
}
[ 本帖最后由 小铭铭 于 2007-7-30 19:38 编辑 ]
本帖最近评分记录
全选本来就没问题的吧。。。
出错了:
出现文件大小折行

附件

1.JPG (15.99 KB)

2007-5-11 18:39

全选前

1.JPG

2.JPG (15.14 KB)

2007-5-11 18:39

全选后

2.JPG

给出你的网站地址....我看下先
发新话题
版块跳转