2013-01-02 11 views
11

में एचटीएमएल (शाब्दिक और आंशिक तत्व) डालें, मैं ट्रिडियन में एक जीयूआई एक्सटेंशन बनाने की कोशिश कर रहा हूं जहां एक बटन क्लिक होने पर मैं आरटीएफ में एक विशिष्ट एचटीएमएल डालता हूं .... मेरे पास टूल बार है उपयोगकर्ता को सूचित करने के लिए बटन और पॉपअप। लेकिन जब मैं एचटीएमएल "</div > < div class = 'पृष्ठ' >" डालने पर पॉपअप पर ठीक क्लिक करता हूं, तो यह "< div class = 'पृष्ठ'/>" सम्मिलित करता है।ट्रिडियन - आरटीएफ

मुझे पता चला कि लागू HTML विधि क्या है जो संशोधित किया जा रहा है संशोधित करता है। क्या कोई और फ़ंक्शन/विधि है जो मैं वास्तव में जो इंगित करता हूं उसे सम्मिलित करता है, मेरा मतलब है कि गुम बंद टैग या खुले टैग के साथ अमान्य HTML?

+0

मुझे यकीन नहीं है कि फ़ंक्शन क्या है, लेकिन मुझे लगता है कि HTML tidying फ़ंक्शन को बाईपास करना असंभव है क्योंकि सामग्री को अच्छी तरह से एक्सएचटीएमएल बनाया जाना चाहिए। यदि आप समझा सकते हैं कि आप क्या हासिल करने की कोशिश कर रहे हैं तो शायद एक अधिक उपयुक्त समाधान प्राप्त किया जा सकता है। – johnwinter

उत्तर

6

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

</div><div class='Page'>

रिच टेक्स्ट कार्यक्षमता रखने के लिए और कुछ विशिष्ट Tridion प्रथाओं का पालन करें, निम्न में से एक पर विचार करने के लिए। एक बार

अपने अंतिम मार्कअप मान लिया जाये पर

पूरा सभी मार्कअप परिवर्तन एक खुला <div> और </div> बंद करने, बनाने आपका एक्सटेंशन चयनित रिच टेक्स्ट के एक पूरे सेट लपेट पर विचार करना होगा। प्रक्रिया में और घटक को अद्यतन करने से पहले, लेखक को "विभाजन" का स्थान चुनने और संपूर्ण अद्यतन को आरटीएफ में सहेजने की क्षमता दें।

एम्बेडेड स्कीमा और टेम्पलेट कोड के साथ "विभाजन" बनाएँ

एंबेडेड स्कीमा क्षेत्रों एक बहुत ही आसान तरीका करने के लिए सामग्री विभाजित कर रहे हैं। लेखक एम्बेडेड फ़ील्ड का एक नया सेट बनाते हैं और टेम्पलेट कोड आपके मामले में टैब, पैराग्राफ, या पेज (पेजिनेशन?) में बदल सकता है।

"Paragraph" embedded schema can handle this use case, जैसा कि मैं इसे समझता हूं।

<!-- TemplateBeginRepeat name="Component.Fields.Paragraph" --> 
<div class='Page'> 
<!-- author-entered content --> 
</div> 
<!-- TemplateEndRepeat --> 

यह एम्बेडेड क्षेत्रों के सेट के बीच में </div><div class='Page'> पैदा करेगा। यह आपको विस्तार में परिवर्तन के बिना भविष्य में कक्षा और टैग को बदलने देता है।

सम्मिलित गैर एचटीएमएल "मर्ज फील्ड्स" मेरे द्वारा कोई पोस्ट custom tags in rich text fields बारे में लिखा था पर इसके बजाय

विकल्प, देखें जिसमें शामिल हैं: इस तरह के class="page-split" के रूप में सामग्री प्रबंधक Explorer में

  • सीएसएस वर्गों। आप इसे एक निश्चित तरीके से देखने के लिए शैली भी बना सकते हैं (उदाहरण के लिए <hr/> के रूप में दृष्टि से), फिर अंतिम मार्कअप में जो कुछ भी आपको चाहिए उसे टेम्पलेट करें।
  • जैसे कि "[[end-page]][[start-page]"
  • कस्टम एचटीएमएल 5 नोड्स मर्ज फ़ील्ड प्लेसहोल्डर टैग, आप

आप एक एक्सटेंशन के साथ इनमें से किसी भी सम्मिलित कर सकते हैं चाहिए, वैकल्पिक रूप से उन्हें स्टाइल सीएमई में एक निश्चित तरीके से देखने के लिए।

मुझे समृद्ध टेक्स्ट फ़ील्ड के भीतर कार्यक्षमता डालने के लेखकों को आसान तरीके देना पसंद है, लेकिन विशिष्ट HTML, विशेष रूप से अमान्य HTML को सम्मिलित करने के साथ पकड़, सामग्री में इस कार्यक्षमता को कड़ी-कोडिंग करना कठिन है। आप माइग्रेशन और डिज़ाइन परिवर्तनों के साथ समस्याओं में भाग लेंगे।

ट्रिडियन सामग्री से डिज़ाइन को अलग करने का लाभ उठाने पर विचार करें।

+0

अरे एल्विन, एक गुच्छा आदमी धन्यवाद ... आपने हमें बहुत सारे शोध और काम को बचाया .... आप सही हैं, हम अंकन को पूरा करने की कोशिश कर रहे हैं। इस तरह मैंने इसे किया .... मैंने प्लेसहोल्डर टैग [पेजिनेटहेयर] का उपयोग HTML में किया था। और फिर एक getSource() किया। लौटाए गए पाठ में मैंने टैग को अमान्य HTML से बदल दिया। और फिर एक सेटसोर्स() किया। एक बार फिर धन्यवाद! –

+0

सुनना अच्छा है। मुझे आपका "पेजिनेटहेयर" विकल्प पसंद है (मुझे ब्लॉगर की 'अधिक' सुविधा की याद दिलाता है)। विकल्प स्कीमा फ़ील्ड एम्बेडेड होगा - मुख्य रूप से क्योंकि यह आज "पेज" है लेकिन शायद टैब, स्वाइप करने योग्य क्षेत्रों, या कुछ अन्य नेविगेशन दृष्टिकोण अगले हैं। सामग्री सामग्री को अलग करने के लिए बॉक्स "+" बटन से बाहर दबाएगा। किसी भी तरह से, आप आरटीएफ_ में प्लेसहोल्डर को भी हटा सकते हैं और इसे टेम्पलेट्स के साथ बदल सकते हैं। –

0

संभवतः जब आप कहते हैं: </div><div class='Page'>, आपका मतलब <div class='Page'></div> है। यदि ऐसा है, तो जब तक आप सीधे XML tidying को नियंत्रित नहीं कर सकते, तब तक केवल शेष दृष्टिकोण (आईएमओ) यह सुनिश्चित करना है कि div में कुछ सामग्री हो। ऐसा करने का सबसे आम तरीका एक गैर-ब्रेकिंग स्पेस डालना है।

<div class='Page'>&#160;</div> 
संबंधित मुद्दे