繁体   English   中英

Drupal - 使用div环绕特定的webform元素

[英]Drupal - Surround specific webform elements with a div

正如标题描述的那样,我要为webform设置样式,为此我需要在div中包含特定字段以便为它们提供CSS属性,而我不知道应该如何去做。

我已经使用hook_form_alter捕获了表单,但不知道该怎么做。

有帮助吗?

在您的主题template.php文件中,您需要获取表单ID,然后您可以执行以下操作:

function phptemplate_webform_form_FORM_ID ($form) {
  $form['#prefix'] = '<div class="CLASS NAME">';
  $form['#suffix'] = '</div>';
  return _phptemplate_callback('webform_form_FORM_ID', array('form' => $form));
}

将FORM_ID替换为表单的ID。

编辑

要为特定字段添加它们,请执行以下操作:

$form['ELEMENT_NAME']['#prefix'] = '<div class="CLASS NAME">';
$form['ELEMENT_NAME']['#suffix'] = '</div>';

我没有时间测试它,但用元素替换ELEMENT_NAME,这应该可以解决您的问题。 这里有一个很好的页面 - http://drupal.org/node/79086

您可以使用#field_prefix和#field_suffix来包装任何HTML元素的字段。 见下面的例子:

    function auworks_form_alter(&$form, $form_state, $form_id) {
      switch($form_id) {
        case 'webform_client_form_1':
          $form['submitted']['title']['#field_suffix'] = '<span class="field-suffix">#</span>';
          break;
      }
    }

让我知道你怎样去...

另外:如果你想在webform的提交按钮中添加包含div,这里有一个帮助你的钩子:

function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

    if ($form['#form_id'] === 'webform_client_form_YOURWEBFORMID') {
        $form_structure = &$form['submitted'];

        $form['actions']['submit']['#prefix'] = '<div class="extra_div">';
        $form['actions']['submit']['#suffix'] = '</div>';
    }

}

如果你想将它应用于所有的 webforms,你只需要离开条件,就像这样:

function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

    $form_structure = &$form['submitted'];

    $form['actions']['submit']['#prefix'] = '<div class="extra_div">';
    $form['actions']['submit']['#suffix'] = '</div>';    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM