2015-11-08 17 views
5

Ich möchte einem WFFM-Formularfeldtyp zusätzliche Attribute hinzufügen.Sitecore WFFM-Feldtyp erweitern

Die in Feldtypen gebaut haben Attribute auf der linken Seite des Formulardesigners enter image description here

Ich mag würde meinen eigenen Abschnitt hinzuzufügen und zu diesem Bereich zuzuschreiben. Kann dies problemlos durchgeführt werden, ohne die vorhandenen Feldtypen zu überschreiben oder mit dem Kerncode zu hacken?

Ich möchte nicht unbedingt die z. Einzeiliges Textfeld, um mein eigenes Attributfeld hinzuzufügen.

+0

Verwenden Sie Webformulare oder mvc wffm? Welche Version von wffm und Sitecore? –

Antwort

3

Leider ist die nur Weg, um es zu erreichen, indem Sie eine benutzerdefinierte Field Type in Code erstellen, die ein vorhandenes Feld implementiert z. Single Line Text. Es gibt keine andere Konfiguration, wo Sie Änderungen vornehmen müssen. Sie müssen Ihre Attribute über Code hinzufügen. Die Fähigkeit, den Kerncode zu übernehmen und zu erweitern, ist für Sitecore bekannt.

Aber es ist wirklich einfach, diese Attribute hinzuzufügen und nicht jedes Feld neu zu entwickeln, wenn Sie nur die vorhandenen implementieren. Dann wählen Sie einfach Ihre individuelle Einzellinie Text aus der Type Dropdown-Liste und Ihre neuen Attribute sehen ..

die Fields bestehende Implementierung finden Sie alles geben die Single Line Text nicht out-of-the-box mit seinen Attributen, jetzt müssen Sie Definieren Sie die Attribute in Ihrem neuen class. Die Attribute selbst sind public properties Ihrer Klasse mit visuellen Eigenschaften verziert.

Zum Beispiel wollte ich, dass ein Attribut das Dateigrößenlimit eines Felds FileUpload enthält. Dies kann durch Hinzufügen einer öffentlichen string-Eigenschaft erfolgen.

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; 
     } 
    } 

Anschließend können Sie die auf der Vorlage durch den Content Editor eingegeben Attributwert zuzugreifen oder die valiadator sogar durch sie von der Parameters der FieldItem bekommen - FieldItem [ „Parameter“]

Ein vollständiges Beispiel Quelle siehe diesen Beitrag;

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

+0

Nicht sicher, warum dies abgelehnt wurde. –

+0

Keine Ahnung auch, es ist die richtige Antwort, welche Form auch immer es erfordert, erfordert einige Codierung. +1 – jammykam