2008-08-27 15 views
5

में नियंत्रण ब्लॉक मेनू आइटम संपादित करें मैं SharePoint 2007 में गतिशील प्रति-आइटम मेनू (नियंत्रण नियंत्रण ब्लॉक) सेट अप करने का प्रयास कर रहा हूं। मेरा लक्ष्य वर्तमान उपयोगकर्ता की समूह सदस्यता के आधार पर उपलब्ध कुछ विशेषताओं को रखना है।गतिशील रूप से SharePoint

मुझे पता है कि इस मेनू आइटम के निर्माण को नियंत्रित करने वाले कस्टमएक्शन टैग में अधिकार विशेषता है। मेरे पास यह समस्या यह है कि जिन समूहों का मैं उपयोग कर रहा हूं, उनमें साइट पर समान अधिकार हैं (ViewListItems, ManageAlerts, आदि)। जिन समूहों को हमने स्थापित किया है, वे प्रबंधक, कर्मचारी इत्यादि जैसे फ़ंक्शन के साथ अधिक सौदा करते हैं। हम एक समूह को एक कस्टम फीचर असाइन करने में सक्षम होना चाहते हैं, और उस समूह से जुड़े मेनू आइटम केवल उस समूह के सदस्यों के लिए दृश्यमान हैं । प्रत्येक व्यक्ति के पास समान मूल साइट अनुमतियां होती हैं, लेकिन उनके लॉगिन प्रमाण-पत्रों के आधार पर अतिरिक्त विकल्प उपलब्ध होंगे।

मैंने संदर्भ मेनू में आइटम छिपाने के लिए Core.js फ़ाइल को संशोधित करने पर कई लेख देखे हैं, लेकिन वे सभी या कुछ भी नहीं हैं। http://blog.thekid.me.uk/archive/2008/04/29/sharepoint-custom-actions-in-a-list-view-webpart.aspx पर एक दिलचस्प पोस्ट है जो दिखाता है कि क्रिया मेनू को गतिशील रूप से कैसे संशोधित करें। उपयोगकर्ता समूह की जांच करने और सदस्यता के आधार पर मेनू को दिखाने या छिपाने के लिए इस उदाहरण को संशोधित करना मुश्किल है। दुर्भाग्यवश, यह उदाहरण संदर्भ मेनू आइटम पर लागू नहीं होता है जैसा कि यहां http://forums.msdn.microsoft.com/en-US/sharepointdevelopment/thread/c2259839-24c4-4a7e-83e5-3925cdd17c44/ प्रमाणित है।

क्या किसी को जावास्क्रिप्ट का उपयोग किये बिना ऐसा करने का कोई तरीका पता है? यदि नहीं, तो उपयोगकर्ता के समूह को जावास्क्रिप्ट से जांचने का सबसे अच्छा तरीका क्या है?

+0

इस सवाल का शीर्षक अधिक उचित होगा अगर यह "गतिशील रूप से संशोधित सूची आइटम SharePoint में ड्रॉप डाउन मेनू" कर रहे थे .. एक मॉडरेटर अद्यतन कर सकते हैं? –

उत्तर

2

दो अलग-अलग जावास्क्रिप्ट फ़ंक्शंस हैं जिन्हें आप आइटम ड्रॉप डाउन सूची में मेनू आइटम को गतिशील रूप से जोड़ने के लिए कार्यान्वित कर सकते हैं। Core.js (सी: \ प्रोग्राम फ़ाइलें \ सामान्य फ़ाइलें \ Microsoft साझा \ वेब सर्वर एक्सटेंशन \ 12 \ टेम्पलेट \ LAYOUTS \ 1033 \ CORE.JS) किसी चयनित सूची आइटम के लिए मेनू आइटम जेनरेट करते समय इन तरीकों के अस्तित्व के लिए जांच करता है। "Custom_AddDocLibMenuItems" और "Custom_AddListMenuItems" जावास्क्रिप्ट विधियों के नाम हैं।

एक लेख मुझे लगता है कि आप अपने विशिष्ट समस्या का समाधान करने के लिए उपयोग कर सकते हैं, गतिशील मेनू आइटम उपयोगकर्ता भूमिका सदस्यता के आधार पर अनुकूलन, यहां पाया जा सकता:

MSDN: Customizing the Context Menu of Document Library Items (ध्यान दें प्रक्रिया बिल्कुल किसी भी प्रकार की सूची के लिए एक ही है)

यह लेख बताता है कि कैसे सर्वर साइड कोड मेनू आइटम है कि प्रदर्शित किया जाएगा परिभाषित करने के लिए क्रियान्वित किया जा सकता:

[...] और अधिक जटिल मामलों में, आप से उपलब्ध आदेशों की सूची प्राप्त करना होगा सर्वर, क्योंकि केवल फिर आप अपना व्यावसायिक तर्क चला सकते हैं और शायद कस्टम डेटाबेस से कमांड प्राप्त कर सकते हैं। आम तौर पर, आप ऐसा करना चाहते हैं यदि आप वर्कफ़्लो समाधान को कार्यान्वित कर रहे हैं जहां प्रत्येक दस्तावेज़ की अपनी प्रक्रिया स्थिति है, इसके साथ जुड़े आदेशों के साथ।

इस स्थिति का समाधान कस्टम_एडडॉक LibMenuItems गतिशील रूप से एक कस्टम ASP.NET पृष्ठ को कॉल करना है। यह पृष्ठ दस्तावेज़ लाइब्रेरी की आईडी और क्वेरी स्ट्रिंग पर विशिष्ट आइटम लेता है, और उस XML दस्तावेज़ को देता है जिसमें उस विशेष दस्तावेज़ के लिए उपलब्ध कमांड के लिए सभी जानकारी होती है। ये आदेश दस्तावेज़ की प्रक्रिया स्थिति (या कुछ अन्य कस्टम व्यापार तर्क) के अनुसार उपलब्ध हैं। [...]

2

दुर्भाग्यवश जावास्क्रिप्ट का उपयोग किये बिना पूरा करना संभव नहीं है। ईसीबी एक कस्टम एक्शन (साइट एक्शन इत्यादि के विपरीत) के रूप में परिभाषित सर्वर नियंत्रण प्रस्तुत नहीं करता है।

तरीका जानने के लिए जावास्क्रिप्ट निम्न आलेख की जाँच का उपयोग करके यह पूरा करने के: http://www.helloitsliam.com/archive/2007/08/10/moss2007-%E2%80%93-item-level-menus-investigation.aspx

वह
+0

लिंक टूटा हुआ है। – axk