Drupal - Webform eleman tema

3 Cevap php

Another question about Drupal webforms -- The form itself is built in by /includes/form.inc's

function theme_form_element($element, $value)

and adds a <label> element to the $output. I want to remove that label only for one webform, so I have to override the function. How can I override it for only one webform, while leaving it the same in all others? E.g.

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;

Bu mümkün mü ve ne olursa durumda gider?

3 Cevap

i did have to do a hook_form_alter, but the label itself was in the ['submitted'] element. here is the code

  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"
    />
  ';
  }

farklı bir biçimde, # başlığını çıkarmadan (! sizin için 1) çalışmış, ancak bu farklı bir durum oldu.

Sadece etiketi kaldırmak için arıyorsanız, ayrıca hook_form_alter() kullanmak, ve $ form_id söz Webform eşit olup olmadığını kontrol edebilirsiniz. Webform_client_form_N N WebForm düğüm kimliği: id formda olacaktır.

Eğer uygun formda faaliyet konum sonra, bu gibi örneğin kullanarak kod etiketi unset yapabilirsiniz:

 unset($form['submitted']['first_name']['#title']);

First_name denilen bir alan için etiket unset hangi.

Ben unset form elemanı başlıkları olmaz. Form tema motoru tarafından işlenen aldığında beklenmedik sonuçlar alabilir.

Bunu çeşitli şekillerde yapabilirsiniz:

Tema ile birlikte her bir öğeyi veya tüm formu '#theme' => 'my_callback'.

Sen de karşılık gelen bir tema kanca kullanır hook_elements kullanarak kendi form öğesi oluşturabilirsiniz.

Bkz:

http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html

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