`
化蝶自在飞
  • 浏览: 2329655 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

phpcms2008积分操作函数的使用方法

阅读更多
如果安装了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常用函数小结

    `phpcms2008` 是一款基于 PHP 和 MySQL 的内容管理系统,它的核心功能在于提供了一个灵活、可扩展的框架...在实际使用中,开发者可以根据需求进一步学习和应用 `phpcms2008` 提供的其他函数和API,以实现更复杂的功能。

    PHPCMS2008开发文档,PHPCMS2008开发文档

    PHPCMS2008提供了丰富的数据库操作工具,包括数据导入导出、备份恢复等。开发者需要熟悉如何使用这些工具,确保数据的安全和高效管理。 安全方面,PHPCMS2008内置了防SQL注入、XSS防护等安全机制。文档会解释如何...

    PHPCMS V9 数据库操作方法

    数据库的操作基本也就增删改查四类,本文主要列出PHPCMS V9的数据库操作类常用的增删改查的使用方法,为我们对PHPCMS二次开发时对数据库操作时提供帮助。

    PHPCMS2008 开发文档数据库文档函数、类文档.CHM

    PHPCMS2008 开发文档数据库文档函数、类文档.CHM

    phpcms2008模块制作教程

    8. **调试与优化**:在开发过程中,学会使用phpcms2008的错误日志和调试工具,以及性能优化技巧,如缓存机制、数据库优化等。 通过实践phpcms2008模块制作,不仅能深入了解该CMS的运作原理,还能提升PHP编程和Web...

    phpcms v9 函数手册

    PhpCms V9 函数手册 内容为V9官方代码编译 变量及函数功能引索

    phpcms2008漏洞利用工具

    总的来说,phpcms2008漏洞利用工具的存在提醒我们,无论使用何种内容管理系统,都必须时刻关注其安全状况,及时采取防护措施,确保网站和用户数据的安全。只有这样,才能在享受开源软件带来的便利的同时,避免落入...

    PHPCMS二次开发常用函数

    模型是数据操作的核心部分,通过这个函数可以方便地调用数据库表的操作方法。 **使用示例**: ```php // 加载文章模型 $model = pc_base::load_model('article_model'); ``` **注意事项**: - 模型文件通常位于`./...

    phpcms2008帮助文档

    《PHPCMS2008:打造个性化网站的利器》 ...而详细的帮助文档和丰富的开发资源,则为PHPCMS2008的使用者提供了强大的支持。在实际操作中,不断学习和实践,将使你对这款强大的内容管理系统有更深的认识和掌握。

    PHPCMS函数与实例讲解

    PHPCMS的函数库包括了数据操作、模板处理、权限管理等多个方面。例如,`get_content`函数用于获取内容信息,它可以从数据库中检索文章、图片等各类内容,支持多种查询条件和排序方式。`get_category`函数则用于获取...

    PHP和PHPCMS2008的手册

    而PHPCMS2008作为一款成熟的CMS系统,可以极大地提高网站开发的效率,减轻开发者的负担,使他们能更专注于业务逻辑和用户体验的优化。这两本手册的结合,无疑是PHP开发者和PHPCMS使用者的宝贵资源,值得仔细研读和...

    PHPCMS 2008 SP3 常用函数

    - 常用数据库操作方法包括: - 执行非查询SQL语句,如`$db-&gt;query($sql);`,返回操作是否成功。 - 插入操作,使用`$db-&gt;insert($tablename, $array);`,其中`$tablename`为表名,`$array`为字段名和值的关联数组...

    phpcms2008sp3_gbk_100125

    1. "Phpcms2008 产品介绍.html":这是一个关于phpcms2008的详细介绍文档,通常会包含系统的主要特性、优势以及使用方法等内容。通过阅读这个文件,用户可以快速了解phpcms2008的基本功能和适用场景。 2. "Phpcms...

    phpcms2008 帮助手册

    **phpcms2008帮助手册** `phpcms2008`是一款基于PHP语言开发的开源内容管理系统,主要用于构建企业网站、新闻门户、电子商务平台等。本手册为CHM版,即“ Compiled HTML Help”格式,是Windows操作系统下常用的电子...

    phpcms2008内容管理系统源代码

    《phpcms2008内容管理系统源代码解析与应用指南》 phpcms2008是一款基于PHP语言和MySQL数据库的开源内容管理系统,它在中国的网站建设领域中具有广泛的影响力,尤其在构建大型门户网站方面表现出色。这款系统以其...

    Phpcms2008 产品介绍及其下载

    - **Phpcms2008 安装说明.html**:这份文档应详细阐述了如何安装和配置Phpcms2008,包括必要的系统要求、安装步骤、常见问题及解决方法,对于初次使用者非常有帮助。 - **phpcms**:这个文件可能是目录或者压缩包的...

    phpcms2008帮助文档chm格式

    1. **系统需求与环境配置**:在开始安装phpcms2008之前,需要确保服务器环境满足必要的系统需求,包括操作系统(如Linux或Windows)、PHP版本、MySQL版本等。此外,还需要了解如何配置PHP环境,比如设置php.ini文件...

    phpcms2008标签调用

    本文将详细介绍phpCMS2008中的标签调用方法,帮助开发者更好地理解和运用这些功能强大的标签。 #### 一、标签调用基础概念 在phpCMS2008中,标签是用来动态获取数据的重要方式之一。通过定义特定的SQL语句或者调用...

    phpcms2008模块开发、帮助手册及phpcms2007完全二次开发手册

    首先,phpcms2008_help.CHM是phpcms2008的官方帮助文件,它包含了系统的基本操作、功能介绍以及常见问题的解决方案。此文件通常会涵盖以下内容: 1. **系统安装**:讲解如何配置服务器环境,下载并安装phpcms2008,...

    phpcms2008 用户手册

    phpcms内容管理系统(PhpCms)是国内最最流行的CMS解决方案之一,居于现时最流行的LAMP架构开发,具有很强的可扩展性,并且完全开放源代码。这是phpcms2008 用户手册

Global site tag (gtag.js) - Google Analytics