2010-01-21 41 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场的标签。