2010-01-21 53 views
2

約Drupal的web表單的另一個問題 - 形式本身是建立在通過的Drupal的 - 網絡表單元素主題化

function theme_form_element($element, $value)

/includes/form.inc並增加了一個<label>元素$輸出。我只想爲一個webform刪除該標籤,所以我必須重寫該函數。 我怎樣才能覆蓋它只有一個webform,而在其他所有相同? 例如

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; 

這是可能的,以及如果條件?

回答

1

我也要做​​一個hook_form_alter,但標籤本身是在[ '提交']元素。 這裏以不同的形式的代碼

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

,去除#title工作(+1你!),但是這是一個不同的情況。

6

如果您只是想要刪除標籤,您還可以使用hook_form_alter(),並檢查$ form_id是否與所討論的網絡表單相同。該id將採用以下格式:webform_client_form_N其中,N是Web窗體的節點標識。

一旦你合適的形式對工作,你可以不設置使用的標籤,例如,像這樣的代碼:

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

這將取消設置一個名爲FIRST_NAME場的標籤。