Form API Flashcards

1
Q
  1. Основные обработчики и хуки: hook_form_alter, hook_form_FORM_ID_alter, submit, validate, after_build, process.
A

hook_form_alter - Внесение изменений перед отрисовкой формы
В массиве #validate мы храним все callback’и функций валидации.
В массиве #submit мы храним все callback’и функций отправки формы.
process - массив функций, которые вызываются при обработки элемента
after_build Массив имен функций, который будет вызываться после построения формы или элемента.(гарантирует что изменения в колбеке применяться в самую последнюю очередь

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Валидация форм и отдельных элементов.
A

формы: метод валидейт в классе формы

филда: свойство валидейт к полю и класс-валидатор

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Теминг форм и отдельных элементов свойства #theme, #theme_wrappers.
A

theme - название темы, которая будет рендерить форму или элемент вместо стандартной темы
theme_wrappers – это массив функций, которые вызываются после формирования render array и позволяют скорректировать параметры этого массива. Этот параметр необходим, когда нужно скорректировать элемент формы не меняя основную его суть и параметры.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Виды элементов формы.

a. Как создать свой?

A

текстареа, текстфилд, селект, радио, чекбокс, баттон, файл и т.д.
- отнаследовать класс от FormElement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Создание AJAX-форм, свойство #ajax.
A

Создайте новую форму или используйте hook_form_alter, чтобы изменить существующую форму.
Добавьте элемент рендеринга ‘#ajax’ в поле, которое должно запускать функцию обратного вызова.
Определите имя функции обратного вызова и тип события, которое вызовет ее.
Когда событие запускается путем изменения значения поля формы, вызывается функция обратного вызова.
Функция обратного вызова позволяет получить доступ к массиву $ form и FormstateInterface и должна, наконец, вернуть массив рендеринга или некоторую разметку html или может выполнить команду AJAX.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Использование #states.
A

Зависимое поле – поле, которое принимает любое из состояний формы, например как скрытие или показ.

Влияющее поле – поле, от которого зависит состояние зависимого поля.

Итак, что бы Drupal понимал, что для зависимого поля необходимо отслеживать состояние, то для данного поля необходимо предать в массив с ключом «#states» необходимое состояние элемента формы, а так же ID влияющего поля с необходимым значением данного (влияющего) поля.
‘#states’ => array( // сказали Drupal, что для данного поля необходимо отслеживать состояние
‘visible’ => array( // указали необходимое состояние
‘:input[name=”field_select”]’ => array(‘value’ => 1), // указали имя влияющего поля поля и его значение, при котором данное состояние должно сработать

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Как подключить к форме library?
A

Объявить свой js файл в *.libraries.yml файле своего модуля, а потом добавить JS к форме
$form[‘#attached’][‘library’][] = ‘yourmodule/yourlibrary’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Что такое “форма” и для чего она используется
A

раздел документа, позволяющий пользователю вводить информацию для передачи на сервер.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly