15 我不想将网站置于“维护模式”,而是将其置于完整的“只读模式”。有一个用于此的模块,但是,它仅防止“节点添加和编辑”。我想防止所有用户活动(包括登录和注册)基本上都从(清漆)缓存提供网站服务。作为附带的好处,如果站点中充满了请求,我将使用这种类型的“只读模式”。 我的问题:如何注销所有活动用户?然后可以使用钩子重定向登录和注册。 7 sessions — we source
13 据我所知,您可以清空会话表,所有用户都将被注销。但是,可能会出现问题,具体取决于您安装的模块。例如,实现的模块hook_user_logout()将永远不会触发其动作,这可能是一个问题。检查以确保所有已安装的模块都没有实现此挂钩。 — F1234k source 4 正如@ F1234k所说,删除会话表将永远不会触发hook_user_logout()。但是,您可以自己触发它。从会话表中选择所有uid,然后对每个uid执行module_invoke_all('user_logout',$ user);`。但是,您可以按打开会话超过1小时的会话进行过滤(Drupal中的会话可以无限启用)。 — 2012年 谢谢。我需要触发注销钩子,否则我将为使用“永久登录”模块登录的用户获得WSOD。 — uwe 2012年
13 您可以使用drush清空会话表 drush sqlq "TRUNCATE sessions" 或者您已经为表名设置了前缀: drush sqlq --db-prefix "TRUNCATE {sessions}" — 巴替利克斯 source
0 您可以通过更新挂钩强制注销所有用户: /** * Force to logout all the users. */ function mymodule_update_7001() { db_truncate('sessions')->execute(); } — 米尔科夫斯基 source