login

БлогЛогин, регистрация и восстановление пароля с помощью AJAX

Есть такой модуль замечательный - называется он Ajax Register. Раньше он работал довольно странно (к тому же для 6го Друпала), и никогда моих потребностей в ajax логине не удовлетворял. Потом я проскочил в ко-разработчики модуля и сделал релиз для Drupal 7. Однако этот релиз был больше заточен под тот проект, для которого я этот модуль писал на самом деле. Поэтому подходил он явно не всем, хотя всё же лучше, чем ничего.

Сегодня я наконец собрался с мыслями и выпустил в свет адекватный релиз Ajax Register 7.x-4.x. Вот его фичи:

УрокДобавляем авторизацию по емейлу в Drupal 7

Я был несколько огорчён, узнав, что в семёрке я не имею возможности авторизоваться как по логину, так и по емейлу пользователя. Решения этой проблемы ровненько два.

Решение первое

Модуль Email registration. Поставив его вы получите требуемый функционал. Однако в дополнение вы получите дополнительный багаж из функционала модуля (регистрация по емейлу, вместо обычной). Если вас это устраивает - дальше можно не читать.

УрокДелаем popup логин на jquery.ui.dialog

В ядре Drupal 7 появились дополнительные js библиотеки, которые можно подключать по необходимости (по умолчанию они отключены). В частности, библиотка jquery.ui, которая в 6й версии Друпала была отдельным модулем. Теперь же достаточно вызвать функцию drupal_add_library() с нужными параметрами - и необходимые скрипты и стили будут подключены автоматически.

УрокPop-up логин при помощи javascript

Обычный логин занимает на сайте много места, а это может быть критично для некоторых сайтах. Так что сегодня я расскажу о том, как можно сделать симпатичный всплывающий логин.

Как это сделать в теории:

  • запихиваем блок логина в какой-нибудь div
  • скрываем этот div через css (display:none;)
  • создаём кнопку/ссылку с надписью ВХОД
  • вешаем скрипт, который при нажатии на кнопку ВХОД показывает/прячет div с блоком логина

А теперь к практике:

Напишем в template.php функцию, которая будет показывать анонимам кнопки ВХОД и РЕГИСТРАЦИЯ, а зарегистрированным - ПРОФИЛЬ и ВЫХОД (а заодно и блок логина обернём в div):

  function custom_login() {
 
  $output = '<div id = "custom_login">'; //оборачиваем наш код в дополнительный div
  global $user;
 
 
  if ($user->uid) {
    //если пользователь авторизовался, то