Index: branches/5.2.x/core/kernel/utility/formatters/password_formatter.php =================================================================== diff -u -N -r13840 -r14095 --- branches/5.2.x/core/kernel/utility/formatters/password_formatter.php (.../password_formatter.php) (revision 13840) +++ branches/5.2.x/core/kernel/utility/formatters/password_formatter.php (.../password_formatter.php) (revision 14095) @@ -1,6 +1,6 @@ 'string', 'error_field'=>$field_name); $add_fields[ $field_options['verify_field'].'_plain' ] = Array('type'=>'string', 'error_field'=>$field_options['verify_field'] ); - $add_fields = array_merge_recursive2($add_fields, $object->VirtualFields); + $virtual_fields = $object->getVirtualFields(); + $add_fields = kUtil::array_merge_recursive($add_fields, $virtual_fields); $object->setVirtualFields($add_fields); } } @@ -62,10 +71,11 @@ // 1. collect values from both Password and VerifyPassword fields while ($flip_count < 2) { if ( getArrayValue($options, $fields[0]) ) { + $tmp_field = $options[ $fields[0] ]; $object->SetDBField($field_name.'_plain', $value); - if ( !getArrayValue($object->Fields[ $options[ $fields[0] ] ], $fields[1].'_set') ) { - $object->Fields[ $options[ $fields[0] ] ][$fields[1].'_set'] = true; + if ( !$object->GetFieldOption($tmp_field, $fields[1].'_set') ) { + $object->SetFieldOption($tmp_field, $fields[1].'_set', true); } $password_field = $options[ $fields[0] ]; @@ -76,9 +86,9 @@ $flip_count++; } - $salt = isset($object->Fields[$password_field]['salt']) ? $object->Fields[$password_field]['salt'] : ''; + $salt = $object->GetFieldOption($password_field, 'salt', false, ''); - if (getArrayValue($object->Fields[$password_field], 'verify_field_set') && getArrayValue($object->Fields[$verify_field], 'master_field_set')) { + if ($object->GetFieldOption($password_field, 'verify_field_set') && $object->GetFieldOption($verify_field, 'master_field_set')) { $new_password = $object->GetDBField($password_field . '_plain'); $verify_password = $object->GetDBField($verify_field . '_plain'); @@ -95,17 +105,17 @@ return $value; } } - + // determine admin or front $phrase_error_prefix = $this->Application->isAdmin ? 'la' : 'lu'; if ($new_password != $verify_password) { - // passwords don't match (no matter what is their length) + // passwords don't match (no matter what is their length) $object->SetError($verify_field, 'passwords_do_not_match', $phrase_error_prefix.'_passwords_do_not_match'); } $min_length = $this->Application->ConfigValue('Min_Password'); // for error message too - if (mb_strlen($new_password) < $min_length) { + if (mb_strlen($new_password) < $min_length) { $error_msg = '+' . sprintf($this->Application->Phrase($phrase_error_prefix.'_passwords_too_short'), $min_length); // + -> not phrase $object->SetError($password_field, 'passwords_min_length', $error_msg); }