То, что вы видите, это то, как Drupal представляет поля в форме. Это ломается так:
- Дочерние элементы внешнего массива
$form['field_back']['und']
( 'und'
для 'undefined'
) - это разные языки, на которые поле было переведено. В Drupal рекомендуется использовать LANGUAGE_NONE
для 'und'
в коде.
$form['field_feedback']['und'][0]
Дочерние элементы в каждом языковом массиве, например , представляют разные записи для поля. Например, если поле имеет неограниченное количество элементов и в этом поле есть несколько записей, они будут отображаться как $form['field_feedback']['und'][0]
, $form['field_feedback']['und'][1]
и т. Д.
- Наконец, у вас есть элемент (ы) ввода формы для самих значений полей, например
$form['field_feedback']['und'][0]['value']
. В этом случае имя столбца будет таким value
, для типа поля ссылки на узел nid
, и т. Д. Если с полем связано несколько столбцов данных, вы также увидите больше дочерних элементов. Они представлены текстовым полем / полем выбора / специальным виджетом и в конечном итоге будут предоставлять значение для поля.
Факт, что названия были добавлены к различным элементам в иерархии, является случайным, чтобы быть честным. Независимо от того, отображаются ли эти заголовки в форме, зависит от конкретных настроек массива рендеринга, в котором они #title
содержатся.
Чтобы изменить заголовок фактического виджета формы, вам нужно беспокоиться только об элементе формы в самом низу массива: то есть о реальных элементах ввода ( $form['field_feedback']['und'][0]['value']
и т. Д.).
Вероятно, стоит отметить, что элемент / виджет, используемый для определенного поля, может быть довольно сложным. Если у вас его еще нет, вы должны установить модуль Devel и использовать dpm()
функцию для проверки $form
массива; это покажет вам, где именно в массиве находятся элементы, на которые вы пытаетесь нацелиться.