2012-05-11 13 views
9

से एक्सेस करना क्या किसी को पता है कि पेज टेम्पलेट मेटाडाटा को रेज़र टीबीबी के भीतर से पढ़ना संभव है?पेज टेम्पलेट मेटाडाटा को एक रेजर टीबीबी

<div class="@Page.Template.Metadata.content_grid"> 
</div> 

दुर्भाग्य से यह एक अशक्त संदर्भ अपवाद फेंकता है: मैं एक डिजाइन है कि 960 ग्रिड प्रणाली का उपयोग करते हुए मेरी सीटी की पुन: प्रयोज्य रखने के लिए मैं की तरह कुछ करने के लिए सक्षम होने के लिए उम्मीद कर रही थी बनाया गया और लागू करने कर रहा हूँ।

क्या मैं संभव प्रयास कर रहा हूं या क्या मुझे पैकेज में यह जानकारी जोड़ने के लिए एक कस्टम टीबीबी लिखने की आवश्यकता है?

+1

मैंने एलेक्स को इंटरनेट के इस तरफ आने के बारे में नहीं देखा है, तो शायद मैं इसके बारे में अपने ब्लॉग पर पोस्ट करूंगा: http://www.codedweapon.com/ –

+0

धन्यवाद लिंक - ऐसा लगता है कि वह v1.3 के लिए अतिरिक्त कार्यक्षमता के रूप में इसकी योजना बना रहा है – richeym

उत्तर

5

एलेक्स के ब्लॉग पर शीर्षक सवाल पूछने के लिए के बाद, मुझे लगता है कि वह पहले से ही answered it for someone else है:

खाका मेटाडाटा बाहर हो रही के बारे में ... दुर्भाग्य से मैं नहीं खाका ही है, के लिए अभी तक एक आवरण बनाया है @ खाका कि है अभी उजागर सिर्फ Tridion.ContentManager.CommunicationManagement.Template है, जो अब के लिए मतलब है कि आप बाहर पुराने जमाने रास्ता टेम्प्लेट फ़ील्ड प्राप्त करना होगा:

@ {Tridion.ContentManager.ContentManagement.Fields.ItemFields टेम्पलेट फ़ील्ड = नया ContentManager.ContentManagement.Fields.ItemFields (Template.Metadata, टेम्पलेट। मेटाडाटास्केमा); }

मैं अब हालांकि मेरे करने के लिए सूची में इस जोड़ दिया है, ताकि आप को देखने के लिए एक सुविधा के आवरण है कि आप संस्करण 1.3 में @ Template.MetaData.YourField करने के लिए अनुमति देगा सुनिश्चित हो जाएगा।

0

मैं निम्नलिखित कोड का उपयोग कर घटक टेम्पलेट मेटाडाटा के लिए इस प्राप्त करने में सक्षम था:

@foreach (var cp in ComponentPresentations) { 
    @if (cp.Template.Metadata != null && cp.Template.Metadata["position"] != null){ 
     @Debug(string.Format("The Component Template position is {0}", cp.Template.Metadata["position"].InnerText)) 
     @if (cp.Template.Metadata["position"].InnerText.ToLower().Equals("main")){        
      @cp.RenderComponentPresentation() 
     } 
    } 
} 

इसलिए, मुझे लगता है कि आप निम्न जैसा कुछ उपयोग करने के लिए सक्षम होना चाहिए:

@if (Page.Template.Metadata != null && Page.Template.Metadata["content_grid"] != null){ 
    @Debug(string.Format("The content_grid value is {0}", Page.Template.Metadata["content_grid"].InnerText)) 
    <div class="@Page.Template.Metadata["content_grid"].InnerText"> 
    </div> 
} 

कृपया ध्यान दें। इनरटेक्स्ट और नहीं। वैल्यू क्योंकि content_grid को xml के रूप में वापस कर दिया गया है। मेरे कोड 'स्थिति' में बस एक स्ट्रिंग थी। मुझे लगता है कि यदि आप वर्गीकरण का उपयोग कर रहे हैं तो यह अलग हो सकता है।

धन्यवाद, जोनाथन

पी.एस. मैं रेजर मध्यस्थ के संस्करण 1.2 का उपयोग कर रहा हूं

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