网(LieHuo.Net)教程 大家都知道,会员在会员中心预定了广告,默认是不会扣除相应的资金的,现在我给大家暂时解决了这个BUG。下面是解决方法:
第一步; 打开ads/include/ads.class.php找到$this->table = DB_PRE.'ads';
在其下添加$this->pay = load('pay_api.class.php', 'pay', 'api');
第二步; 找到function __destruct()
{
}
在其下添加function adsamount($adsid)
{
$adsid = intval($adsid);
$price=$this->db->get_one("SELECT a.username,a.passed,b.price FROM `".DB_PRE."ads` `a` ,`".DB_PRE."ads_place` `b` WHERE a.placeid=b.placeid AND a.adsid=$adsid");
if($price['price']>0 && $price['passed']==0 && $price['username'] !='phpcms')//这里的PHPcms 请改为管理员的用户名
{
$userid=$this->db->get_one("SELECT userid FROM ".DB_PRE."member_cache WHERE username='$price[username]'");
$this->pay->update_exchange('ads', 'amount',-$price['price'], "广告位预定扣费",$userid[userid]);//amount 为资金 point为点数
}
return TRUE;
}
这一句有个小修改 注意看注释哦
第三步;找到$where = ' adsid='.$this->adsid;
在其上 添加$this->adsamount($adsid);
第四步; 找到function update($arrid, $val)
{
$val = intval($val);
if(is_array($arrid))
{
$ids = implode(',', $arrid);
}
else
{
$ids = intval($arrid);
}
$this->db->query("UPDATE $this->table SET passed=$val WHERE adsid IN ($ids)");
return TRUE;
}
替换成function update($arrid, $val)
{
$val = intval($val);
if(is_array($arrid))
{
foreach($arrid as $adsid)
{
$adsid=intval($adsid);
$this->adsamount($adsid);
$this->db->query("UPDATE $this->table SET passed=$val WHERE adsid=$adsid");
}
return TRUE;
}
else
{
$adsid=intval($adsid);
$this->adsamount($adsid);
$this->db->query("UPDATE $this->table SET passed=$val WHERE adsid=$adsid");
return TRUE;
}
}
好了 到这里扣点数的文件已经完全改好了,可以测试了,下面的用于前台资金不足以支付广告位时的判断
打开 ads/sign.php 找到if(!$priv_group->check('p_adsid', $placeid, 'input', $_groupid)) showmessage($LANG['not_add'], 'goback');
在其下添加$price=$db->get_one("SELECT price FROM `".DB_PRE."ads_place` WHERE placeid=$placeid");
if($price['price']>$_amount)showmessage('对不起,您的余额不足,请充值以后再试', 'goback');
打开广告模板 templates/default/ads/index.html 找到<a href="{$M[url]}sign.php?placeid={$place['placeid']}">我要预订</A>
替换成{if $_amount>=$place['price']}<a href="{$M[url]}sign.php?placeid={$place['placeid']}">我要预订</A> {else}<a href="/pay/pay.php" title="对比起,您的余额不注意支付本订单,请先充值">余额不足</a>{/if}
OK 完工 测试去吧
上一篇 php正则表达式匹配中文