केवल उपयोगकर्ता प्रोफ़ाइल पृष्ठ पर ब्लॉक दिखाएं


10

मैं एक ब्लॉक दिखाना चाहता हूं, जब कोई उपयोगकर्ता अपने उपयोगकर्ता के प्रोफाइल पेज पर जाता है। सार्वजनिक उपयोगकर्ता प्रोफ़ाइल में "/ सदस्य / [उपयोगकर्ता नाम]" के पथ हैं।

जब मैं ब्लॉक को "उपयोगकर्ता" तक सीमित करता हूं तो यह दिखाई नहीं देगा। जब मैं इसे "सदस्य / *" तक सीमित करता हूं, तो यह स्वयं के प्रोफाइल और सार्वजनिक प्रोफाइल दोनों पर दिखाई देगा।

क्या "उपयोगकर्ता" यूआरएल कुछ विशेष है?


2
यह भी "उपयोगकर्ता / *" जो बनाता है मुझे लगता है के लिए आंतरिक अन्य नाम के लिए काम करता है userपृष्ठ वास्तव में है user/[uid]/: ... इस एक के लिए PHP का सहारा लेना पड़ सकता है
क्लाइव

7
return arg(0) == 'user' && is_numeric(arg(1)) && !arg(2);चाल करना होगा
क्लाइव

1
@Clive सामान्य रूप से टिप्पणियों में FIRE को छोड़ रहा है = D
डिजिटल फायर

@Clive, बस इस उत्तर के लिए आपको और अधिक सहारा देना चाहता था। एक साल बाद, और मुझे यह पृष्ठ फिर से मिला। एक बार फिर धन्यवाद!
14:21 पर हॉकी 1112

जवाबों:


2

यदि आप इसके लिए उपयोग करना चाहते हैं तो @clive ने जो उल्लेख किया है वह बहुत अच्छा है /user, लेकिन कई कोणों से, मुझे वास्तव में इस तरह की चीज़ के लिए इसका उपयोग करना पसंद नहीं है। मैं ज्यादातर शैली के दृष्टिकोण से कहना चाहूंगा, लेकिन वास्तव में लिंकिंग दृष्टिकोण से अधिक, उदाहरण के लिए, एक ईमेल या पोस्ट जिसमें check out my cool profile on mototribe: www.mototribe.com/userबोलिंग की चीजें शामिल हैं।

इसलिए, जब मैंने इस तरह से सामान किया है, तो मैं अपने ब्लॉक व्यू में php लॉजिक को शामिल करता हूं:

$global $user;
$block=array();
$node=menu_get_object();

if ($node->type==THENODETYPEWEARELOOKINGFOR && $node->uid==$user->uid) {
  // generate the block here
} else {
  // don't generate anything (or put something else in it's place)
}

return $block;

इसलिए ब्लॉक केवल तब उत्पन्न होता है जब वर्तमान में लॉग इन किया गया उपयोगकर्ता एक निश्चित नोड प्रकार को देखता है जो उसका मालिक है। जाहिर है मैंने उपरोक्त के लिए प्राइम टाइम में सभी isset () s या खाली () s की आवश्यकता नहीं बताई है, लेकिन मुझे यकीन है कि आपको जिस्ट मिल जाएगा।

बेशक, मैं यहाँ कुल स्मैक पर बात कर सकता हूँ अगर D7 उपयोगकर्ता प्रोफाइल नोड नहीं हैं, लेकिन यह सामग्री 6 के साथ D6 में बढ़िया काम करता है :)


यह एक महान बिंदु और उपयोग न करने का एक कारण / उपयोगकर्ता है। मुझे लगता है कि मैं जाँच करने के लिए कुछ PHP का उपयोग कर सकता हूँ कि लॉग इन किया गया उपयोगकर्ता अतिरिक्त ब्लॉक दिखाने के लिए अपनी प्रोफ़ाइल देख रहा है या नहीं। धन्यवाद
uwe

आपका और क्लाइव का कोड का मेल: वैश्विक $ उपयोगकर्ता; वापसी arg (0) == 'उपयोगकर्ता' और& is_numeric (arg (1)) & &-arg (2) और& $ उपयोगकर्ता-> uid == arg (1); एक बार फिर धन्यवाद!!!
उवे १४'१२
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.