显示上次登录时新创建的用户

时间:2013-08-24 11:08:52

标签: php plugins elgg

我在我的Elgg应用程序中安装了Members for Elgg 1.8插件,现在我正在编辑此插件,以显示从上次管理员登录到当前登录时创建的所有用户。

但是我没有从我写过的查询中得到预期的结果。

这是我的 index.php 代码

 case 'lasttonow':
     $db_prefix = elgg_get_config('dbprefix');
     $joins = array("JOIN {$db_prefix}users_entity u on e.guid = u.guid");
     $time = time();
     $options['joins'] = $joins;
     options['wheres'] = "e.time_created >= u.prev_last_login";
     $options['order_by'] = "e.time_created DESC";

     $content = elgg_list_entities_from_metadata($options);
 break;

我不明白我在哪里做错了。

谢谢

2 个答案:

答案 0 :(得分:3)

构建的查询是说“列出上次登录后创建的所有用户”。这不会给你带来任何结果。

您想要做的是获取admin的prev_last_login(我假设当前已登录用户)并在查询选项中使用它:

$admin = elgg_get_logged_in_user_entity();
$options['time_created_lower'] = $admin->prev_last_login;
$options['order_by'] = "e.time_created DESC";
$content = elgg_list_entities_from_metadata($options);

答案 1 :(得分:2)

我已编辑您的代码以符合您的要求。请尝试以下代码,您将得到您所期望的。您尝试做的是错误的,您正在尝试的查询将无法显示正确的结果,因为您尝试添加上述代码中提到的特定用户的上一个上次登录,实际上您假设使用上一个上次登录您已登录该站点的用户。

case 'lasttonow':
                  $db_prefix = elgg_get_config('dbprefix');
                  $joins = array("JOIN {$db_prefix}users_entity u on e.guid = u.guid");
                  $admin = elgg_get_logged_in_user_entity();                            
                  $times =$admin->prev_last_login;                        
                  $options['joins'] = $joins;        
                  $options['wheres'] = "e.time_created >= {$times}";
                  $options['order_by'] = "e.time_created DESC";    
                  $content = elgg_list_entities_from_metadata($options);
                  break;