2010-12-19 15 views
11

मैं कैसे जांचूं कि वर्तमान पृष्ठ ड्रूपल के व्यवस्थापक अनुभाग में है या नहीं? मैं मुख्य मेनू से कुछ पृष्ठों में एक लॉगिन फॉर्म प्रदर्शित करना चाहता हूं लेकिन लॉगिन पृष्ठ ब्लॉक चयन मेनू में प्रदर्शित होता है। कृपया एक समाधान का सुझाव दें ..यह जांचने के लिए कि उपयोगकर्ता ड्रोपल के व्यवस्थापक भाग में है या नहीं?

उत्तर

31

ड्रूपल 7 के लिए आप path_is_admin() का उपयोग कर सकते हैं।

if (path_is_admin(current_path())) { 
    // Do stuff. 
} 

Drupal 8 isAdminRoute()

$is_admin = \Drupal::service('router.admin_context')->isAdminRoute(); 
if ($is_admin) { 
    // Do stuff. 
} 
+0

और आप इसे इस तरह उपयोग कर सकते हैं: यदि (path_is_admin (current_path())) { // चीज़ें करें। } –

+0

धन्यवाद मैंने आपके उदाहरण के साथ उत्तर अपडेट किया। – gagarine

7

मैं आपके अंतिम लक्ष्य को पूरी तरह से समझ नहीं पा रहा हूं, लेकिन यहां दो हैं आपके प्रश्न का उत्तर:

1) if (arg(0) == 'admin') { ... } अगर कोई व्यवस्थापक अनुभाग में है के बाद से पूरे व्यवस्थापक अनुभाग व्यवस्थापक के साथ उपसर्ग पथ है इंगित करेंगे,/

2) व्यवस्थापक/सेटिंग्स/व्यवस्थापक/विषय पर आप चुन सकते हैं व्यवस्थापक अनुभाग के लिए एक अलग विषय, और तब आपको पता चलेगा कि कोई विषय व्यवस्थापक में है जब वह थीम मुख्य विषय की बजाय लोड हो रही है।

+0

धन्यवाद, सामने के छोर विषय ब्लॉक प्रबंधन अनुभाग भले ही मैं व्यवस्थापक section.i के लिए चयनित एक अलग विषय व्यवस्थापक अनुभाग में हर लिंक के लिए व्यवस्थापक विषय प्रदर्शित करने के लिए करना चाहते हैं में प्रदर्शित होता है। –

2

मुझे बिल्कुल यकीन नहीं है कि आपका अंतिम लक्ष्य क्या है। अधिक स्पष्टीकरण?

यदि आप पथ की जांच कर रहे हैं, तो स्कॉट रेनिन के # 1 को चाल चलनी चाहिए।

ड्रूपल 6 में एक डिफ़ॉल्ट चर, $ is_admin भी है। यह सही होगा यदि वर्तमान उपयोगकर्ता के पास व्यवस्थापक पहुंच है। इस चर के लिए जांच उपयोगी हो सकता है। अधिक जानकारी के लिए, यहां देखें: http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6

आपके अनुवर्ती प्रश्न के लिए, फ्रंट एंड थीम हमेशा व्यवस्थापक/बिल्ड/ब्लॉक में प्रदर्शित होती है। यह सही और अपेक्षित व्यवहार है, क्योंकि जब आप चारों ओर ब्लॉक ले जा रहे हैं और थीम अनुभागों को असाइन कर रहे हैं, तो आप जानना चाहते हैं कि वे उस थीम में कहां जा रहे हैं जहां आप कॉन्फ़िगर कर रहे हैं। यदि आपके पास एकाधिक थीम सक्षम हैं, तो व्यवस्थापक/बिल्ड/ब्लॉक पर एक अलग थीम की सेटिंग्स (द्वितीयक पंक्ति) पर क्लिक करें। आप देखेंगे कि मेरा क्या मतलब है।

0

पहले प्रश्न के लिए उपर्युक्त समाधान करना चाहिए .... दूसरे पर आना, ऐसा लगता है कि आप पृष्ठ के केंद्र (यानी मुख्य सामग्री) में लॉगिन ब्लॉक जोड़ना चाहते हैं और वह भी कुछ पृष्ठों पर .. अगर ऐसा है तो आपको ब्लॉक कॉन्फ़िगरेशन पृष्ठ पर जाना होगा और "उपयोगकर्ता लॉगिन" ब्लॉक को पृष्ठ पर वांछित स्थान पर सेट करना होगा और सहेजें पर क्लिक करें। फिर फिर ब्लॉक के बगल में कॉन्फ़िगर करें पर क्लिक करें और आपको "इस पेज को कौन से पेज दिखाना चाहिए" .. आदि। सेटिंग्स को कॉन्फ़िगर करने के विकल्प आपको मिलेगा ..

0

के लिए Drupal 6 के लिए: @timmy और @Scott Reynen - आर्ग (0) और substr ($ _ प्राप्त [ 'क्यू'], 0, 5) बराबर 'व्यवस्थापक' कुछ पैटर्न याद करेंगे। नीचे दिया गया कोड मेरी साइट पर सभी व्यवस्थापक पृष्ठ यूआरएल प्राप्त करता है, आपकी साइट में कम या कम हो सकता है। उत्तर के लिए

$arg = arg(); 
$isAdminPage = ($arg[0] == 'admin' || $arg[2] == 'edit' || $arg[0] == 'user' || $arg[2] == 'workflow' || $arg[2] == 'statistics'); 
if ($isAdminPage) { 
    // do admin stuff 
}