约Drupal的另一个问题web表单 - 形式本身是建立在通过 /includes/form.inc

<强> function theme_form_element($element, $value)

和增加了一个<label>元件到$输出。我想删除该标签只为一个网页表单,所以我必须重写功能。 我怎么可以重写它只有一个网页表单,同时保持它同所有其他人呢? 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;

这是可能的,并且在发生什么如果条件?

有帮助吗?

解决方案 2

我也有做了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你!),但是这是一个不同的情况。

其他提示

如果你只是希望移除的标签,你也可以使用 hook_form_alter( ),并检查$ form_id等于有问题的网络表单。的ID将是以下形式:。webform_client_form_N其中N是网络表单的节点ID

一旦你合适的形式对操作,则可以使用取消设置的标签,例如,这样的代码:

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

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

我不会取消设置形式元件标题。当你的形式得到由主题引擎进行渲染,你可以得到意想不到的结果。

您可以做几种方式:

主题的每个元素或整体形式与'#theme' => 'my_callback'

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

请参阅:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top