将类添加到Drupal 7注册表单

时间:2018-05-18 08:01:56

标签: drupal-7 drupal-theming drupal-forms

所以我一直在使用drupal 7来开发一个网站。我想覆盖默认登录和注册表单。我能够成功地将自定义类添加到登录和密码表单中。但是当我想将这些相同的类添加到寄存器表单时,问题就出现了。

我使用这个钩子函数来尝试添加类

function MyTheme_form_user_register_form_alter(&$form, &$formState){
    // set classes;
    $form["#attributes"]["class"] = "form-element";
    $form['field_first_name']['und'][0]['value']['#attributes']['class'][] = 'form-element__control';
    $form['field_last_name']['und'][0]['value']['#attributes']['class'][] = 'form-element__control';
    $form['field_developer_organization']['und'][0]['value']['#attributes']['class'][] = 'form-element__control';
    $form['account']['mail']['#attributes']['class'][] = 'form-element__control';
    $form['account']['pass']['pass1']['#attributes']['class'][] = 'form-element__control';
    $form['account']['pass']['pass2']['#attributes']['class'][] = 'form-element__control';
    $form['account']['captcha_response']['#attributes']['class'][] = 'form-element__control';

    // remove descriptions;
    $form['field_first_name']['und'][0]['value']['#description'] = t('');
    $form['field_last_name']['und'][0]['value']['#description'] = t('');
    $form['field_developer_organization']['und'][0]['value']['#description'] = t('');
    $form['account']['mail']['#description'] = t('');
    $form['account']['pass']['pass1']['#description'] = t('');
    $form['account']['pass']['pass2']['#description'] = t('');
    $form['account']['captcha_response']['#description'] = t('');
}

对于firstname,lastname,developer organization,email,成功添加了类,但是对于password字段和captcha字段,不添加类

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

在您的代码段中,您正在更改user_register_form()表单。它只是核心用户帐户表单字段,自定义配置文件字段和其他必需品的包装器。

尝试以相同的方式更改user_account_form(),修改用户名和密码字段的类名。

在每个表单的文档中,您可以看到哪些字段可以直接更改,以及其他哪些表单可以调用它们。