2012-05-09 19 views
17

मैं ट्रिडियन 2011 एसपी 1 में एक कस्टम नियोक्ता बनाने की कोशिश कर रहा हूं जो एक बार प्रकाशित होने के बाद एक सॉल्टर उदाहरण के लिए एक घटक को इंडेक्स कर सकता है। सबकुछ ठीक काम कर रहा है लेकिन मैं घटक क्षेत्रों को अनुक्रमित करने के तरीके के साथ एक समस्या में आया हूं।एक कस्टम नियोक्ता से किसी घटक के फ़ील्ड तक पहुंचें

मैं component.getCustomMeta() विधि का उपयोग कर मेटा डेटा फ़ील्ड्स तक पहुंच सकता हूं और XML को पार्स कर सकता हूं। सामान्य फ़ील्ड तक पहुंचने से आउटपुट होने और आउटपुट को पार्स करने वाली फ़ाइल में पढ़ने के बिना संभव नहीं लगता है। यह पूरी तरह से व्यवहार्य नहीं है क्योंकि मार्कअप बदल सकता है और यह एक साधारण बात है (आशा है कि) एक साधारण चीज़ होने के आसपास एक लंबा रास्ता प्रतीत होता है।

मेरे पास दस्तावेज़ों के माध्यम से एक ट्रैवल है और फील्ड मान प्राप्त करने के लिए कुछ भी उपलब्ध नहीं है, इसलिए क्या मुझे यहां नुकसान हुआ है और आउटपुट को पार्स करने की आवश्यकता होगी या क्या मुझे कहीं कुछ याद आ रहा है?

उत्तर

12

सामग्री फ़ील्ड डिलीवरी पक्ष पर प्रकट नहीं होते हैं, सामग्री आश्चर्यजनक रूप से, "सामग्री" के रूप में प्रकट नहीं होती है।

तुम सच में क्षेत्रों की जरूरत है, आप की जरूरत करने के लिए:

  1. अपने घटक प्रस्तुतियों के लिए एक "parseable" उत्पादन का उत्पादन
  2. घटक प्रस्तुतियों पार्स के रूप में वे प्रकाशित हो।

इसी तरह के दृष्टिकोण के लिए DD4T जैसे कार्यान्वयन को देखें।

संक्षेप में - आप इसे नहीं कर सकते हैं, क्योंकि ट्राइडियन इसे बॉक्स के बाहर नहीं दिखाता है। ऐसा करने का एकमात्र तरीका टेम्पलेट के माध्यम से सामग्री आउटपुट प्रारूप को बदलना है।

4

हमने इसी तरह की आवश्यकता के लिए एक वैकल्पिक कार्यवाही की है। कार्यान्वयन के साथ एक नीचे की तरफ एक्सएमएल में घटक प्रस्तुतियों और दलाल में एक्सएमएल स्टोरेज के डुप्लिकेट का अतिरिक्त प्रतिपादन है।

यहाँ हम क्या किया है है:

  1. एक गतिशील सीटी (सामग्री के XML प्रतिनिधित्व) GetComponentAsXML बनाया और मैप किए गए सभी स्कीमा को
  2. सभी पृष्ठ टेम्प्लेट एक सी # TBB है कि सामग्री की खोज करता है है हम SOLR के लिए पुश करने के लिए की जरूरत है
  3. सी # TBB गतिशील सीटी GetComponentAsXML ऊपर के साथ RenderComponentPresentation, इस एक्सएमएल (engine.RenderComponentPresentation (component.Id, componentTemplateURI)
  4. deployer अब XML स्वरूप में सामग्री हो जाता है धक्का, एक में करता है अन्य प्रकार के घटक प्रस्तुतिकरणों (जैसे एसीएक्स, पृष्ठ आदि पर emebedded ..)

आशा है कि यह जानकारी मदद करेगी।

+0

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

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