2015-11-08 10 views
5

विस्तृत करें मैं WFFM फॉर्म फ़ील्ड प्रकार में अतिरिक्त विशेषताओं को जोड़ना चाहता हूं।साइटकोर WFFM फ़ील्ड प्रकार

फ़ील्ड प्रकार में बनाया प्रपत्र डिजाइनर enter image description here

मैं इस क्षेत्र के लिए अपने स्वयं के अनुभाग जोड़ सकते हैं और विशेषता चाहते हैं के बाईं पर गुण। क्या यह मौजूदा कोड प्रकारों को ओवरराइट किए बिना या कोर कोड के साथ हैकिंग के बिना आसानी से किया जा सकता है?

मैं वास्तव में उदाहरण बनाना नहीं चाहता हूं सिंगल-लाइन टेक्स्ट फ़ील्ड बस इसके लिए अपना खुद का विशेषता फ़ील्ड जोड़ने के लिए।

+0

आप webforms या MVC wffm का उपयोग कर रहे हैं? Wffm और साइटकोर का संस्करण क्या है? –

उत्तर

3

दुर्भाग्य से प्राप्त करने के लिए केवल जिस तरह से यह कोड में एक कस्टम Field Type कि एक मौजूदा फील्ड जैसे लागू करता है बनाने के द्वारा है Single Line Text। बदलने के लिए कोई कॉन्फ़िगरेशन नहीं है, आपको कोड के माध्यम से अपने गुण जोड़ना होगा, 'कोर' कोड लेने और विस्तार करने में सक्षम होने के लिए साइटकोर को जाना जाता है।

लेकिन इन विशेषताओं को जोड़ना वास्तव में आसान है और यदि आप केवल मौजूदा लोगों को लागू करते हैं तो हर क्षेत्र को फिर से विकसित करने की आवश्यकता नहीं है। तब बस Type से अपने कस्टम एकल लाइन पाठ का चयन करें ड्रॉप डाउन सूची और अपने नए गुण देखते हैं ..

को लागू मौजूदा Fields तुम सब कुछ Single Line Text करता आउट-ऑफ-द-बॉक्स में अपनी विशेषताओं के साथ, अब आप की जरूरत है दे देंगे अपने नए class में विशेषताओं को परिभाषित करें। विशेषताएं गुणों के साथ सजाए गए आपकी कक्षा के public properties हैं।

उदाहरण के लिए, मैं FileUpload फ़ील्ड की फ़ाइल आकार सीमा को पकड़ने के लिए एक विशेषता चाहता था, जिसे सार्वजनिक string संपत्ति जोड़कर किया जा सकता है;

public class CustomSingleLineText : SingleLineText 
{ 
    private int _fileSizeLimit; 

    // Make it editable 
    [VisualFieldType(typeof(EditField))] 
    // The text display next to the attribute 
    [VisualProperty("Max file size limit (MB) :", 5)] 
    // The section the attribute appers in 
    [VisualCategory("Appearance")] 
    public string FileSizeLimit 
    { 
     get 
     { 
      return this._fileSizeLimit.ToString(); 
     } 
     set 
     { 
      int result; 
      if (!int.TryParse(value, out result)) 
       result = 5; 
      this._fileSizeLimit = result; 
     } 
    } 

फिर आप FieldItem की Parameters से यह हो रही द्वारा प्रस्तुत या यहाँ तक कि valiadator पर सामग्री संपादक द्वारा दर्ज विशेषता मान का उपयोग कर सकते - FieldItem [ "पैरामीटर"]

एक पूर्ण उदाहरण के लिए स्रोत इस पोस्ट को देखें;

http://jonathanrobbins.co.uk/2015/10/06/sitecore-marketplace-module-secure-file-upload/

+0

यह सुनिश्चित नहीं है कि यह क्यों कम किया गया है। –

+0

कोई विचार नहीं, यह सही जवाब है, जिसे कभी भी बनाने के लिए कुछ कोडिंग की आवश्यकता होती है। +1 – jammykam

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