Расширить тип поля Sitecore WFFM

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

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

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

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

1 ответ

Решение

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

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

Затем вы можете получить доступ к значению атрибута, введенному редактором контента при отправке или даже к валидатору, получив его из Parameters из FieldItem - FieldItem["Параметры"]

Для полного примера источника см. Этот пост;

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

Другие вопросы по тегам