में ट्रिडियन घटक लिंक हल नहीं कर रहा है मैं वर्तमान में ट्रिडियन 200 एसपी 1 में कार्यक्षमता को कार्यान्वित कर रहा हूं, जहां उपयोगकर्ता एक फ़िल्टर का उपयोग करने में सक्षम है जो बदले में ब्रोकर से मिलान मानदंडों के लिए पूछताछ करता है और फिर पृष्ठ पर घटक प्रस्तुतिकरण देता है। लौटाए गए प्रत्येक आइटम में एक घटक लिंक होता है।गतिशील घटक प्रस्तुति
मूल रूप से गतिशील सीपी ब्रोकर डीबी में HTML टुकड़ों के रूप में संग्रहीत किए गए थे, लेकिन यह पता चला कि सीपी को इस तरह से संग्रहीत करते समय, ट्रिडियन सामग्री से घटक लिंक को पट्टी कर देगा और HTML में रिक्त स्थान छोड़ देगा।
मैंने फिर सेटिंग को स्विच किया ताकि गतिशील सीपी अब फाइलस्टोर पर एसीएक्स नियंत्रण के रूप में संग्रहीत हो जाएं। जब यह सेटिंग उपयोग की जाती है, तो <tridion:ComponentLink ... />
को एक्सेक्स फ़ाइल में सफलतापूर्वक संग्रहीत किया जाता है।
हालांकि, जब मैं स्क्रीन पर परिणाम प्रस्तुत करने आया हूं, तो घटक लिंक हल नहीं किया जा रहा है और मुझे अपने परिणामस्वरूप स्रोत में <tridion:ComponentLink ... />
के साथ छोड़ा जा रहा है।
वर्तमान में, मैं सीपी सामग्री को वापस करने के लिए GetComponentPresentation
विधि का उपयोग कर रहा हूं जिसे डिस्प्ले के लिए पुनरावर्तक से बंधने से पहले सूची में जोड़ा जाता है।
संक्षिप्त कोड के नीचे है:
ComponentPresentationFactory CPFactory = new ComponentPresentationFactory();
List<string> componentPresentations = new List<string>();
for (int i = 0; i < tbl.Rows.Count; i++)
{
ComponentPresentation cp = CPFactory.GetComponentPresentation(
tbl.Rows[i][0].ToString(),
strComponentTemplate.ToString());
if (cp != null)
{
componentPresentations.Add(cp.Content);
}
}
इस सूची में हमेशा की तरह पुनरावर्तक के लिए बाध्य है:
rptOffer.DataSource = componentPresentations;
rptOffer.DataBind();
किसी को भी पता है कि कैसे मैं हल किया जाना घटक लिंक मजबूर कर सकते हैं और GetComponentPresentation
फ़ंक्शन मेरे लिए ऐसा क्यों नहीं करता है?
क्या ऐसा कुछ है जो मुझे अलग-अलग करना चाहिए या क्या यह संभव है कि मैं इसे लागू कर रहा हूं?
मैंने पुष्टि की है कि tridion
टैगprefix web.config में सही ढंग से पंजीकृत है।
मैं ट्रिडियन के लिए बिल्कुल नया हूं इसलिए किसी भी मदद की बहुत सराहना की जाती है!
अद्यतन
मैं विल के सुझाव को लागू करने के रूप में यह मेरी परिदृश्य के लिए सबसे उपयुक्त समाधान की तरह लगता है का प्रयास किया है, लेकिन मैं एक (बहुत नरम) त्रुटि प्राप्त कर रहा हूँ जब मैं के साथ विल के सुझाव उपयोग करने का प्रयास मेरी नीचे दिए गए कोड:
ComponentPresentationAssembler cpa = new ComponentPresentationAssembler("tcm:35-62652-64");
string content = cpa.GetContent(tbl.Rows[i][0].ToString(), strComponentTemplate.ToString());
वास्तव में 2 त्रुटियाँ जो (प्रतीत होता है) पाए जाते हैं बेतरतीब ढंग से, लेकिन हमेशा cpa.GetContent(...)
कॉल पर। त्रुटियां हैं:
Exception occurred during configuration callback
OR
com.tridion.dcp.ComponentPresentationFactory
मुझे यह पता लगाना प्रतीत नहीं होता कि कोड चलाने के दौरान त्रुटि क्यों बदलती है। जब कोई कोड परिवर्तन नहीं किया जाता है तब भी त्रुटि बदल जाती है।
क्या कोई जानता है कि मैं यहां क्या खो रहा हूं? मैंने माना कि ब्रोकर स्टोरेज इत्यादि से कनेक्टिविटी के साथ यह एक मुद्दा होगा लेकिन तब मुझे याद आया कि जब मैं ComponentPresentationFactory
कक्षा का उपयोग कर रहा था तो वह हिस्सा काम कर रहा था।
यदि यह मदद करता है, डीसीपी जो एक ascx के रूप में फ़ाइल की दुकान पर संग्रहीत है निम्नलिखित एचटीएमएल शामिल हैं:
<div class="content-list-item offer redesign noImage">
<h2><span>Mike Offer 01/06 - 10/06 & 20/06 - 10/07</span> Exp May 20th</h2>
<div class="content-list-item-text">
<p>Body Text</p>
<div class="input-btn burgundy">
<tridion:ComponentLink runat="server" PageURI="tcm:0-0-0" ComponentURI="tcm:35-31685" TemplateURI="tcm:0-0-0" AddAnchor="false" LinkText="Button Text<span class="rm">: Button Text</span>" LinkAttributes=" alt="Button Text" target="_self" " TextOnFail="true"/>
</div>
<p>Sub Title</p>
</div>
<div class="offers-list">
<ul>
<li>Offer ends: 20 May 2012</li>
<li>Offer available at all hotels</li>
</ul>
</div>
<div class="back-to-top">
<a href="#content">Back to top</a>
</div>
अद्यतन 2
रयान के लिए धन्यवाद, मैं हमने पाया है कि मेरी डीसीपी (एएससीएक्स) फ़ाइलों को wwwroot फ़ोल्डर के भीतर एप्लिकेशन के फ़ोल्डर में प्रकाशित नहीं किया जा रहा था, जिसने इसे <tridion:ComponentLink ... />
टैग को सीधे स्रोत पर आउटपुट करने का मुद्दा हल किया है। अब इसे प्रस्तुत किया जा रहा है लेकिन लिंक अभी भी हल नहीं हो रहा है। <a ... />
टैग आउटपुट नहीं हो रहे हैं। यह वह जगह है जहां असेंबलर आ जाएगा - एक बार जब मैं इसे काम पर ला सकता हूं।
मैं और अधिक प्रवेश कार्यान्वित किया है और जाँच और त्रुटि जिससे पता चलता है कि मैं एक जार फ़ाइल मौजूद न हो या गलत संस्करण के बारे में अधिक जानकारी नहीं है है:
Exception Details: Java.Lang.ClassNotFoundException: com.tridion.dcp.ComponentPresentationFactory
दिलचस्प यह है कि जब मैं का उपयोग करें ComponentPresentationFactory
वर्ग, यह काम करता है (आंतरिक लिंक को हल किए बिना) लेकिन जैसे ही मैं असेंबलर का उपयोग करता हूं, यह उपरोक्त त्रुटि को फेंकता है।
मैंने एल्विन द्वारा सुझाए गए कन्स्ट्रक्टर को पृष्ठ जोड़ने का भी प्रयास किया है लेकिन आउटपुट वही है।
अरे माइक, Tridion में आपका स्वागत है है। आप अपनी नईता को अच्छी तरह छिपाने में कामयाब होते हैं। :-) आप पाएंगे कि ट्रिडियन समुदाय के अधिकांश सदस्य काफी उपयोगी हैं। यदि आपने पहले से ऐसा नहीं किया है, तो कृपया क्षेत्र 51 पर हमारे ट्रिडियन प्रस्ताव को प्रतिबद्ध करें: http://area51.stackexchange.com/proposals/38335/tridion?referrer=lav544jo87qNn9xqeeO2NA2 –
समस्या सीपीएफटीसी के साथ है - इसके बजाय CPAssembler का उपयोग करें, विल अपने उत्तर –
पर .getContent() त्रुटि पर, किसी भी मौके से यह एकाधिक प्रस्तुति सर्वर से संबंधित है और/या घटक प्रस्तुतियां वास्तव में अप्रकाशित होने पर कोड चलाते समय अप्रकाशित होती हैं? –