<?php
/**
*
* 关于文章权限设置的说明
* 文章权限设置限制形式如下:
* 如果指定了会员等级,那么必须到达这个等级才能浏览
* 如果指定了金币,浏览时会扣指点的点数,并保存记录到用户业务记录中
* 如果两者同时指定,那么必须同时满足两个条件
*
*/
require_once(dirname(__FILE__)."/../include/common.inc.php");
require_once(DEDEINC.'/arc.archives.class.php');
$t1 = ExecTime();
if(empty($okview))
{
$okview = '';
}
if(isset($arcID))
{
$aid = $arcID;
}
$arcID = $aid = (isset($aid) && is_numeric($aid)) ? $aid : 0;
if($aid==0)
{
die(" Request Error! ");
}
$arc = new Archives($aid);
if($arc->IsError)
{
ParamError();
}
//获取文章完整路径 扬帆 2009-10-25 17:41
$query = "Select channel,typeid from `#@__arctiny ` where id='$aid' ";
$arr = $dsql->GetOne($query);
$TypeLink = new TypeLink($arr['typeid']);
$arclink = GetFileUrl($arc->ArcID,$arc->Fields["typeid"],$arc->Fields["senddate"], $arc->Fields["title"],$arc->Fields["ismake"],$arc->Fields["arcrank"],$TypeLink->TypeInfos['namerule'],$TypeLink->TypeInfos['typedir'],$arc->Fields["money"],$arc->Fields['filename'],$TypeLink->TypeInfos['moresite'],$TypeLink->TypeInfos['siteurl'],$TypeLink->TypeInfos['sitepath']);
//检查阅读权限
$needMoney = $arc->Fields['money'];
$needRank = $arc->Fields['arcrank'];
//设置了权限限制的文章
//arctitle msgtitle moremsg
if($needMoney>0 || $needRank>1)
{
require_once(DEDEINC.'/memberlogin.class.php');
$ml = new MemberLogin();
$arctitle = $arc->Fields['title'];
$arclink = GetFileUrl($arc->ArcID,$arc->Fields["typeid"],$arc->Fields["senddate"],
$arc->Fields["title"],$arc->Fields["ismake"],$arc->Fields["arcrank"]);
$description = $arc->Fields["description"];
$pubdate = GetDateTimeMk($arc->Fields["pubdate"]);
//会员级别不足
if(($needRank>1 && $ml->M_Rank < $needRank && $arc->Fields['mid']!=$ml->M_ID))
{
$dsql->Execute('me' , "Select * From `#@__arcrank` ");
while($row = $dsql->GetObject('me'))
{
$memberTypes[$row->rank] = $row->membername;
}
$memberTypes[0] = "注册会员";
$msgtitle = "没有权限!";
$moremsg = "这篇文档需要<font color='red'>".$memberTypes[$needRank]."</font>才能访问,你目前是:<font color='red'>".$memberTypes[$ml->M_Rank]."</font>";
include_once($cfg_basedir.$cfg_templets_dir."/plus/view_msg.htm");
exit();
}
//没有足够的金币
if(($needMoney > $ml->M_Money && $arc->Fields['mid']!=$ml->M_ID) || $ml->M_Money=='')
{
$msgtitle = "没有权限!";
$moremsg = "这篇文档需要 <font color='red'>".$needMoney." 金币</font> 才能访问,你目前拥有金币:<font color='red'>".$ml->M_Money." 个</font>";
include_once($cfg_basedir.$cfg_templets_dir."/plus/view_msg.htm");
$arc->Close();
exit();
}
//以下为正常情况,自动扣点数
if($needMoney > 0 && $arc->Fields['mid']!=$ml->M_ID) //如果文章需要金币,检查用户是否浏览过本文档
{
$sql = "Select aid,money From `#@__member_operation` where buyid='ARCHIVE".$aid."' And mid='".$ml->M_ID."'";
$row = $dsql->GetOne($sql);
if(!is_array($row))
{
$inquery = "INSERT INTO `#@__member_operation`(mid,oldinfo,money,mtime,buyid,product,pname)
VALUES ('".$ml->M_ID."','$arctitle','$needMoney','".time()."', 'ARCHIVE".$aid."', 'archive',''); ";
if($dsql->ExecuteNoneQuery($inquery))
{
$inquery = "Update `#@__member` set money=money-$needMoney where mid='".$ml->M_ID."'";
if(!$dsql->ExecuteNoneQuery($inquery))
{
showmsg('购买失败, 请返回', -1);
exit;
}
} else {
showmsg('购买失败, 请返回', -1);
exit;
}
}
}
}
$arc->Display();
?>
在文章模版中使用 {dede:global.arclink/} 调用即可 有啥用自己发挥想象力吧