「新しいアカウントを作成」/「パスワードをお忘れですか?」のソースの順序を変更したいリンクと[送信]ボタンをクリックすると、[送信]ボタンが最初になります。
この機能を使用して、ログインブロックの特定の内容を変更できます。
function THEMENAME_form_user_login_block_alter(&$form, &$form_state){
$item = array();
if (variable_get('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL)) {
$items[] = l(t('Create new account'), 'user/register', array('attributes' => array('title' => t('Create a new user account.'))));
}
$items[] = l(t('Request new password'), 'user/password', array('attributes' => array('title' => t('If you forgot your password, click to request a new password via e-mail.'))));
$form['links']['#markup'] = theme('item_list', array('items' => $items));
}
そして、このテンプレートは変更をピックアップし、フォームの周りのマークアップ変更を可能にしますが、フォームを1つの変数に出力するだけです。 $ content変数を変更し、各要素を個別に出力して、アイテムの場所を交換するにはどうすればよいですか?
<div id="user-login-top">
<?php print render($title_prefix); ?>
<?php if ($block->subject): ?>
<h2<?php print $title_attributes; ?>><?php print $block->subject ?></h2>
<?php endif;?>
<?php print render($title_suffix); ?>
</div>
<div id="user-login-block" class="block block-<?php print $block->module ?>">
<div class="content"<?php print $content_attributes; ?>>
<?php print $content ?>
</div>
</div>
<div id="user-login-bottom" class="block-bottom"></div>
この例 はFirebugからストレートマークアップを使用し、機能しますが、すでにマークアップを含む変数を出力することでこれを行うよりクリーンな方法があり、「新しいアカウントの作成」は削除されません。 "サイト登録が制限されている場合のオプション。
次のようにリンクの重みを変更できます。
$form['links']['#weight'] = 10000;
今それは送信ボタンの後にあるはずです:)