欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal 中 rules 每天登录签到

shiping1 的头像

每天登录签到的问题

赞成!
0
否决!

诗人兄,你好

这个需求我第一个想到的是用hook_user_login方法,但发现自动登录的话,登录表是不会有记录的。

.install文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
 * Implements hook_schema().
 */
function user_history_schema() {
    $schem ['user_login_history'] = array (
            'description' => '保存用户登录流水',
            'fields' => array (
                    'uid' => array (
                            'type' => 'int',
                            'unsigned' => TRUE,
                            'not null' => TRUE,
                    ),
                    'login' => array (
                            'type' => 'int',
                            'unsigned' => TRUE,
                            'not null' => TRUE,
                    )
            ),
            'indexes' => array (
                    'uid' => array (
                            'uid'
                    )
            )
    );
    return $schem;
}

.module文件

1
2
3
4
5
6
function user_history_user_login(&$edit, $account) {
    $nid = db_insert ( 'user_login_history' )->fields ( array (
            'uid' => $account->uid,
            'login' => $account->login
    ) )->execute ();
}

 

意思是说,下次登录因为是读sessions表的,并不会在user_login_history插入数据。

请问如何在代码级别实现每天登录签到的需求呢?

 

1 个回答

赞成!
0
否决!

这可能不能用这个方法,我想到的方法是通过 在 hook_init 里面增加判断,每次刷新页面都得判断。判断的方式是:

1,获得上次登录的日期

2,获得当前用户刷新页面的日期

3,判断刷新页面日期是否大于上次登录的日期。如果大于,就返回true,否则返回false。

来自 http://www.drupalla.com/node/2966





drupal 7中 rules 如何增加“首次登陆”条件?

赞成!
0
否决!

我想用rules做个首次登陆的动作,但现在我做的动作是每次登陆都执行这个动作了。

请教大大每天首次登陆的动作应该还要设置下呢?配了好久都没配出来

 

3 个回答

赞成!
0
否决!

这个选择应该是events是User has logged in

然后你的第一次登陆时候判断,好像没发现有这个条件,不过可以用一些类似的方式实现,如第一次登陆,需要填写完整信息。而完整信息如果没填写完整,就会出现弹出小框提醒,直到信息完整,这种就可以在conditions中增加条件过滤实现。

 
赞成!
0
否决!

不好意思我没描述太清楚,我的意思是每天第一次登陆(嘻嘻。。。),如果填完整信息只能是第一次登陆了,如果想每天第一次登陆,执行某个东西这样有办法么?  :)

 
赞成!
0
否决!

那是不是要判断session 了呀

 


来自 http://www.drupalla.com/node/1845




 
普通分类: