13
九/082
九/082
扩展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()….
08:48 on 七月 29th, 2009
您好:
谢谢您分享这程式~我也正在找这个~
想询问,这个程式码适用於drupal 6.4以上的版本修改嘛?
期待回覆了~
12:21 on 七月 29th, 2009
6.4以上版本使用的userpoints模块我没有看,接口应该不会发生变化的。