diff options
author | Gerhard Killesreiter <killes_www_drop_org@227.no-reply.drupal.org> | 2006-04-20 16:35:29 +0000 |
---|---|---|
committer | Gerhard Killesreiter <killes_www_drop_org@227.no-reply.drupal.org> | 2006-04-20 16:35:29 +0000 |
commit | b354396b69ab75f56e609e6145fd24a46fdb56ba (patch) | |
tree | 90b9d87feafd976670188c9914a960994a6575be | |
parent | a99b66c70483102ebcd3ce3dc872b07bf8927d76 (diff) | |
download | brdo-b354396b69ab75f56e609e6145fd24a46fdb56ba.tar.gz brdo-b354396b69ab75f56e609e6145fd24a46fdb56ba.tar.bz2 |
#59528, password_confirm fields don't highlight errors, patch by sammys
-rw-r--r-- | includes/form.inc | 17 | ||||
-rw-r--r-- | modules/system.module | 7 | ||||
-rw-r--r-- | modules/system/system.module | 7 |
3 files changed, 16 insertions, 15 deletions
diff --git a/includes/form.inc b/includes/form.inc index 4c77f9c59..5aef91b19 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -713,6 +713,18 @@ function theme_password_confirm($element) { return theme('form_element', $element['#title'], '<div class="container-inline">'. $element['#children']. '</div>', $element['#description'], $element['#id'], $element['#required'], form_get_error($element)); } +/* + * Expand a password_confirm field into two text boxes. + */ +function expand_password_confirm($element) { + $element['pass1'] = array('#type' => 'password', '#size' => 12, '#value' => $element['#value']['pass1']); + $element['pass2'] = array('#type' => 'password', '#size' => 12, '#value' => $element['#value']['pass2']); + $element['#validate'] = array('password_confirm_validate' => array()); + $element['#tree'] = TRUE; + + return $element; +} + /** * Validate password_confirm element. */ @@ -725,13 +737,12 @@ function password_confirm_validate($form) { form_set_value($form, $pass1); if ($pass1 != $pass2) { form_error($form, t('The specified passwords do not match.')); - form_error($form['pass1']); - form_error($form['pass2']); } } elseif ($form['#required'] && !empty($_POST['edit'])) { - form_set_error('pass1', t('Password field is required.')); + form_error($form, t('Password field is required.')); } + return $form; } diff --git a/modules/system.module b/modules/system.module index 4763534c2..3e4c098de 100644 --- a/modules/system.module +++ b/modules/system.module @@ -63,12 +63,7 @@ function system_elements() { $type['button'] = array('#input' => TRUE, '#name' => 'op', '#button_type' => 'submit', '#form_submitted' => FALSE); $type['textfield'] = array('#input' => TRUE, '#size' => 60, '#maxlength' => 128, '#autocomplete_path' => FALSE); $type['password'] = array('#input' => TRUE, '#size' => 30); - $type['password_confirm'] = array('#input' => TRUE, - '#value' => 'pass', - 'pass1' => array('#type' => 'password', '#size' => 12), - 'pass2' => array('#type' => 'password', '#size' => 12), - '#validate' => array('password_confirm_validate' => array()), - ); + $type['password_confirm'] = array('#input' => TRUE, '#process' => array('expand_password_confirm' => array())); $type['textarea'] = array('#input' => TRUE, '#cols' => 60, '#rows' => 5); $type['radios'] = array('#input' => TRUE, '#process' => array('expand_radios' => array())); $type['radio'] = array('#input' => TRUE); diff --git a/modules/system/system.module b/modules/system/system.module index 4763534c2..3e4c098de 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -63,12 +63,7 @@ function system_elements() { $type['button'] = array('#input' => TRUE, '#name' => 'op', '#button_type' => 'submit', '#form_submitted' => FALSE); $type['textfield'] = array('#input' => TRUE, '#size' => 60, '#maxlength' => 128, '#autocomplete_path' => FALSE); $type['password'] = array('#input' => TRUE, '#size' => 30); - $type['password_confirm'] = array('#input' => TRUE, - '#value' => 'pass', - 'pass1' => array('#type' => 'password', '#size' => 12), - 'pass2' => array('#type' => 'password', '#size' => 12), - '#validate' => array('password_confirm_validate' => array()), - ); + $type['password_confirm'] = array('#input' => TRUE, '#process' => array('expand_password_confirm' => array())); $type['textarea'] = array('#input' => TRUE, '#cols' => 60, '#rows' => 5); $type['radios'] = array('#input' => TRUE, '#process' => array('expand_radios' => array())); $type['radio'] = array('#input' => TRUE); |