Компактный блок входа и регистрации пользователей

28 Май 2008
Опубликовано VladSavitsky
Задача: 

Сделать блок "Вход пользователей" как можно более компактным.
Результат должен выглядеть примерно так:
Вид для анонимных пользователей

Пользователь представился

Решение

Варианты

  • Использовать модуль Compact Forms, который делает формы более компактными
  • Вывести ссылки (вход/регистрация) в одну строку

Вывести ссылки (вход/регистрация) в одну строку

В template.php добавить:

function phptemplate_flat_login() {
    global $user;
    if (!$user->uid) {
      $message= '<ul>
                  <li>'
.l('Вход','user/login', array('attributes' => array('rel'=>'nofollow')) ).'</li>
                  <li>'
.l('Регистрация', 'user/register', array('attributes' => array('rel'=>'nofollow')) ).'</li>
                  <li>'
.l('Забыли пароль', 'user/password', array('attributes' => array('rel'=>'nofollow'))).'?</li>
                </ul>'
;
    } else {
      $message= '<ul>
                  <li>'
.l($user->name, 'user/'.$user->uid).'</li>
                  <li>'
.l('Изменить', 'user/' . $user->uid . '/edit').'</li>
                  <li>'
.l('Выход', 'logout').'</li>
                </ul>'
;
    }
    return $message;
}

В page.tpl.php обернул всё тегами <noindex> для Яндекса:
<div id="login"><?php echo phptemplate_flat_login();?></div>

Стили (style.css):

/* Картинка юзера слева: */
#login ul{background: url('images/user.png') 0 center no-repeat;padding: 0 0 0 0.5em;margin:0;}
/* Выводим в одну строку элементы списка и отступы между ними: */
#login ul li {display: inline; padding-left:1em;}

Отключение стандартного блока входа пользователей

Чтобы убрать стандартный блок входа - отключите его на странице настройки Блоков.
См. статью Отключить блок.

Использованные материалы

Лаконичная замена блока "Вход"

Полезные материалы

Комментарии

А как убрать стандартный друпаловский блок входа?

Гость | Июн 30th, 2008 в 8:16 после полудня

стандартный блок входа убираетсяч ровно также, как и все остальные - на странице управления блоками

оборачивать вывод в noindex ненужно, т.к. эти ссылки все равно закрыты в robots.txt, а авторизовываться поисковые машины еще не умеют.

Ночной Славянск-на-Кубани | Авг 20th, 2008 в 1:45 после полудня

Проблема в том, что все надписи должны быть в UTF, что довольно проблематично.
Можно как то модернизировать блок, чтоб
'.l('Login','user/login', array('attributes' => array('rel'=>'nofollow')) ).'
переводился стандартным модулем переводов?

scandi | Сен 12th, 2008 в 4:44 после полудня

А в чем проблема? Пишем ....t('Login')... и переводим

PVasili | Сен 13th, 2008 в 12:09 после полудня

а как сюда приплести openID?

Артём | Сен 27th, 2008 в 12:17 утра

Не пробовал... Если найдете решение - дайте знать.

VladSavitsky | Окт 2nd, 2008 в 3:57 после полудня

решение даже искать не пришлось. если нажать на "вход", то появится login page, где будет доступен вход по OpenID.

Артём | Окт 3rd, 2008 в 8:22 утра

В принципе так и задумывалось.
Я думал, что вы хотите получить ссылку на OpenID форму прямо в блоке...

VladSavitsky | Окт 3rd, 2008 в 9:14 утра
 
 
 

RSS-лента новостей

Dries Buytaert по-русски
]]>Русский поиск Drupal]]>

Перенос сайта из Joomla в Drupal
Перенос сайта из WordPress в Drupal

]]> Drupal - это бесплатная система управления контентом с открытым исходным кодом ]]>