अनाम उपयोगकर्ताओं तक सीमित पहुंच के साथ मेनू आइटम दिखाएं


9

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

लेकिन मुझे मेनू आइटम के साथ कुछ समस्या हो रही है, वे गायब हो जाते हैं यदि उन्हें सौंपी गई सामग्री सार्वजनिक नहीं है (यानी उन्हें सौंपा गया पृष्ठ निजी है), यह ठीक है, लेकिन मैं चाहूंगा कि वे अभी भी उन वस्तुओं को दिखा सकें नेविगेशन में, इसलिए यदि उपयोगकर्ता उन पर क्लिक करता है, तो यह उन्हें लॉगिन पृष्ठ पर ले जाएगा, जिससे उन्हें उस विशेष पृष्ठ को देखने के लिए अपना विवरण दर्ज करने के लिए कहा जाएगा।

इसलिए मूल रूप से मैं मेनू आइटम के व्यवहार को बदलना चाहता हूं कि वे हमेशा वेबसाइट के अनाम और पंजीकृत सदस्यों को दिखाई देंगे, लेकिन जब आप उन पर क्लिक करेंगे, तो आप या तो पृष्ठ देख पाएंगे (यदि आप लॉग इन हैं में) या लॉगिन पृष्ठ पर अनुप्रेषित (यदि अनाम हो)

मुझे यह समाधान मिला जो मेरे लिए सबसे अच्छा नहीं है क्योंकि मेरे पास कई पृष्ठ हैं जैसे कि मैं एक बेहतर दृष्टिकोण की तलाश में हूं। मैं भी मेनू आइटम दृश्यता मॉड्यूल की कोशिश की है, लेकिन वह भी मदद नहीं की!

मैं इसे कैसे प्राप्त करूं?

लुका


मेरे पास github.com/bbinkovitz/derpl/tree/master/foreshadow_menu पर कुछ कोड हैं जो आपके लिए उपयोगी हो सकते हैं। आपको शायद कुछ मानों को बदलना होगा या फिर अपने मेनू को उसी तरह नाम दें, जैसे मैंने किया था, लेकिन यह आपको शुरू कर सकता है।
beth

जवाबों:


4

आपकी समस्या काफी सामान्य है।

यहाँ चर्चा है कि ड्रुपल 6 और 7 और 8 में इस तरह के ट्रिक को कैसे लागू किया जाए: http://drupal.org/node/300607

Drupal 6 (और 7) ने उन मेनू आइटमों को प्रदर्शित करने की क्षमता को हटा दिया जिनकी उपयोगकर्ता के पास पहुंच नहीं है। हालाँकि, कुछ मामलों में मेनू आइटम को दिखाना वांछनीय है, भले ही उपयोगकर्ता के पास मेनू आइटम तक पहुंच न हो। उदाहरण के लिए, यदि आप एक प्रमाणीकरण तंत्र का उपयोग करते हैं जो 403 प्रदर्शित होने पर प्रमाणीकरण प्राप्त करने की कोशिश करता है, तो आप अभी भी मेनू आइटम प्रदर्शित करना चाहते हैं ताकि उपयोगकर्ताओं को लॉग इन करने के लिए क्रेडेंशियल्स प्रदान करने का मौका मिले।

Drupal 7 का समाधान यहां पाया जा सकता है: http://drupal.org/node/300607#comment-4450062

यदि आप तैयार मॉड्यूल पसंद करते हैं - आप इसे यहाँ डाउनलोड कर सकते हैं https://github.com/systemseed/always_v अदृश्य


आपका बहुत बहुत धन्यवाद। काश उनके पास यह विकल्प निर्मित ड्रुपल
लुका

1

मेरे पास एक ऐसी स्थिति थी जहां मेनू प्रणाली में पृष्ठों को प्रदर्शित करना था, लेकिन सामग्री केवल उपयोगकर्ताओं को लॉग इन करने के लिए दिखाई देनी चाहिए। अंतिम समाधान बहुत सरल था, और काम करना जारी रखता है।

कंटेंट एक्सेस को नियंत्रित करने के बजाय, यदि उपयोगकर्ता लॉग इन है, तो नोड टेम्प्लेट चेक करता है। यदि हां, तो यह कंटेंट प्रदर्शित करता है। यदि नहीं, तो पाठ लॉग इन या रजिस्टर करने के लिए लिंक के साथ दिखाई देता है।

वे स्वचालित रूप से पुनर्निर्देशित नहीं होते हैं, इसलिए यदि यह महत्वपूर्ण है तो यह समाधान नहीं है।

संक्षेप में कोड:

<?php  
global $user;       
if ( $user->uid ) :
print render($content);
// or in some situations, display a view;
else : 
print 'Please <a href="https://drupal.stackexchange.com/user/login">log in</a> or <a href="https://drupal.stackexchange.com/user/register">register</a> etc etc.'
endif; 
?>

धन्यवाद, लेकिन यह कई कारणों से एक अच्छा समाधान नहीं होगा, एक यह है कि मैं एक अलग प्रकार के टेम्पलेट सिस्टम का उपयोग कर रहा हूं और मैं चाहता हूं कि कंटेंट एक्सेस करते समय कंटेंट को लिस्ट किया जाए यानी व्यूज में, यह एक्सेस का सम्मान करेगा।
लुका

आह येस। मुझे आशा है कि आपको उत्तर मिल जाएगा। ऐसा लगता है कि यह एक बहुत ही सामान्य उपयोग-मामला होगा।
केव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.