2012-04-16 20 views
6

मुझे पता है कि उपयोगकर्ता को PHP के माध्यम से लॉग इन किया गया है या नहीं, लेकिन जब कोई ईवेंट होता है तो मुझे कुछ स्टाइल करने की आवश्यकता होती है, और मैंने इसके लिए एक अलग जावास्क्रिप्ट फ़ाइल बनाई है। क्या यह एक ड्रूपल चर या कुछ है जिसे मैं भी संदर्भित कर सकता हूं?जावास्क्रिप्ट के माध्यम से एक ड्रूपल साइट में उपयोगकर्ता लॉग_इन करने के लिए कैसे जांचें?

+1

आप जावास्क्रिप्ट में स्टाइल कर रहे हैं? उपयोगकर्ता प्रमाणीकरण के आधार पर जावास्क्रिप्ट में आप जो करते हैं उसके बारे में बहुत सावधान रहें। किसी के लिए आपके पृष्ठ पर जेएस में हेरफेर करना बहुत आसान है। – Webnet

उत्तर

13

new custom modulehook_init कार्यान्वयन के साथ बनाएँ।

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

फिर अपने जावास्क्रिप्ट कोड में, चर मॉड्यूल 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

'jQuery.cookie (" DRUPAL_UID "); हमेशा' null' – FLY

+2

लौटाता है 7.12 – jhoff

+0

+1 में कोई "DRUPAL_UID" कुकी नहीं है। मैंने इस मामले के लिए एक फिक्स जोड़ा। धन्यवाद। –

11

आप डोम के लिए तैयार होने के लिए और उपयोग मानक उत्पन्न Drupal सीएसएस कक्षाएं, आप की तरह (jQuery के साथ) कुछ कर सकते हैं इंतज़ार कर रहे हैं, तो:

if($("body.not-logged-in").length) 
{ 
    // user is not logged in 
} 
+1

इस तरह आपको चेक करने के लिए लाइब्रेरी जोड़ने की ज़रूरत नहीं है .. – Haje

+0

यह एक अच्छा समाधान है और यदि आप वार्निश या इसी तरह के – Bery

+0

का उपयोग नहीं कर रहे हैं तो आपको एक कस्टम मॉड्यूल लिखने की आवश्यकता नहीं है। इस विधि को PHP, सिर्फ शुद्ध जावास्क्रिप्ट लिखने की आवश्यकता नहीं है। – Sunry

1

वेनिला ड्रूपल 8 में "लॉग-इन-इन" कक्षा मौजूद नहीं है। लेकिन इसके बजाय "उपयोगकर्ता-लॉग-इन" है।

body.user-logged-in a[href="/user/register"] {display: none; } 
1

Drupal 8 के लिए यदि आप Drupal.behaviors उपयोग करते हैं, आप सेटिंग में उपयोगकर्ता यूआईडी उपयोग कर सकते हैं: यहाँ सीएसएस मैं कस्टम "रजिस्टर" मेनू आइटम को छिपाने के लिए उपयोग कर रहा हूँ की एक पंक्ति है, तो एक उपयोगकर्ता के प्रवेश है :

(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); 

तो userUID === 0 फिर अपने उपयोगकर्ता जुड़ा हुआ नहीं है, तो।

संबंधित मुद्दे

 संबंधित मुद्दे