程序员人生 网站导航

PHPCMS会员预定广告不扣资金的解决方法

栏目:DedeCMS时间:2013-10-19 03:09:00

  网(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 完工 测试去吧

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐