13
九/08
2

扩展drupal的userpoints模块



这几天公司要用到用户积分的功能,现在一般的站点都有类似用户积分系统的概念,而drupal的userpoints模块可以给我们提供这样的功能。由于userpoints模块本身只提供了一个基本功能和api,所以需要一些特殊的功能,我们需要自己定制。

类似contribute module有很多,我们随便找个便可以看到api的使用方法。比如user2userpoints模块,可以让用户之间可以互赠积分,主要功能就是这句:
<?php
$params = array(
    ‘uid’ => $to->uid,
    ‘points’ => $points,
    ‘operation’ => ‘From: ‘ . $user->name,
);
userpoints_userpointsapi($params);
?>

其中 $to对象是表单传递过来的uid,用user_load生成的对象。就这么简单,另外,给赠送人再扣除就行了,$points换成-$points.

此外,userpoints模块如果扩展功能的时候,要对此功能进行设置,不必单独写menu的hook,我们可以使用他的一个userpoints的hook,传入op为setting即可添加表单项来保存我们的配置。如果传入的op值分别为
points_before和points_after分别做积分变化前后的操作,其中如果before返回false,将不做积分更改,这可让我们的控制很灵活。

drupal本身灵活的hook机制,在userpoints模块的代码中也能体现出来。module_invoke_all()….
 


相关文章

评论 (2) Trackbacks (0)
  1. jude
    08:48 on 七月 29th, 2009

    您好:
    谢谢您分享这程式~我也正在找这个~
    想询问,这个程式码适用於drupal 6.4以上的版本修改嘛?
    期待回覆了~

  2. terrysco
    12:21 on 七月 29th, 2009

    6.4以上版本使用的userpoints模块我没有看,接口应该不会发生变化的。

发表评论

No trackbacks yet.