Drupal - temas de elementos da webform
-
22-09-2019 - |
Pergunta
Outra pergunta sobre o Drupal Webforms - o próprio formulário é construído por /Includes/form.inc's
function theme_form_element($element, $value)
e adiciona um <label>
elemento para a saída $. Quero remover esse rótulo apenas para um WebForm, então tenho que substituir a função. Como posso substituí -lo por apenas um Webform, deixando -o o mesmo em todos os outros? Por exemplo
if ($block == 'contact'):
// only output <input> form element stored in $value
function mytheme_html_form_element($element, $value) {
$t = get_t();
$output .= " $value\n";
return $output;
}
endif;
Isso é possível e o que vai na condição IF?
Solução 2
Eu tive que fazer um gancho_form_alter, mas o rótulo em si estava no elemento ['submetido']. Aqui está o código
if($form_id == 'webform_client_form_18') {
$form['submitted']['#children'] = '
<input
type="text"
maxlength="128"
name="submitted[email]"
id="edit-submitted-email"
value="' . $form['submitted']['email']['#default_value']. '"
class="form-text required"
/>
';
}
De uma forma diferente, remover o #Title funcionou (+1 para você!), Mas esse foi um caso diferente.
Outras dicas
Se você está apenas procurando remover o rótulo, também pode usar Hook_Form_alter (), e verifique se $ form_id é igual ao Webform em questão. O ID será do formulário: webform_client_form_n onde n é o ID do nó do WebForm.
Depois de operar no formulário correto, você pode despertar o rótulo usando, por exemplo, código como este:
unset($form['submitted']['first_name']['#title']);
O que desencadearia o rótulo para um campo chamado First_Name.
Eu não faria títulos de elementos de formulário. Você pode obter resultados inesperados quando seu formulário for renderizado pelo mecanismo de tema.
Você pode fazer isso de várias maneiras:
Tema cada elemento ou todo o formulário com '#theme' => 'my_callback'
.
Você também pode criar seu próprio elemento de formulário usando Hook_elements que usa um gancho de tema correspondente.
Ver:
http://api.drupal.org/api/drupal/developer--topics-forms_api_reference.html