我想自定义我的用户个人资料编辑页面。编辑路径为:xxx/user/2/edit 1.在我的模板文件中:
function MYTHEME_theme() {
'user_profile_form' => array(
'arguments' => array('form' => NULL),
'render element' => 'form',
'template' => 'user-profile-form',
'path' => drupal_get_path('theme', 'bootstrap_subtheme').'/templates',
),
}
function MYTHEME_preprocess_user_profile_form(&$vars) {
drupal_set_title('Account settings');
unset($vars['form']['account']['mail']['#description']);
$vars['form']['account']['mail']['#title'] = t('Email:');
unset($vars['form']['picture']['#title']);
unset($vars['form']['picture']['picture_delete']);
$vars['form']['picture']['picture_upload']['#title'] = t('Upload new photo:');
$vars['form']['picture']['picture_upload']['#attributes']['class'][] = 'form-text';
unset($vars['form']['picture']['picture_upload']['#description']);
unset($vars['form']['account']['current_pass']['#description']);
unset($vars['form']['account']['pass']['#description']);
unset($vars['form']['account']['pass2']['#description']);
unset($vars['form']['field_birthday']['und']['#prefix']);
unset($vars['form']['field_birthday']['und']['#suffix']);
unset($vars['form']['field_birthday']['und']['#title']);
$vars['form']['account']['pass']['pass1']['#title'] = t('New password:');
$vars['form']['account']['pass']['pass2']['#title'] = t('Re-enter new password:');
$vars['form']['actions']['submit']['#value'] = t('Save changes');
$vars['form']['actions']['submit']['#attributes']['class'][] = 'btn';
$vars['form']['actions']['submit']['#attributes']['class'][] = 'btn-purple';
$vars['form']['account']['mail']['#size']=20;
}
在我的 user-profile-form.tpl.php 文件中:
<div class="row-fluid">
<div class="span1 offset2">Gender:</div>
<div class="span4 offset1"><?php print render($form['field_gender']);?></div>
</div>
<div class="row-fluid">
<div class="span1 offset2">Password:</div>
<div class="span4 offset1"><?php print render($form['account']['pass']);?></div>
</div>
<?php print render($form['actions']);?>
现在表单看起来像预期的那样,但是,当我更改密码时,没有错误,但我无法使用新密码登录。我又测试了一下,好像只有administrator才能改,认证用户不能改自己的密码。