2016-03-01 8 views
6

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

Datasource=/sitecore/Media Library/Images/Folder&IncludeTemplatesForDisplay=Data Template A 

या एक प्रश्न: प्रलेखन के अनुसार, यह करने के लिए आसान होना चाहिए

query:/sitecore/Media Library/Images/Folder/*[@@templatename='Data Template A'] 

किसी कारण से, हालांकि, क्षेत्र रहा है पथ के अलावा कुछ भी अनदेखा करें। यह पेड़ के सही हिस्से को प्रदर्शित करेगा, लेकिन सभी वस्तुओं (डेटा टेम्पलेट बी सहित) दिखाता है और उन्हें चुनने की अनुमति देता है। मैंने [Exclude|Include]TemplatesFor[Selection|Display] के विभिन्न क्रमपरिवर्तनों की कोशिश की है, जिनमें से कोई भी प्रभावी साबित नहीं हुआ है। मैंने [@@templatename!='Data Template B'] या templateid के साथ दोनों दृष्टिकोणों का उपयोग करके क्वेरी से बी को बाहर करने का भी प्रयास किया है।

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

कुछ अन्य फ़ील्ड हैं जो मैं बहिष्कारों का सम्मान कर सकता हूं लेकिन पेड़ दृश्य प्रस्तुत नहीं कर सकता: फिर से, सेवा योग्य लेकिन विचार नहीं, क्योंकि संभावित रूप से यहां बहुत सारी चीज़ें हो सकती हैं और पेड़ दृश्य उपयोगकर्ता को प्रदान करता है कुछ उपयोगी संदर्भ के साथ।

मैं संभवतः एक नया फ़ील्ड प्रकार लिख सकता हूं जो ड्रॉपट्री की नकल करता है लेकिन वास्तव में बहिष्कार का सम्मान करता है - और मैं इतना जिद्दी हूं कि यह वह मार्ग हो सकता है जो मैं लेता हूं - लेकिन मैं यह सुनिश्चित करने के लिए पहले जांचना चाहता था कि मैं नहीं था बस कुछ याद नहीं है। तो यह सवाल है: किसी को भी ड्रॉपट्री सम्मान बनाने के तरीके के बारे में पता है या तो आगे बढ़ने से पहले क्वेरी द्वारा एक्सप्लोर टेम्पलेट्स चयन/प्रदर्शन या फ़िल्टरिंग?

उत्तर

6

साइटकोर DropTree फ़ील्ड IncludeTemplatesForSelection या IncludeTemplatesForDisplay पैरामीटर का समर्थन नहीं करता है।

वे केवल Treelist, TreelistEx और Mulitlist फ़ील्ड के साथ काम करते हैं।

आप रिचर्ड कैब्राल द्वारा बनाए गए FilteredTree फ़ील्ड प्रकार का उपयोग कर सकते हैं।

आप इसे यहां गिट से ढूंढ सकते हैं: Filtered Tree by Richard Cabral at github

+0

इस लागू करने पर काम करते हुए, लेकिन किसी को भी, जो इस प्रकार है के लिए त्वरित नोट के एक जोड़े के बाद: 1. यह भी इस की आवश्यकता है: https://github.com/sitecorerick/spark-sitecore-client/blob/master/Fields /FilterableDataTreeView.cs 2. मैंने उपयोग कथन में 'TreeNode = Sitecore.Web.UI.HtmlControls.TreeNode' का उपयोग करके जोड़ा। –

+0

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

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