Php Drupal-Webform元素主题化

Php Drupal-Webform元素主题化,php,drupal,drupal-webform,Php,Drupal,Drupal Webform,关于DrupalWebForms的另一个问题-- 表单本身由/includes/form.inc内置 函数主题\u form\u元素($element,$value) 并将元素添加到$output。我只想删除一个webform的标签,所以我必须重写该函数。 我如何仅为一个Web表单覆盖它,而在所有其他表单中保持不变? 例如 if($block=='contact'): //仅输出表单元素存储在$value中 函数mytheme\u html\u form\u元素($element,$value)

关于DrupalWebForms的另一个问题-- 表单本身由/includes/form.inc内置

函数主题\u form\u元素($element,$value)

并将
元素添加到$output。我只想删除一个webform的标签,所以我必须重写该函数。 我如何仅为一个Web表单覆盖它,而在所有其他表单中保持不变? 例如

if($block=='contact'):
//仅输出表单元素存储在$value中
函数mytheme\u html\u form\u元素($element,$value){
$t=get_t();
$output.=“$value\n”;
返回$output;
}
endif;

这是否可能,以及if条件下会出现什么情况?

如果您只是想删除标签,也可以使用,并检查$form_id是否等于所讨论的webform。id的形式为:webform\u client\u form\N,其中N是webform的节点id

在正确的表单上进行操作后,可以使用以下代码取消设置标签,例如:

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

这将取消设置名为first_name的字段的标签。

我不会取消设置表单元素标题。当主题引擎呈现表单时,可能会得到意外的结果

您可以通过以下几种方式完成:

使用
“#Theme”=>“my_callback”
为每个元素或整个表单设置主题

您还可以使用使用相应主题挂钩的hook_元素创建自己的表单元素

见:


我确实需要做一个hook\u form\u alter,但是标签本身在['submitted']元素中。 这是密码

  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"
    />
  ';
  }
if($form\u id=='webform\u client\u form\u 18'){
$form['submitted']['#children']='
';
}
在另一种形式中,删除#标题是有效的(+1!),但这是另一种情况

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