我知道如何检查用户是否通过PHP登录,但我需要在事件发生时做一些样式,并为此创建了一个单独的JavaScript文件。这是Drupal变量还是我可以参考的东西?
答案 0 :(得分:13)
使用new custom module实施创建hook_init。
function [YOUR_MODULE]_init()
{
global $user;
drupal_add_js(array('user_js_uid' => $user->uid), 'setting');
}
然后在您的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
}
希望这有帮助......穆罕默德
答案 1 :(得分:12)
如果您正在等待DOM准备好并使用标准生成的Drupal CSS类,您可以执行类似的操作(使用jQuery):
if( $( "body.not-logged-in" ).length )
{
// user is not logged in
}
答案 2 :(得分:2)
对于Drupal 8,如果您使用Drupal.behaviors,则可以在设置中访问用户UID:
$('#leadtable').dataTable({
language: {
url: '//cdn.datatables.net/plug-ins/1.10.12/i18n/Hebrew.json'
},
columnDefs: [{
type: 'de_datetime',
targets: 0
}
]
});
因此,如果(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);
您的用户未连接。
答案 3 :(得分:1)
香草Drupal 8中似乎不存在“未登录”类。 但是有“用户登录”而不是。这是我用来隐藏自定义“注册”菜单项的一行CSS,如果用户已登录:
body.user-logged-in a[href="/user/register"] {display: none; }