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


Решение
Варианты
- Использовать модуль 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;
}
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;}
#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;}
Отключение стандартного блока входа пользователей
Чтобы убрать стандартный блок входа - отключите его на странице настройки Блоков.
См. статью Отключить блок.
Использованные материалы
Лаконичная замена блока "Вход"
Полезные материалы
- HowTo: Create a custom user login bar
- Форма входа на сайт - сжатый перевод предыдущей статьи.
Bookmark/Search this post with











Комментарии
А как убрать стандартный друпаловский блок входа?
стандартный блок входа убираетсяч ровно также, как и все остальные - на странице управления блоками
оборачивать вывод в noindex ненужно, т.к. эти ссылки все равно закрыты в robots.txt, а авторизовываться поисковые машины еще не умеют.
Проблема в том, что все надписи должны быть в UTF, что довольно проблематично.
Можно как то модернизировать блок, чтоб
'.l('Login','user/login', array('attributes' => array('rel'=>'nofollow')) ).'переводился стандартным модулем переводов?
А в чем проблема? Пишем ....t('Login')... и переводим
а как сюда приплести openID?
Не пробовал... Если найдете решение - дайте знать.
решение даже искать не пришлось. если нажать на "вход", то появится login page, где будет доступен вход по OpenID.
В принципе так и задумывалось.
Я думал, что вы хотите получить ссылку на OpenID форму прямо в блоке...