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?

Foi útil?

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

http://api.drupal.org/api/function/hook_elements/6

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top