Warning: Undefined array key "HTTPS" in include() (line 29 of /opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php).
include('/opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php') (Line: 4)
require('/opt/www/fdv2/drupal.stage/web/sites/drupal001.net/settings.php') (Line: 145)
Drupal\Core\Site\Settings::initialize('/opt/www/fdv2/drupal.stage/web', 'sites/drupal001.net', Object) (Line: 1099)
Drupal\Core\DrupalKernel->initializeSettings(Object) (Line: 701)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
drupal 如何显示当前用户是否在线? - Drupal大学 - Drupal问答论坛
首页 / 帖子
drupal 如何显示当前用户是否在线?

drupal有个区块是显示当前所有在线用户,不知道这个区块的代码在哪里?用什么办法显示当前用户是否在线?谢谢。

2个答案
闻涛
发布于:2014-09-14 17:42

Drupal封装了session库,可以参考文件:include/session.inc

通过session实现一个函数,sess_count(),来统计当前在线人数。

但是有一个问题,并不是所有的session机制都实现了这个count函数,比如memcache的session接口,就没有实现sess_count()函数,也就是说你用数据库存储session的时候,可以获得当前在线人数,用memcache就不行。


AnnyO
发布于:2014-09-15 11:14

简单点的思路,users表里保存了上一次登陆时间和上一次活跃时间,你可以拿其中一个你认为更靠前的,然后再定一个标准,比如时间间隔在5分钟之内,就算成是在线,这样可以得到一个近似的状态。