如何通过JavaScript检查用户是否在Drupal站点中登录?

sam*_*ell 7 javascript drupal drupal-7 drupal-modules

我知道如何检查用户是否通过PHP登录,但我需要在事件发生时做一些样式,并为此创建了一个单独的JavaScript文件.这是Drupal变量还是我可以引用的东西?

Muh*_*eda 14

使用hook_init实现创建一个新的自定义模块.

function [YOUR_MODULE]_init()
{
    global $user;
    drupal_add_js(array('user_js_uid' => $user->uid), 'setting');
}
Run Code Online (Sandbox Code Playgroud)

然后在您的javascript代码中,检查模块中定义的变量的值user_js_uid.

if(Drupal.settings.user_js_uid == 0)
{
    // execute code for non logged in users
}
else
{
    // execute code for logged in users
}
Run Code Online (Sandbox Code Playgroud)

希望这有助于......穆罕默德

  • 7.12中没有"DRUPAL_UID"cookie (2认同)

Haj*_*aje 12

如果您正在等待DOM准备就绪并使用标准生成的Drupal CSS类,您可以执行类似的操作(使用jQuery):

if( $( "body.not-logged-in" ).length )
{
    // user is not logged in
}
Run Code Online (Sandbox Code Playgroud)


小智 6

对于 Drupal 8,如果您使用 Drupal.behaviors,您可以在设置中访问用户 UID:

(function($, Drupal, viewport, settings) {
  "use strict";
  Drupal.behaviors.ifCE = { //the name of our behavior
    attach: function (context, settings) {
    var userUID = settings.user.uid;
    //your code...
  }
})(jQuery, Drupal, ResponsiveBootstrapToolkit, drupalSettings);
Run Code Online (Sandbox Code Playgroud)

因此,如果userUID === 0您的用户未连接。