1、创建数据表和添加字段
在文章表jtb_articlt 中添加:锁定文章字段 jtb_alock(0为锁定,1为不锁定);锁定文章所需积分数字段 jtb_abuy。
创建购买文章记录表jtb_article_buy 字段为:id:id,文章id:jtb_auid,文章标题:jtb_atopic,积分数:jtb_abuy,购买时间:jtb_atime,会员名:jtb_ausername,剩余积分:jtb_aintegral。
用户表jtb_ubase 主要字段 用户积分:jtb_uintegral 。
积分动向表 jtb_sys_integral 。
2、在article\common\incfiles\manage_config.inc.php的
adddisp节点添加
" . ii_cfname('lock') . ",
" . ii_cfname('buy') . "
" . ii_get_num($_POST['lock']) . ",
" . ii_get_num($_POST['buy']) . ",
editdisp节点添加
" . ii_cfname('lock') . "=" . ii_get_num($_POST['lock']) . ",
" . ii_cfname('buy') . "=" . ii_get_num($_POST['buy']) . ",
然后在article\common\template\manage.jtbc下的
add节点添加
<tr>
<td height="25">{$=ii_itake('config.lock','lng')}</td>
<td>{$=mm_sel_yesno('lock',1)}</td>
</tr>
<tr>
<td height="25">{$=ii_itake('config.buy','lng')}</td>
<td><input type="text" name="buy" size="5"></td>
</tr>
edit节点添加
<tr>
<td height="25">{$=ii_itake('config.lock','lng')}</td>
<td>{$=mm_sel_yesno('lock',{$lock})}</td>
</tr>
<tr>
<td height="25">{$=ii_itake('config.buy','lng')}</td>
<td><input type="text" name="buy" size="5" value="{$buy}"></td>
</tr>
最后在 article\common\lanauage\config.jtbc下添加
<item>
<disinfo><![CDATA[lock]]></disinfo>
<chinese><![CDATA[开放文章]]></chinese>
</item>
<item>
<disinfo><![CDATA[buy]]></disinfo>
<chinese><![CDATA[积分数]]></chinese>
</item>
第二步到这里就ok了!下面一步是最重要的!
3、在article\common\incfiles\module.inc.php文件下
function pp_module_detail($genre, $id, $page)
{
global $conn;
global $ndatabase, $nidfield, $nfpre;
$tsqlstr = "select * from $ndatabase where " . ii_cfname('hidden') . "=0 and $nidfield=$id";
$trs = ii_conn_query($tsqlstr, $conn);
$trs = ii_conn_fetch_array($trs);
if ($trs)
{
date_default_timezone_set(PRC); //设置时差
//设置了权限限制的文章
if($trs[ii_cfname('lock')] ==0)
{
//print_r($_SESSION);
//判断是否登录
$aa=$_SESSION['jtb_cms_username'];
if(!$aa){
$bb="<script> alert('这篇文章需要登录才能阅读,您还没有登录!');
var r=confirm(' 登录 或 注册 \\n \(亲,注册我们的会员是免费的噢!\)');
if (r==true){
window.location.href='http://www.golfhunter.com.cn/passport/?type=login?';
}else{
close();
}</script>";
echo $bb=iconv('gb2312','utf-8',$bb);
//Header('Location: http://www.golfhunter.com.cn/passport/?type=login');
}
//已登入的 else
{
$tsqlstr = "select * from jtb_article_buy where jtb_auid=$trs[0] and jtb_ausername='$aa'";
$tra = ii_conn_query($tsqlstr, $conn);
$tra = ii_conn_fetch_array($tra);
//判断是否购买过该片文章
if(!$tra)
{
$abc="<script>alert('这篇文档需要扣除".$trs[jtb_abuy]." 积分才能访问');
var r=confirm('您确定要购买这篇文章吗?');
if (r==true){
alert('购买过的文章,不会重复扣您的积分的,现在进入购买流程!');
}else{
alert('高尔夫达人网祝您生活愉快');
close();
}</script>";
echo $abc=iconv('gb2312','utf-8',$abc);
$tsqlstr = "select * from jtb_ubase where jtb_uusername='$aa'";
$trb = ii_conn_query($tsqlstr, $conn);
$trb= ii_conn_fetch_array($trb);
//如果积分为空或者小于需要扣除的积分数不能查看该文章
if($trb[jtb_uintegral]=='' || $trs[jtb_abuy]> $trb[jtb_uintegral])
{
$moremsg = "这篇文档需要 <font color='red'>".$trs[jtb_abuy]." 积分</font> 才能访问,你目前拥有积分:
<font color='red'>".$trb[jtb_uintegral]." 分</font> !";
return $moremsg =iconv('gb2312','utf-8',$moremsg);
}
else
{ //否则就更新用户表中的积分
$mysqlstr ="UPDATE jtb_ubase SET jtb_uintegral = jtb_uintegral-$trs[jtb_abuy] where jtb_uusername='$aa' ";
$trc = ii_conn_query($mysqlstr, $conn);
$trc = ii_conn_fetch_array($trc);
if(!$trc)
{
$date = date("Y-m-d H:i:s",time());
$date1 = date("Ymd",time());
$tsqlstr = "select * from jtb_ubase where jtb_uusername='$aa'";
$trd = ii_conn_query($tsqlstr, $conn);
$trd= ii_conn_fetch_array($trd);
//购买成功写入数据到购买文章记录表,防止重复扣积分。 $tsqlstr ="insert into jtb_article_buy (`jtb_auid`,`jtb_atopic`,`jtb_abuy`,`jtb_atime`,`jtb_ausername`,`jtb_aintegral`) VALUES ('$trs[0]','$trs[jtb_atopic]','$trs[jtb_abuy]','$date','$aa','$trd[jtb_uintegral]')";
@ii_conn_query($tsqlstr, $conn);
$abc="<script>alert('购买成功,已从您帐户扣除".$trs[jtb_abuy]."积分,您现在可以正常阅读该文章了!');</script>";
echo $abc =iconv('gb2312','utf-8',$abc);
//die($trb[jtb_uintegral]);
//购买成功写入数据到积分动向表,让老百姓消费的明明白白的!
$tsqlstr="insert into jtb_sys_integral (jtb_siintegral,jtb_sinintegral,jtb_siitype,jtb_siusername,jtb_siday,jtb_sitime) values ('-$trs[jtb_abuy]','$trd[jtb_uintegral]','117','$aa','$date1','$date')";
ii_conn_query($tsqlstr, $conn);
//die($tsqlstr);
/*******************购买成功,显示该文章内容**********************/
} }
}else {
/*******************已购买过的文章,显示该文章内容**********************/
} }
} else{
/********** 未锁定的文章 ,显示该文章内容**********/
} } }
然后添上细节!就大功告成了!,真实故事!