Класс FBElement используется для определения настроек полей компонента внутри FormBuilder.

Базовые методы:

Конструктор принимает на вход два параметра $name (название поля/название в БД) и $title (человеческое название)

  • setFillable() - поле добавляется в массив fillable модели компонента
  • setDefaultValue($default) - Использовать в качестве значения по-умолчанию. Можно передать в качестве параметра имя поля, тогда оно будет браться из БД
  • setInTableAdmin() - Выводить поле в таблице(списке) контента в админке
  • setInTableAdminAjaxEditable() - Выводить поле в таблице(списке) контента в админке и дать возможность редактировать через ajax
  • setValid($valid) - добавить методы валидации
  • isRequired() - сделать поле обязательным
  • setCssClassGroup($class) - назначить css-класс для блока вывода поля в админке
  • setCssClass($class) - назначить css-класс для поля в админке (например .not-editor для textarea для отключения редактора)
  • setTab($tab_name, $tab_title) - в каком табе редактирования выводить поле
  • setHelp($help) - текстовое пояснение для поля
  • setConnect($model, $relation_name = NULL, $group_by = NULL) - установить связь поля с моделью и методом получения данных по модели, где $model - класс модели, $relation_name - имя связи из модели, $group_by - группировать значения по полю
  • setWhereConnect($key, $value) - установить фильтрацию для получаемых по setConnect данным
  • setAttached() - поле должно использовать метод attached
  • setFrontPlace($place) - в каком блоке на фронте выводить поле
  • setFiltered() - поле может фильтровать контент на фронте (используется в компоненте larrock-catalog)
  • setSorted() - поле может сортировать контент на фронте (используется в компоненте larrock-catalog)
  • setTemplate($template) - указать шаблон для вывода поля
  • setUserSelect() - поле может быть заполнено пользователем (например для создания select-поля)

Получение сгенерированного конфига поля

  • getElement()

Методы конкретных полей

Классы реализующие добавление полей наследуются и могут расширять базовый класс

FormTextarea, FormInput

  • setTypo() - включить возможность типографить текст внутри поля

FormTextarea

  • setNotEditor() - отключить редактор для редактирования поля

FormTags, FormTagsCreate, FormTagsRole, FormCatalogItems, FormCategory

  • setMaxItems($max = null) - установить максимально доступное для выбора/сохранения количество значений

FormCatalogItems

  • setOptions($options) - передача массива со значениями полей в виде ассоциативного массива в виде ключ:значение (имя значения поля для сохранения:выводимое значение для пользователя)

FromCheckbox

  • setChecked() - поле по-умолчанию нажато

FormSelect

  • setAllowCreate() - позволяет добавлять в качестве значений текст пользователя (кнопка "создать")

FormSelect, FormSelectKey

  • setOptions($options) - передача массива со значениями полей в виде ассоциативного массива в виде ключ:значение (имя значения поля для сохранения:выводимое значение для пользователя)
  • setOptionsTitle($row) - какое значение из массива options показывать пользователям (например, сохраняем по id, а показываем title из материала по setConnect())
  • setOptionsKey($row) - какое поле использовать в качестве value у select

Другие материалы по теме:

Метод addRows(). Создание полей компонента при помощи FormBuilder

Метод addRows() используется для определение состава и логики полей компонента в админке и на фронте. В качестве хелпера используется FormBuilder.

FormTags — линкование данных компонентов

Что делать если Вы хотите сделать ссылку из одного материала на другой? Допустим прикрепить к товару из LarrockCatalog описание из LarrockFeed?

Загрузка...