ucenter用户积分

ucenter本身没有积分,那么如何来通用ucenter的积分呢,今天讲下通过修改ucenter来让ucenter积分全局化。主要目标是所有应用的积分都能通用,至于积分记录什么的需要另外开发,而且这里的应用是第三方应用。如果官方应用需要修改很多地方。这个方法需要修改uc,以后升级uc会很麻烦。

假定我们的建立uc的虚拟主机,www.testuc.com,能进后台了,以及第三方应用www.test2.com,两者都能独立运行,并且通信已经成功。现在要使用uc作为www.test2.com的用户管理后台。

1、我们修改uc的表members表

ALTER TABLE `ucenter`.`uc_members` ADD COLUMN `credit` INTEGER UNSIGNED NOT NULL DEFAULT 0 AFTER `secques`;

2、修改test目录uc_client/client.php 在最后加上

/**  
 * $uid 用户id
 * $credit 有值表示设置 否则表示取值
 * $f 强制设置 直接设置 不加减
 */
function uc_user_credit($uid, $credit=0,$f=false) {
  return uc_api_post('user', 'credit', array('uid'=>$uid, 'credit'=>$credit,'f'=>$f));
}

3、uc目录model/user.php class usermodel增加下面的代码

function get_user_credit_by_uid($uid) {
        $arr = $this->db->result_first("SELECT credit FROM ".UC_DBTABLEPRE."members WHERE uid='$uid'");
        return $arr;
    }
    function set_user_credit_by_uid($uid,$credit,$f) {
      if($f===true)
        $this->db->query("UPDATE ".UC_DBTABLEPRE."members SET credit=$credit WHERE uid='$uid'");
      else
        $this->db->query("UPDATE ".UC_DBTABLEPRE."members SET credit=credit+$credit WHERE uid='$uid'");
      return $this->db->affected_rows();
    }

4、修改uc目录control/user.php usercontrol 类增加下面的代码

 function oncredit($arr) {
        $this->init_input();
        $f = $this->input('f');
        $uid = $this->input('uid');
        $credit = intval($this->input('credit'));

        if($credit || $f===true)
          $r = $_ENV['user']->set_user_credit_by_uid($uid,$credit,$f);
        else
          $r = $_ENV['user']->get_user_credit_by_uid($uid);

        return $r;

    }

修改onget_user函数

function onget_user() {
        $this->init_input();
        $username = $this->input('username');
        if(!$this->input('isuid')) {
            $status = $_ENV['user']->get_user_by_username($username);
        } else {
            $status = $_ENV['user']->get_user_by_uid($username);
        }
        if($status) {
          return array($status['uid'],$status['username'],$status['email'],$status['credit']);
        } else {
            return 0;
        }
    }

5、回到test目录修改uc_client/control/user.php修改onget_user函数成下面的样子

function onget_user() {
        $this->init_input();
        $username = $this->input('username');
        if(!$this->input('isuid')) {
            $status = $_ENV['user']->get_user_by_username($username);
        } else {
            $status = $_ENV['user']->get_user_by_uid($username);
        }
        if($status) {
          return array($status['uid'],$status['username'],$status['email'],$status['credit']);
        } else {
            return 0;
        }
    }

6、修改uc目录/view/default/templates.lang.php增加

‘credit’ => ‘积分’,

7、修改uc目录/view/default/admin_user.html找到<table onmouseover=”addMouseEvent(this);”>这个table修改一下

				<table class="datalist fixwidth" onmouseover="addMouseEvent(this);">
					<tr>
						<th><input type="checkbox" name="chkall" id="chkall" onclick="checkall('delete[]')" class="checkbox" /><label for="chkall">{lang delete}</label></th>
						<th>{lang user_name}</th>
						<th>{lang email}</th>
						<th>{lang credit}</th>
						<th>{lang user_regdate}</th>
						<th>{lang user_regip}</th>
						<th>{lang edit}</th>
					</tr>
					<!--{loop $userlist $user}-->
						<tr>
							<td class="option"><input type="checkbox" name="delete[]" value="$user[uid]" class="checkbox" /></td>
							<td>$user[smallavatar] <strong>$user[username]</strong></td>
							<td>$user[email]</td>
							<td>$user[credit]</td>
							<td>$user[regdate]</td>
							<td>$user[regip]</td>
							<td><a href="admin.php?m=user&a=edit&uid=$user[uid]">{lang edit}</a></td>
						</tr>
					<!--{/loop}-->
					<tr class="nobg">
						<td><input type="submit" value="{lang submit}" class="btn" /></td>
						<td class="tdpage" colspan="6">$multipage</td>
					</tr>
				</table>

到这里就改好了,uc后台也可以看到积分了

然后我们在test的跟目录新建index.php写入

include './config.inc.php';
include './uc_client/client.php';

echo "第三方应用<br />";
uc_user_credit(2,10);
uc_user_credit(2,-1);
var_dump(uc_get_user('ylx1'));

运行一次,应该能看到

QQ截图20121228150125

 

这个就是刚刚设置的结果,以后增加减少就可以用这个函数来做了,但是这个和官方的应用是不搭噶的,所以别指望和discuz能通用,下载uccredit

本文固定链接: http://www.qaforcode.net/archives/604 | 猪哥每日一贴

该日志由 趴在树上的猪 于2012年12月28日发表在 php 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: ucenter用户积分 | 猪哥每日一贴
关键字: ,
【上一篇】
【下一篇】

ucenter用户积分:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter

浙公网安备 33010602001905号