2012-06-22 8 views
11

अभी मैं उपयोगकर्ता इंटरफ़ेस 2012 को कार्यान्वित कर रहा हूं और कुछ बाधाओं के बाद यह ठीक काम करता है। मैं किसी यूआई-संपादन योग्य फ़ील्ड की उपयोगिता को अनुकूलित करने के लिए देख रहा हूं, और एक संबंधित चुनौती में भाग लेता हूं।क्या हम साइट एडिट 2012 (ट्रिडियन 2011 पर) <add text> लेबल बदल सकते हैं?

एक घटक के भीतर ऐसे कई क्षेत्र हैं जो अनिवार्य नहीं हैं, और जब वे खाली होते हैं तो उन्हें प्रदर्शित नहीं किया जाना चाहिए। जैसे ही एक संपादक यूआई में प्रवेश करता है और घटक कहने वाले घटक का चयन करता है, <add text> और <add internal link to component media> जैसे कई लेबल दिखाई देते हैं।

मैं इन लेबलों को उनकी सामग्री के बारे में कुछ और वर्णनात्मक रूप से बदलने के लिए देख रहा हूं, क्योंकि फ़ील्ड खाली होने पर अतिरिक्त HTML को पृष्ठ में जोड़ा जाएगा।

उदाहरण के लिए (उस्तरा मध्यस्थ का उपयोग कर):

@if(Component.Fields.location != null) { 
    <span class="row"> 
    <strong>Where:</strong> 
    <span>@RenderComponentField("location", 0)</span> 
    </span> 
} else { 
    <tcdl:ComponentField name="location"></tcdl:ComponentField> 
} 

जब स्थान फ़ील्ड रिक्त है, यह सिर्फ <add text> कहते हैं। मैं इसे <Add location to event> में बदलना चाहता हूं।

मैंने tcdl-टैग के बीच कुछ डालने का प्रयास किया है, लेकिन वे UI2012 में संपादन नहीं करते समय भी प्रदर्शित होते हैं। मैं एसडीएल लाइव सामग्री साइटों को खोज रहा हूं लेकिन मुझे इसका कोई संदर्भ नहीं मिल रहा है। किसी के पास कोई विचार है?

+0

अरे एमडीए, यह एक बहुत ही रोचक सवाल है। दुर्भाग्यवश, जैसा कि आप देख सकते हैं, नए यूआई के साथ अनुभव अभी भी कम कमी है (लेकिन तेजी से बढ़ रहा है)। क्या आपने एक अलग ट्रिडियन साइट प्राप्त करने के लिए हमारे प्रस्ताव में शामिल होने पर विचार किया था? http://area51.stackexchange.com/proposals/38335/tridion?referrer=lav544jo87qNn9xqeeO2NA2 –

उत्तर

2

मैं इसे देख रहा था जब मैं इसे देख रहा था, लेकिन मुझे नहीं लगता कि यह आसानी से AFAIK करने योग्य है। मैं थोड़ी गहरी गई और पाया कि लेबल संसाधन फ़ाइल Tridion.Web.UI.Editors.SiteEdit.Strings.resxEmptyTextField का हिस्सा हैं। मैंने इस के साथ बेवकूफ़ बनाने का विकल्प नहीं चुना क्योंकि यह समर्थित तरीका नहीं होगा, न ही दस्तावेज और इसके शीर्ष पर मुझे अभी भी प्रत्येक फ़ील्ड के लिए अपना टेक्स्ट जोड़ने की लचीलापन नहीं है।

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

  • "डिफ़ॉल्ट मानों" के साथ स्कीमा फ़ील्ड बनाएं (उदा। "ईवेंट में स्थान जोड़ें")। डिफ़ॉल्ट यूआई आपके यूआई में प्रदर्शित किया जाएगा।

  • एक तरह से आपके टेम्पलेट में लिखें कि अगर स्कीमा क्षेत्र मान डिफ़ॉल्ट रूप में ही है

@@if(Component.Fields.location.value == [Compare the schema field definition - default value of the field]) { 
    //--> Note: I could not find a straight API for this.. but I am assuming it should be there. 
    @RenderComponentField("location", 0) 
} else { 
    <span class="row"> 
     <strong>Where:</strong> 
     <span>@RenderComponentField("location", 0)</span> 
    </span> 
} 
  • लक्ष्य प्रकार यूआई के आधार पर हालत की जांच से ऊपर प्रदर्शन करना सक्षम, क्योंकि हम नहीं करना चाहते लाइव लक्ष्य आदि के लिए डिफ़ॉल्ट पाठ प्रदर्शित करें

इसके अलावा, वृद्धि अनुरोध के रूप में ट्रिडियन आइडिया पोस्ट करना बहुत अच्छा होगा। अगर मैं पहले से मौजूद नहीं हूं तो मैं इसे अगले कुछ दिनों में करूँगा।

1

मुझे दृष्टिकोण पसंद है क्योंकि यह क्षेत्र के स्तर पर लेखक के निर्देश देने का एक त्वरित तरीका होगा। हम आमतौर पर सीएमई में इस प्रकार की सहायता प्रदान करने के लिए विवरण फ़ील्ड का उपयोग करते हैं।

इनलाइन संपादन के लिए, content types (एसडीएल लाइव सामग्री - लॉगिन आवश्यक) एक और विकल्प है क्योंकि वे स्कीमा (और प्रोटोटाइप घटक), टेम्पलेट, निर्देश, और "सेव करने के लिए" संदर्भ को परिभाषित है।आप लेखकों को प्रतिस्थापित करने वाले डमी टेक्स्ट की पेशकश कर सकते हैं।

सुझाव: प्रोटोटाइप घटक में

  • जोड़ें नमूना सामग्री और/या निर्देश (Lorem Ipsum)।
  • सामग्री प्रकार विवरण में अतिरिक्त निर्देश जोड़ें।
  • प्रोटोटाइप घटक के फ़ोल्डर के अलावा संग्रहण स्थान का चयन करें।

हमें बताएं कि यह कैसा चल रहा है। :-)

3

खाली फ़ील्ड के प्लेसहोल्डर टेक्स्ट को अनुकूलित करने के लिए कोई समर्थित तरीका नहीं है। लेकिन अगर आप एक्सटेंशन है, जो निम्न विधि को ओवरराइड करता है लिखने की कोशिश कर सकते हैं:

Tridion.Web.UI.SiteEdit.ComponentField.prototype.setPlaceholderType 

इस विधि प्लेसहोल्डर पाठ की स्थापना के लिए जिम्मेदार है।