如果安装了pay模块,也就是财务模块.直接使用以下代码:
$pay = load('pay_api.class.php', 'pay', 'api');
$pay->update_exchange('phpcms', 'point', -$readpoint, $data['title'].$contentid, '', $contentid.$C['repeatchargedays']);
第一句:加载pay类文件;
第二句:调用 pay类里的update_exchange函数来操作积分.
函数原型如下:
/**
*
* @params string $module moudel name
* @params string $type ( point or amount(money) )
* @params float $number (point or money) amount (如果减少 point(or money) 用'-'(减号)连接)
* @params mixed $note note
* @params mixed $userid 为0表示为当前用户 int&array 使用array的时候建议对用户进行增加 point or amount
* @params string $authid 文章权限
* @return boolean
*/
function update_exchange($module, $type, $number, $note = '', $userid =0, $authid = '')
{
global $MODULE, $_userid, $_username, $_point, $_amount;
$inputid = $_userid;
$inputer = $_username;
if(!isset($MODULE[$module])) showmessage('模块不存在!');
$field = $type == 'point' ? 'point' : 'amount';
if(!is_numeric($number)) showmessage('金额不对!');
$number = floatval($number);
$time = date('Y-m-d H:i:s', TIME);
$ip = IP;
$authid = trim($authid);
if(!empty($authid))
{
$authid = md5(AUTH_KEY.$authid);
}
if(!is_array($userid))
{
$userid = intval($userid);
if($userid < 1)
{
$userid = $_userid;
$username = $_username;
if ('amount' == $type)
{
$blance = $_amount + $number;
if($blance < 0) {$this->error = 0; return false;} //showmessage('金额不足');
if($blance > 9999.99) {$this->error = 7;return false;} //showmessage('金额超过最大额');
}
else
{
$blance = $_point + $number;
if($blance < 0) {$this->error = 1; return false;} //showmessage('点数不足');
}
$this->member->set($userid, array($field=>$blance));
$value = "('{$module}' ,'{$type}','{$number}','{$blance}' ,'{$userid}','{$username}','{$inputid}','{$inputer}', '{$time}', '{$ip}', '{$note}', '{$authid}')";
}
else
{
$userinfo = $this->member->get($userid, array($field,'username'));
$username = $userinfo['username'];
if ('amount' == $type)
{
$blance = $userinfo['amount'] + $number;
if($blance < 0) {$this->error = 0; return false;} //showmessage('金额不足');
if($blance > 9999.99) {$this->error = 7;return false;} //showmessage('金额超过最大额');
}
else
{
$blance = $userinfo['point'] + $number;
if($blance < 0) {$this->error = 1;return false;} //showmessage('点数不足');
}
$this->member->set($userid, array($field=>$blance));
$value = "('{$module}' ,'{$type}','{$number}','{$blance}' ,'{$userid}','{$username}','{$inputid}','{$inputer}', '{$time}', '{$ip}', '{$note}', '{$authid}')";
}
$this->setStat($type,$number);
}
else
{
$value = '';
foreach($userid AS $k => $v)
{
if($v && !empty($v))
{
$userinfo = $this->member->get($v, array($field,'username'));
$username = $userinfo['username'];
if ('amount' == $type)
{
$blance = $userinfo['amount'] + $number;
if($blance < 0) {$this->error = 0; return false;} //showmessage('金额不足');
}
else
{
$blance = $userinfo['point'] + $number;
if($blance < 0) {$this->error = 1;return false;} //showmessage('点数不足');
}
$this->member->set($userid, array($field=>$blance));
$value .= "('{$module}' ,'{$type}','{$number}','{$blance}' ,'{$v}','{$username}','{$inputid}','{$inputer}', '{$time}', '{$ip}', '{$note}', '{$authid}'),";
$this->setStat($type,$number);
}
}
$value = substr($value, 0, -1);
}
$sql = "INSERT INTO `$this->exchange_table` (`module` ,`type`,`number`,`blance` ,`userid`,`username`,`inputid`,`inputer`, `time`, `ip`, `note`, `authid`) VALUES ".$value;
if ($this->db->query($sql)) return true;
}
函数 update_exchange($module, $type, $number, $note = '', $userid =0, $authid = '') 有6个参数;
* @params string $module moudel name
* @params string $type ( point or amount(money) )
* @params float $number (point or money) amount (如果减少 point(or money) 用'-'(减号)连接)
* @params mixed $note note
* @params mixed $userid 为0表示为当前用户 int&array 使用array的时候建议对用户进行增加 point or amount
* @params string $authid 文章权限
具体的就不多解释了.希望大家仔细看看这段解释.
用这个类和函数,可以实现你对积分的操作,比如登陆增加积分,评论增加积分等.
以登陆增加积分为例,在登陆处理文件 member/login.php 里,实际上它调用了member.class.php类文件的login函数;
那在member/include/member.class.php 的login函数里 $this->_userid = $r['userid']; 下面加如下代码:
$pay = load('pay_api.class.php', 'pay', 'api');
$pay->update_exchange('member', 'point', 5, '登陆增加积分5分', $this->_userid, '');
即表示登陆增加5分.当然如果你还需要更加复杂的处理,比如一天登陆n次只增加一次积分等等,需要另外开发了.
本文内容同步发布在phpcms官方论坛:
http://bbs.phpcms.cn/thread-150913-1-1.html
分享到:
相关推荐
`phpcms2008` 是一款基于 PHP 和 MySQL 的内容管理系统,它的核心功能在于提供了一个灵活、可扩展的框架...在实际使用中,开发者可以根据需求进一步学习和应用 `phpcms2008` 提供的其他函数和API,以实现更复杂的功能。
PHPCMS2008提供了丰富的数据库操作工具,包括数据导入导出、备份恢复等。开发者需要熟悉如何使用这些工具,确保数据的安全和高效管理。 安全方面,PHPCMS2008内置了防SQL注入、XSS防护等安全机制。文档会解释如何...
数据库的操作基本也就增删改查四类,本文主要列出PHPCMS V9的数据库操作类常用的增删改查的使用方法,为我们对PHPCMS二次开发时对数据库操作时提供帮助。
PHPCMS2008 开发文档数据库文档函数、类文档.CHM
8. **调试与优化**:在开发过程中,学会使用phpcms2008的错误日志和调试工具,以及性能优化技巧,如缓存机制、数据库优化等。 通过实践phpcms2008模块制作,不仅能深入了解该CMS的运作原理,还能提升PHP编程和Web...
PhpCms V9 函数手册 内容为V9官方代码编译 变量及函数功能引索
总的来说,phpcms2008漏洞利用工具的存在提醒我们,无论使用何种内容管理系统,都必须时刻关注其安全状况,及时采取防护措施,确保网站和用户数据的安全。只有这样,才能在享受开源软件带来的便利的同时,避免落入...
模型是数据操作的核心部分,通过这个函数可以方便地调用数据库表的操作方法。 **使用示例**: ```php // 加载文章模型 $model = pc_base::load_model('article_model'); ``` **注意事项**: - 模型文件通常位于`./...
《PHPCMS2008:打造个性化网站的利器》 ...而详细的帮助文档和丰富的开发资源,则为PHPCMS2008的使用者提供了强大的支持。在实际操作中,不断学习和实践,将使你对这款强大的内容管理系统有更深的认识和掌握。
PHPCMS的函数库包括了数据操作、模板处理、权限管理等多个方面。例如,`get_content`函数用于获取内容信息,它可以从数据库中检索文章、图片等各类内容,支持多种查询条件和排序方式。`get_category`函数则用于获取...
而PHPCMS2008作为一款成熟的CMS系统,可以极大地提高网站开发的效率,减轻开发者的负担,使他们能更专注于业务逻辑和用户体验的优化。这两本手册的结合,无疑是PHP开发者和PHPCMS使用者的宝贵资源,值得仔细研读和...
- 常用数据库操作方法包括: - 执行非查询SQL语句,如`$db->query($sql);`,返回操作是否成功。 - 插入操作,使用`$db->insert($tablename, $array);`,其中`$tablename`为表名,`$array`为字段名和值的关联数组...
1. "Phpcms2008 产品介绍.html":这是一个关于phpcms2008的详细介绍文档,通常会包含系统的主要特性、优势以及使用方法等内容。通过阅读这个文件,用户可以快速了解phpcms2008的基本功能和适用场景。 2. "Phpcms...
**phpcms2008帮助手册** `phpcms2008`是一款基于PHP语言开发的开源内容管理系统,主要用于构建企业网站、新闻门户、电子商务平台等。本手册为CHM版,即“ Compiled HTML Help”格式,是Windows操作系统下常用的电子...
《phpcms2008内容管理系统源代码解析与应用指南》 phpcms2008是一款基于PHP语言和MySQL数据库的开源内容管理系统,它在中国的网站建设领域中具有广泛的影响力,尤其在构建大型门户网站方面表现出色。这款系统以其...
- **Phpcms2008 安装说明.html**:这份文档应详细阐述了如何安装和配置Phpcms2008,包括必要的系统要求、安装步骤、常见问题及解决方法,对于初次使用者非常有帮助。 - **phpcms**:这个文件可能是目录或者压缩包的...
1. **系统需求与环境配置**:在开始安装phpcms2008之前,需要确保服务器环境满足必要的系统需求,包括操作系统(如Linux或Windows)、PHP版本、MySQL版本等。此外,还需要了解如何配置PHP环境,比如设置php.ini文件...
本文将详细介绍phpCMS2008中的标签调用方法,帮助开发者更好地理解和运用这些功能强大的标签。 #### 一、标签调用基础概念 在phpCMS2008中,标签是用来动态获取数据的重要方式之一。通过定义特定的SQL语句或者调用...
首先,phpcms2008_help.CHM是phpcms2008的官方帮助文件,它包含了系统的基本操作、功能介绍以及常见问题的解决方案。此文件通常会涵盖以下内容: 1. **系统安装**:讲解如何配置服务器环境,下载并安装phpcms2008,...
phpcms内容管理系统(PhpCms)是国内最最流行的CMS解决方案之一,居于现时最流行的LAMP架构开发,具有很强的可扩展性,并且完全开放源代码。这是phpcms2008 用户手册