template.php と user-profile-form.php を使用して編集プロファイル ビューをカスタマイズしました。すべて正しく表示されますが、[送信] (および [削除]) ボタンが表示されます。適応テーマを使用しており、次のように変更しました。
template.php
function adaptivetheme_theme(&$existing, $type, $theme, $path) {
return array(
'user_profile_form' => array(
'template' => 'templates/user-profile-form',
'render element' => 'form',
),
);
}
function adaptivetheme_preprocess_user_profile_form(&$vars) {
$vars['form']['account']['name']['#description'] = t('blabla');
$vars['form']['submit']['#value'] = t('Save profile');
$vars['form']['delete']['#value'] = t('Delete account');
$vars['account'] = drupal_render($vars['form']['account']);
$vars['theme_select'] = drupal_render($vars['form']['theme_select']);
$vars['picture'] = drupal_render($vars['form']['picture']);
$vars['signature_settings'] = drupal_render($vars['form']['signature_settings']);
$vars['contact'] = drupal_render($vars['form']['contact']);
$vars['timezone'] = drupal_render($vars['form']['timezone']);
$vars['submit'] = drupal_render($vars['form']['submit']);
$vars['delete'] = drupal_render($vars['form']['delete']);
}
次に user-profile-form.tpl.php で:
<div id="user-profile-form">
<?php echo $account; ?>
<?php echo $timezone; ?>
<?php echo $submit; ?>
<?php echo $delete; ?>
</div>
アカウントの編集フォームが正しく表示されます。変数 (つまり、$timezone) を正常に追加/削除しようとしましたが、送信/削除がありません。何が問題なのかわかりません。変数「送信」と「削除」の名前を変更しようとしましたが、まだボタンが表示されません。もちろん、私は必要なたびにキャッシュをクリアしました(そうではありません)。ボタンを隠す JS もありません。 Panel のカスタム ブロックを介してこのフォームをレンダリングします。
<?
module_load_include('inc', 'user', 'user.pages');
global $user;
print drupal_render(drupal_get_form('user_profile_form', $user));
?>
多分パネルの問題???
どんなアイデアでも大歓迎です:)
読むためのThx
エルワン