2015-11-08 2 views
5

Я хотел бы добавить дополнительные атрибуты в тип поля формы WFFM.Extend Sitecore Тип поля WFFM

Встроенные типы полей имеют атрибуты слева от дизайнера форм enter image description here

Я хотел бы добавить свой собственный раздел и приписывать этой области. Можно ли это сделать без перезаписи существующих типов полей или взлома с помощью основного кода?

Я действительно не хочу, чтобы нужно было создать, например, Однострочное текстовое поле, чтобы добавить к нему свое собственное поле атрибута.

+0

Вы используете wffm WebForms или MVC? Какая версия wffm и sitecore? –

ответ

3

К сожалению, только способ создать это путем создания пользовательского Field Type в коде, который реализует существующее поле, например. Single Line Text. Нет другой конфигурации, где нужно изменить, вам нужно добавить свои атрибуты с помощью кода, возможность взять и расширить «основной» код - это то, что известно Sitecore.

Но действительно просто добавить эти атрибуты и не переделывать каждое поле, если вы просто реализуете существующие. Затем просто выберите пользовательский 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; 
     } 
    } 

Вы можете получить доступ к значению атрибута, введенную Content Editor на представлении или даже valiadator, получая его от Parameters из FieldItem - FieldItem [ «Параметры»]

Для полного примера источник см. в этом сообщении;

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

+0

Не знаете, почему это было приостановлено. –

+0

Не знаю, это правильный ответ, который когда-либо формирует его, требует некоторой кодировки. +1 – jammykam

Смежные вопросы