Форма входа вверху сайта - Drupal 6
Нашел интересное решение для Drupal 6, которое позволяет разместить форму входа на сайт в любом удобном месте.
Данное решение подробно описано здесь.
Однако в нем мне не понравились подписи к полям, которые в дизайн моего сайта не вписывались никаким образом, а также ссылки на регистрацию и восстановление пароля тоже были не в тему. Не устраивало и отображение информации о пользователе, но это решается с помощью CSS.
Пришлось скрипт немного изменить, вместо функции вызова формы входа, я нарисовал свою форму, а информацию о пользователе сделал небольшим блоком.
Следующую функцию следует поместить в файл template.php вашей темы.
function theme_user_bar() {
global $user;
$output = '';
if (!$user->uid) {
$output .= '<div id="user-bar">
<form action="/drupal620/user" accept-charset="UTF-8" method="post" id="user-login">
<input type="text" placeholder=" Логин" maxlength="60" name="name" id="edit-name" value="" tabindex="1" class="form-text required" />
<input type="password" placeholder=" Пароль" name="pass" id="edit-pass" tabindex="2" class="form-text required" />
<input type="hidden" name="form_id" id="edit-user-login" value="user_login" />
<input type="submit" name="op" id="edit-submit" value="Войти" tabindex="3" class="form-submit" />
</form></div>';
}
else {
$output .= '<div id="user-info">';
$output .= t('<div class="text">Вы зашли как - !user</div>', array('!user' => theme('username', $user)));
$output .= theme('item_list', array(
l(t('Ваш аккаунт'), 'user/'.$user->uid, array('title' => t('Редактировать аккаунт'))),
l(t('Выход'), 'logout')));
$output .= '</div>';
}
return $output;
}
После чего в файле page.tpl.php выводим форму в нужном нам месте следующим кодом:
<?php print theme_user_bar() ?>
CSS не прилагаю, т.к. по сути здесь все понятно и без него.