Drupal

Форма входа вверху сайта - Drupal 6

Нашел интересное решение для Drupal 6, которое позволяет разместить форму входа на сайт в любом удобном месте

Данное решение подробно описано здесь

Однако в нем мне не понравились подписи к полям, которые в дизайн моего сайта не вписывались никаким образом, а также ссылки на регистрацию и восстановление пароля тоже были не в тему. Не устраивало и отображение информации о пользователе, но это решается с помощью CSS.


 

Пришлось скрипт немного изменить, вместо функции вызова формы входа, я нарисовал свою форму, а информацию о пользователе сделал небольшим блоком.

Следующую функцию следует поместить в файл template.php вашей темы.

  1. function theme_user_bar() {
  2. global $user; 
  3. $output = '';
  4.  
  5. if (!$user->uid) { 
  6. $output .= '<div id="user-bar">
  7. <form action="/drupal620/user" accept-charset="UTF-8" method="post" id="user-login">
  8. <input type="text" placeholder=" Логин" maxlength="60" name="name" id="edit-name" value="" tabindex="1" class="form-text required" />
  9. <input type="password" placeholder=" Пароль" name="pass" id="edit-pass" tabindex="2" class="form-text required" />
  10. <input type="hidden" name="form_id" id="edit-user-login" value="user_login" />
  11. <input type="submit" name="op" id="edit-submit" value="Войти" tabindex="3" class="form-submit" />
  12. </form></div>'; 
  13. } 
  14. else {
  15.  
  16. $output .= '<div id="user-info">';
  17.  
  18. $output .= t('<div class="text">Вы зашли как - !user</div>', array('!user' => theme('username', $user)));
  19.  
  20. $output .= theme('item_list', array(
  21. l(t('Ваш аккаунт'), 'user/'.$user->uid, array('title' => t('Редактировать аккаунт'))),
  22. l(t('Выход'), 'logout')));
  23.  
  24. $output .= '</div>';
  25.  
  26. }
  27.  
  28. return $output;
  29. }

После чего в файле page.tpl.php выводим форму в нужном нам месте следующим кодом:

  1. <?php print theme_user_bar() ?>

CSS не прилагаю, т.к. по сути здесь все понятно и без него.