2012-10-24 16 views
6

विशेष रूप से, मामले मैं मन में है यह है:क्या मॉड्यूलर टेम्पलेटिंग और विरासत वीबीस्क्रिप्ट सीटी को अंतःस्थापित करना संभव है?

@@RenderComponentPresentation(Component, "<vbs-legacy-ct-tcm-uri>")@@ 

समस्या मैं आ रही है कि मेरे मामले VBS कोड टूट जाता है में जब यह घटक क्षेत्रों तक पहुँचने के लिए कोशिश करता है, दे रही है "त्रुटि 13 प्रकार बेमेल है। । "।

(तो, अगर मैं जवाब देने के लिए थे, मैं कहता हूँ चाहते हैं: "आंशिक रूप से, कोई व्यावहारिक उपयोग की")

संपादित डीडब्ल्यूटी ऊपर एक और सीटी से है, इसलिए प्रभावी रूप से यह एक प्रतिपादन है घटक लिंक का, यही कारण है कि नूनो के सुझाव के अनुसार पैरामीटर रहित ओवरलोड दुर्भाग्य से काम नहीं करेगा। Btw, VBS अंदर निम्नलिखित लाइनों को तोड़ने नहीं और सही मान दे:

WriteOut Component.ID 
WriteOut Component.Schema.Title 

संपादित 2

डोमिनिक बिल्कुल राइट था: यह एक लापता निर्भरता है।

एक और अधिक जानकारी सा यह जानकारी आम तौर पर उपयोगी बनाने के लिए:

[% 
Call RenderComponent(Component) 
%] 

यह सीटी होना चाहिए था:

मान लीजिए, मूल सीटी की तरह इस ("VBScript [विरासत]" प्रकार) देखा पीटी से भी बुलाया जाता है, वीबीएस आधारित भी। उस पीटी की शुरुआत में "# शामिल" बयान का एक बड़ा हिस्सा था।

अब कहानी बदलती है: उसी सीटी को दूसरे, डीडब्ल्यूटी-आधारित, सीटी से बुलाया जा रहा है। जाहिर है (आप सभी को आपकी अमूल्य मदद के लिए धन्यवाद!), निर्भरता अब कहीं भी शामिल नहीं है।

समाधान फिर से काम कर स्पष्ट रूप से चुने गए करने के लिए किया जाता है मूल सीटी बनाने के लिए और सभी आवश्यक VBS TBBs शामिल है, तो मूल सीटी हो जाता है:

[% 
#include "tcm:<uri-of-vbs-tbb>" 
Call RenderComponent(Component) 
%] 
+0

आप इस पर कैसे हो रहे हैं? इसे हल करने के करीब कोई भी? –

+0

+1 भविष्य में दूसरों की सहायता के लिए प्रश्न को दोबारा संपादित करने के लिए +1। –

उत्तर

5

हां - विरासत और मॉड्यूलर टेम्पलेट्स को मिलाकर मैच करना पूरी तरह से संभव है। शायद जाहिर है, आप दो तकनीकों के बीच template building blocks मिश्रण और मिलान नहीं कर सकते हैं।

वीबीस्क्रिप्ट में "त्रुटि 13 टाइप मिस्चैच" कभी-कभी एक गुप्त कोड के रूप में प्रयोग किया जाता है जिसका वास्तव में अर्थ है "मैं आपके चर के नाम को पहचान नहीं पा रहा हूं, (कार्य और सब्स के नाम सहित)" वीबीस्क्रिप्ट टेम्पलेटिंग में इंजन, पृष्ठ टेम्पलेट से चर आपके घटक टेम्पलेट में गुंजाइश हो सकता है; उदाहरण के लिए, यह पीटी में # शामिल करने के लिए बहुत आम था, इसलिए उन्हें सीटी द्वारा उपयोग किया जा सकता था। मेरा अनुमान है कि आपका घटक टेम्पलेट ऐसे फ़ंक्शन का उपयोग करने का प्रयास कर रहा है, और इसे नहीं ढूंढ रहा है।

+1

मैं सहमत हूं कि यह आपके द्वारा देखी जा रही त्रुटि के लिए सबसे तार्किक स्पष्टीकरण लगता है। मेरे ज्ञान के लिए एक "क्लासिक" स्क्रिप्ट सीपी को एक परिसर से प्रस्तुत करने के साथ कुछ भी गलत नहीं है ... –

4

मुझे पता है कि आप VBScript के साथ एक मॉड्यूलर पृष्ठ टेम्पलेट प्रदान कर सकते हैं घटक प्रस्तुतिकरण, और एक VbScript पृष्ठ टेम्पलेट एक मॉड्यूलर घटक टेम्पलेट प्रस्तुत कर सकते हैं।

आपकी त्रुटि संभवतः किसी और चीज के कारण है? क्या आपने नियमित टेम्पलेट निर्दिष्ट किए बिना नियमित @@RenderComponentPresentation()@@ कॉल का उपयोग करने का प्रयास किया है?

+1

मुझे यह भी लगता है कि आपकी त्रुटि किसी और चीज के कारण है। पहले पैरामीटर के लिए आपने "घटक" के बजाय "Component.ID" को आजमाया था? –

+0

@ निकोली ने भी (और कोशिश की) के बारे में सोचा था, लेकिन सौदा यह था कि सबसे कम वीबीएस कोड में भी घटक घटक को एक्सेस करना अभी भी संभव था, इसलिए निश्चित रूप से, आइटम अभी तक ठीक से पारित किया गया था। – esteewhy

2

पृष्ठ टेम्पलेट विभिन्न स्वादों के कंपाउंड टेम्पलेट्स प्रस्तुत कर सकता है - उदाहरण के लिए रेजर, वीबीएस, या एक्सएसएलटी।

समस्या टेम्पलेट्स में शामिल टीबीबी से आता है। अक्सर रेजर टेम्पलेट्स को उन कार्यों को कॉल करने की आवश्यकता होगी जो केवल VBScript में मौजूद हैं। तो, प्रारंभिक बिंदु टेम्पलेट माइग्रेट करते समय हमेशा सहायक कार्यों और उपयोगिता पुस्तकालयों से शुरू होता है। फिर सबसे सामान्य पीटी/सीटी माइग्रेट करें जो आपके पास नए प्रारूप (रेजर, एक्सएसएलटी, डीडब्ल्यूटी, आदि) के लिए है। यह शेष प्रारूपों को माइग्रेट करने का एक अच्छा आधार प्रदान करता है क्योंकि आपके पास नए प्रारूप में समय है।

+0

रॉबर्ट, सुझाव के लिए धन्यवाद, यह एन-वें समय है, मैं इस शानदार रेजर के बारे में सुन रहा हूं, और इसे आजमाने के लिए इंतजार नहीं कर सकता (मुझे अपने पिछले प्रोजेक्ट पर अच्छा मौका मिला है: - /)। लेकिन, मैं केवल नौकरी के लिए * उचित * उपकरण का उपयोग करने के बारे में सपना देख सकता हूं। (यह एक टेम्पलेट कोड में टिप्पणी देखने के लिए एक कड़वी मजेदार है: "साइट के 90% में प्रयुक्त।") – esteewhy