<?php
require_once(dirname(__FILE__)."/../include/common.inc.php");
require_once(DEDEINC."/channelunit.class.php");
if(!isset($open)) $open = 0;
//读取链接列表
if($open==0)
{
$aid = (isset($aid) && is_numeric($aid)) ? $aid : 0;
if($aid==0) exit(' Request Error! ');
$arcRow = GetOneArchive($aid);
if($arcRow['aid']=='')
{
ShowMsg('无法获取未知文档的信息!','-1');
exit();
}
extract($arcRow, EXTR_SKIP);
$cu = new ChannelUnit($arcRow['channel'],$aid);
if(!is_array($cu->ChannelFields))
{
ShowMsg('获取文档信息失败!','-1');
exit();
}
$vname = '';
foreach($cu->ChannelFields as $k=>$v)
{
if($v['type']=='softlinks'){ $vname=$k; break; }
}
$row = $dsql->GetOne("Select $vname From `".$cu->ChannelInfos['addtable']."` where aid='$aid'");
include_once(DEDEINC.'/taglib/channel/softlinks.lib.php');
$ctag = '';
$downlinks = ch_softlinks($row[$vname], $ctag, $cu, '', true);
require_once(DEDETEMPLATE.'/plus/download_links_templet.htm');
exit();
}
/*------------------------
//提供软件给用户下载(旧模式)
function getSoft_old()
------------------------*/
else if($open==1)
{
//更新下载次数
$id = isset($id) && is_numeric($id) ? $id : 0;
$link = base64_decode(urldecode($link));
$hash = md5($link);
$rs = $dsql->ExecuteNoneQuery2("Update `#@__downloads` set downloads = downloads+1 where hash='$hash' ");
if($rs <= 0)
{
$query = " Insert into `#@__downloads`(`hash`,`id`,`downloads`) values('$hash','$id',1); ";
$dsql->ExecNoneQuery($query);
}
header("location:$link");
exit();
}
/*------------------------
//提供软件给用户下载(新模式)
function getSoft_new()
------------------------*/
else if($open==2)
{
$id = intval($id);
//获得附加表信息
$row = $dsql->GetOne("Select ch.addtable,arc.mid From `#@__arctiny` arc left join `#@__channeltype` ch on ch.id=arc.channel where arc.id='$id' ");
if(empty($row['addtable']))
{
ShowMsg('找不到所需要的软件资源!', 'javascript:;');
exit();
}
$mid = $row['mid'];
//读取连接列表、下载权限信息
$row = $dsql->GetOne("Select softlinks,daccess,needmoney From `{$row['addtable']}` where aid='$id' ");
if(empty($row['softlinks']))
{
ShowMsg('找不到所需要的软件资源!', 'javascript:;');
exit();
}
$softconfig = $dsql->GetOne("Select * From `#@__softconfig` ");
$needRank = $softconfig['dfrank'];
$needMoney = $softconfig['dfywboy'];
if($softconfig['argrange']==0)
{
$needRank = $row['daccess'];
$needMoney = $row['needmoney'];
}
//分析连接列表
require_once(DEDEINC.'/dedetag.class.php');
$softUrl = '';
$islocal = 0;
$dtp = new DedeTagParse();
$dtp->LoadSource($row['softlinks']);
if( !is_array($dtp->CTags) )
{
$dtp->Clear();
ShowMsg('找不到所需要的软件资源!', 'javascript:;');
exit();
}
foreach($dtp->CTags as $ctag)
{
if($ctag->GetName()=='link')
{
$link = trim($ctag->GetInnerText());
$islocal = $ctag->GetAtt('islocal');
//分析本地链接
if(!isset($firstLink) && $islocal==1) $firstLink = $link;
if($islocal==1 && $softconfig['islocal'] != 1) continue;
//支持http,迅雷下载,ftp,flashget
if(!eregi('^http://|^thunder://|^ftp://|^flashget://', $link))
{
$link = $cfg_mainsite.$link;
}
$dbhash = substr(md5($link), 0, 24);
if($uhash==$dbhash) $softUrl = $link;
}
}
$dtp->Clear();
if($softUrl=='' && $softconfig['ismoresite']==1
&& $softconfig['moresitedo']==1 && trim($softconfig['sites'])!='' && isset($firstLink))
{
$firstLink = eregi_replace("http://([^/]*)/", '/', $firstLink);
$softconfig['sites'] = ereg_replace("[\r\n]{1,}", "\n", $softconfig['sites']);
$sites = explode("\n", trim($softconfig['sites']));
foreach($sites as $site)
{
if(trim($site)=='') continue;
list($link, $serverName) = explode('|', $site);
$link = trim( ereg_replace("/$", "", $link) ).$firstLink;
$dbhash = substr(md5($link), 0, 24);
if($uhash == $dbhash) $softUrl = $link;
}
}
if( $softUrl == '' )
{
ShowMsg('找不到所需要的软件资源!', 'javascript:;');
exit();
}
//-------------------------
// 读取文档信息,判断权限
//-------------------------
$arcRow = GetOneArchive($id);
if($arcRow['aid']=='')
{
ShowMsg('无法获取未知文档的信息!','-1');
exit();
}
extract($arcRow, EXTR_SKIP);
//处理需要下载权限的软件
if($needRank>0 || $needMoney>0)
{
require_once(DEDEINC.'/memberlogin.class.php');
$cfg_ml = new MemberLogin();
$arclink = $arcurl;
$arctitle = $title;
$arcLinktitle = "<a href=\"{$arcurl}\"><u>".$arctitle."</u></a>";
$pubdate = GetDateTimeMk($pubdate);
//会员级别不足
if(($needRank>1 && $cfg_ml->M_Rank < $needRank && $mid != $cfg_ml->M_ID))
{
$dsql->Execute('me' , "Select * From `#@__arcrank` ");
while($row = $dsql->GetObject('me'))
{
$memberTypes[$row->rank] = $row->membername;
}
$memberTypes[0] = "游客";
$msgtitle = "你没有权限下载软件:{$arctitle}!";
$moremsg = "这个软件需要 <font color='red'>".$memberTypes[$needRank]."</font> 才能下载,你目前是:<font color='red'>".$memberTypes[$cfg_ml->M_Rank]."</font> !";
include_once(DEDETEMPLATE.'/plus/view_msg.htm');
exit();
}
//以下为正常情况,自动扣点数
//如果文章需要金币,检查用户是否浏览过本文档
if($needMoney > 0 && $mid != $cfg_ml->M_ID)
{
$sql = "Select aid,money From `#@__member_operation` where buyid='ARCHIVE".$id."' And mid='".$cfg_ml->M_ID."'";
$row = $dsql->GetOne($sql);
//未购买过此文章
if( !is_array($row) )
{
//没有足够的金币
if( $needMoney > $cfg_ml->M_Money || $cfg_ml->M_Money=='')
{
$msgtitle = "你没有权限下载软件:{$arctitle}!";
$moremsg = "这个软件需要 <font color='red'>".$needMoney." 金币</font> 才能下载,你目前拥有金币:<font color='red'>".$cfg_ml->M_Money." 个</font> !";
include_once(DEDETEMPLATE.'/plus/view_msg.htm');
exit(0);
}
//有足够金币,记录用户信息
$inquery = "INSERT INTO `#@__member_operation`(mid,oldinfo,money,mtime,buyid,product,pname,sta)
VALUES ('".$cfg_ml->M_ID."','$arctitle','$needMoney','".time()."', 'ARCHIVE".$id."', 'archive','下载软件', 2); ";
//记录定单
if( !$dsql->ExecuteNoneQuery($inquery) )
{
ShowMsg('记录定单失败, 请返回', '-1');
exit(0);
}
//扣除金币
$dsql->ExecuteNoneQuery("Update `#@__member` set money = money - $needMoney where mid='".$cfg_ml->M_ID."'");
}
}
}
//更新下载次数
$hash = md5($softUrl);
$rs = $dsql->ExecuteNoneQuery2("Update `#@__downloads` set downloads = downloads+1 where hash='$hash' ");
if($rs <= 0)
{
$query = " Insert into `#@__downloads`(`hash`, `id`, `downloads`) values('$hash', '$id', 1); ";
$dsql->ExecNoneQuery($query);
}
header("location:{$softUrl}");
exit();
}//opentype=2
?>