O que você está vendo é como o Drupal representa os campos em um formulário. Ele se divide assim:
- Os filhos da matriz externa,
$form['field_back']['und']
( 'und'
for 'undefined'
), são os diferentes idiomas para os quais o campo foi traduzido. Em Drupal, recomenda-se a utilização LANGUAGE_NONE
de 'und'
no código.
- Os filhos dentro de cada matriz de idiomas, por exemplo
$form['field_feedback']['und'][0]
, representam as diferentes entradas para o campo. Por exemplo, se um campo tem cardinalidade ilimitada, e há várias entradas para esse campo, eles vão mostrar como $form['field_feedback']['und'][0]
, $form['field_feedback']['und'][1]
, etc.
- Finalmente, você tem o (s) elemento (s) de entrada do formulário, para os próprios valores do campo, por exemplo
$form['field_feedback']['und'][0]['value']
. Nesse caso, o nome da coluna é value
, para um tipo de campo de referência de nó, seria nid
e assim por diante. Se um campo tiver várias colunas de dados associadas, você verá mais filhos também. Eles são representados por um campo de texto / caixa de seleção / widget especial e, finalmente, fornecerão o valor para o campo.
O fato de os títulos terem sido adicionados aos vários elementos em toda a hierarquia é incidental para ser honesto. A exibição ou não desses títulos no formulário depende das configurações específicas da matriz de renderização na qual cada um #title
está contido.
Para alterar o título no widget de formulário real, você só precisa se preocupar com o elemento do formulário na parte inferior da matriz: ou seja, os elementos de entrada reais ( $form['field_feedback']['und'][0]['value']
, etc.).
Provavelmente vale a pena notar que o elemento / widget usado para um campo específico pode ser bastante complexo. Se você ainda não o possui, instale o módulo Devel e use a dpm()
função para inspecionar a $form
matriz; que mostrará exatamente onde estão os elementos que você está tentando segmentar na matriz.