0

ユーザー プロファイル編集ページをカスタマイズしたいと考えています。編集パスは次のとおりです: 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']);?>

フォームは期待どおりに見えますが、パスワードを変更するとエラーは発生しませんが、新しいパスワードでログインできません。再度テストしたところ、管理者のみが変更できるようで、認証ユーザーは自分のパスワードを変更できません。

4

1 に答える 1