- Модуль регистрации для Joomla 3 — обзор, установка, активация и особенности
- Как настроить движок, чтобы на нем активировалась регистрация пользователей
- Лучшие модули регистрации для ресурса на Joomla
- Основы Joomla
- Регистрация и авторизация пользователей в Joomla
- Как сделать регистрацию в Joomla?
- Модуль авторизации в Joomla
- Ссылки на страницы регистрации и авторизации
- Настройка регистрации пользователей в Джумла
- Быстрая регистрация с защитой от спама в Joomla своими руками
- Чем плоха стандартная регистрация Joomla?
- Использование стандартной регистрации Joomla для рассылки спама
- Как должна выглядеть быстрая форма регистрации?
- Стоит ли заставлять пользователей подтверждать email при регистрации?
- Нужна ли отдельная страница для регистрации?
- Нужна ли защита от автоматических регистраций?
- Создание быстрой формы регистрации
- 1) Переопределяем макет страницы регистрации в используемый шаблон Joomla.
- 2) Создаем, и подключаем к переопределенному макету файлы JS и CSS
- 3) Создаем JS-код для быстрой регистрации
- 4) Добавляем обработчик клика на кнопку «Регистрация»
- 5) Добавляем файл стилей, и скрываем все лишние поля
- 6) Переносим заголовки полей в placeholder’ы (не обязательно)
- Быстрая регистрация в Joomla своими руками. Защита от спама.
Модуль регистрации для Joomla 3 — обзор, установка, активация и особенности
Время на чтение: 5 минут
Чтобы у сайта появились постоянные пользователи, нужно уметь их привязывать к ресурсу. С одной стороны, это может быть подписка на имейл-рассылку, с другой — «олдскульная» версия набора постоянников — регистрация пользователей. Невозможно представить качественный ресурс, на котором отсутствовала бы регистрация. Сделать ее можно на любом движке, в том числе и на Joomla, но нужно уметь ее добавлять на сайт.
В данной статье вы узнаете как активировать модуль регистрации пользователей, как отключить его и какие лучшие расширения подобного плана есть для версии Joomla 3.
Как настроить движок, чтобы на нем активировалась регистрация пользователей
Даже если вы установите специальный модуль, этого не будет достаточно, чтобы на сайте Joomla заработала полноценная регистрация пользователей. Дело в том, что по умолчанию в настройках движка установлен запрет на регистрацию и создание аккаунтов простых пользователей. Вам необходимо это исправить.
Зайдите во вкладку меню «Сайт». Оттуда перейдите в «Общие настройки» и раздел «Система». В этом разделе содержится «Менеджер пользователей», который как раз и регулирует регистрацию пользователей на сайте Joomla. Вам необходимо найти в настройках пункт «Регистрация пользователей» и нажать возле него утвердительный пункт: «Да» или «Yes». Теперь, когда вы установите на сайт специальный модуль, он вправду заработает.
Чтобы пользователь смог добавить собственный профиль и настроить параметры аккаунта, ему необходимо сначала найти меню регистрации на сайте. Для этого вам следует установить модуль в определенной части ресурса Joomla. Модуль можно будет разместить только в строго предписанной позиции, которую определяет установленный шаблон Joomla. Для начала активируйте сам модуль через вкладку «Менеджер расширений». Там вы сможете отключить либо включить то или иное расширение.
Следующий шаг — вам необходимо опубликовать модуль на сайте. То есть сделать так, чтобы на нем появилась форма регистрации. Для этого сначала перейдите в админке в раздел «Меню», а затем откройте «Меню пользователей» и «Вход». Там вы сможете отключить или включить форму регистрации и входа.
Чтобы в меню появилась форма регистрации, необходимо ее добавить в админке Joomla. Для этого вам снова предстоит зайти в «Меню» и во вкладку «Меню пользователей». Там вы найдете кнопку «Создать». Главное теперь — это выбрать правильный тип создаваемого меню — «Форма регистрации». Чтобы все заработало, нужно случайно не запретить отображение формы регистрации самим шаблоном. Выберите в меню «Оформление шаблона» пользовательские настройки и изменения появятся на сайте.
Лучшие модули регистрации для ресурса на Joomla
Одно из лучших расширений подобного плана — это SCLogin. Модуль отлично функционирует с третьей версией движка и устанавливается стандартным образом через «Менеджер расширений». Инструмент позволит пользователям создавать акканты при помощи профилей социальных сетей, что весьма удобно для юзеров. Только учтите, что эта функция модуля открывается только после покупки полной его версии.
В настройках модуля SCLogin вы сможете определить формат отображения элемента на странице, а также некоторые другие конфигурации. В частности, вы сможете настроить функцию «Забыли пароль?», а также отобразить модуль в виде текста или кнопки. Модуль хорош тем, что имеет широкий ряд параметров настроек. Вы сможете даже добавить возможность отображения аватара из социальной сети пользователя на аккаунте вашего сайта. Кроме того, если постараться, настроите SLL-шифрование регистрационных данных.
BT Login — еще одно мощное расширения для добавления регистрации на сайт. Оно так же просто устанавливается, как и предыдущий модуль, за исключением одной особенности — вам придется предварительно зарегистрироваться на сайте разработчика. BT Login отлично работает в версии Joomla 3. Модуль добавляет на сайт элемент всплывающего окна с регистрационной формой. Вы сможете отдельно добавить другой модуль входа — BT Login нормально на это отреагирует.
GiBi SimpleRegistration — другой удобный модуль для добавления регистрации на сайт. Этот инструмент создаст на вашем ресурсе элемент быстрой регистрации. Пользователь сможет, заполнив несколько полей, создать собственный аккаунт. По надобности можно создать пароль автоматически и он будет отправлен юзеру на почтовый ящик. Вместе с установкой модуля GiBi SimpleRegistration вы подтвердите установку специального компонента. Чтобы его активировать зайдите в «Менеджер расширений» и в меню «Компоненты».
SLogin — инструмент, который также позволяет добавить регистрацию на сайте через социальные сети. Модуль доступен на множестве языков, в том числе и на русском. В настройках расширения есть два варианта оформления. Пользователи смогут не только регистрироваться через соцсети, но и управлять привязкой аккаунтов через конфигурации профиля. Так же, как и SCLogin, данный модуль позволяет копировать аватарки из аккаунтов социальных сетей и перемещать их к вам на ресурс. Расширение состоит сразу из трех функциональных файлов — модуля, компонента и плагина, так что вы сможете разместить регистрационную форму в любой части сайта, даже по центру внутри контента. Единственный недостаток расширения SLogin — это наличие ссылки на сайт, которую можно убрать только после оформления платной подписки.
В целом, неважно какой именно вы выберете модуль для создания регистрационной формы на сайте. Куда важнее сам факт, что вы решились добавить регистрацию на ресурс. При правильном подходе эта затея обязательно обернется для вас увеличением ежедневного трафика на сайте — у вас появятся постоянники.
Основы Joomla
Регистрация и авторизация пользователей в Joomla
Руководство по настройке регистрации и авторизации пользователей на сайте Вторая по популярности система управления контентом в мире после WordPress.
Как сделать регистрацию в Joomla?
Иногда у неопытных администраторов сайтов на Joomla возникает вопрос, как включить или отключить возможность регистрации пользователей с внешнего интерфейса сайта: по умолчанию функция отключена.
Вопрос решается через Параметры пользователя в панели управления:
- перейдите в Система → Общие настройки
- кликните Пользователи в меню слева
- выберите нужное значение для опции Разрешить регистрацию пользователей:
- Да — разрешает регистрацию
- Нет — запрещает регистрацию
- сохраните изменения
Модуль авторизации в Joomla
Базовый функционал Joomla 3 предусматривает модуль с формой авторизации Вход на сайт.
Данный модуль может содержать ссылку на страницу регистрации, если эта функция активирована.
- перейдите в Расширения → Модули
- нажмите Создать
- нажмите Вход на сайт в списке Выбор типа модуля
- заполните все необходимы поля и выберите значения для опций
Не забудьте указать позицию модуля и страницы, на которых он должен отображаться.
Ссылки на страницы регистрации и авторизации
Как было сказано выше, страница с формой регистрации по умолчанию доступна по адресу:
Чтобы сделать её человекопонятной, необходимо присвоить данной странице пункт меню:
Другие опции заполняются по своему усмотрению.
Теперь страница регистрации будет доступна по URL-адресу в соответствии с алиасом. Адрес ссылки в модуле авторизации также будет заменён.
Таким же образом для обеспечить человекопонятный URL-адрес для страницы автризации.
Настройка регистрации пользователей в Джумла
Все базовые настройки, касающиеся авторизации и регистрации, находятся а Параметрах пользователя (Система → Общие настройки, Пользователи):
Разрешить регистрацию пользователей
Если выбрано Да, то будет включен механизм самостоятельной регистрации пользователей через лицевую панель сайта.
Группа для регистрирующихся пользователей
Группа, в которую автоматически будут включены новые пользователи, регистрирующиеся через лицевую панель сайта.
Группа пользователей для Гостей
Заданная по умолчанию группа, права которой будут применены для неавторизованных пользователей (все, кто не ввёл логин и пароль).
Если выбрано Да, пароль пользователя будет выслан ему в письме-уведомлении о регистрации.
Активация нового пользователя
Если выбрано значение Нет, пользователь будет зарегистрирован сразу. Если выбрано значение Самостоятельно, пользователю будет отправлено письмо с ссылкой для активации учётной записи. Если выбрано Администратором, пользователю будет отправлена ссылка для проверки его адреса электронной почты. После подтверждения адреса, администратору будет отправлено уведомление, о необходимости активировать учётную запись пользователя.
Отправлять администраторам уведомления о регистрации новых пользователей, если параметр «Активация нового пользователя» имеет значение «Нет» или «Самостоятельно».
Выберите плагин CAPTCHA для использования в форме регистрации пользователя и форме напоминания логина / пароля. Обратите внимание, что некоторые плагины требуют настройки.
Если выбрано «По умолчанию», убедитесь, что в общих настройках сайта задан CAPTCHA-плагин по умолчанию.
Параметры сайта для пользователя
Если установлено Показать, пользователи смогут выбирать на странице собственных параметров предпочтительный для себя язык, редактор и сайт справки.
Если Параметры сайта для пользователя имеет значение Показать, пользователи смогут выбирать язык сайта при регистрации.
Данная функция может быть полезна для многоязычных сайтов.
Разрешить смену логина
Позволяет пользователям изменять их логин при редактировании профиля.
Также вы можете настроить параметры пароля в соответствующей вкладке.
Быстрая регистрация с защитой от спама в Joomla своими руками
Скажите честно, вам нравится встроенная в Joomla система регистрации? Мне нет. Она слишком неоднозначна, она устарела. Кроме того, через форму регистрации Joomla возможна рассылка спама.
В данной статье хочу предложить вам свой вариант быстрой регистрации для Joomla, который вы можете реализовать на основе стандартной регистрации собственными руками. Этот вариант позволит не только упростить регистрацию, но и защитить сайт от спам-регистраций, которые стали распространенным явлением в наше время.
Чем плоха стандартная регистрация Joomla?
Стандартная форма регистрации Joomla довольно неоднозначна. Лично мне она совсем не нравится. Выглядит она так:
С одной стороны, всё довольно очевидно и логично. Но с другой стороны, многие ли из вас смогут ответить, что такое «логин», и чем он отличается от «имени»? Зачем вообще запрашивать и имя и логин? Поля ввода повторного email и пароля нужны, чтобы пользователь не ошибся, но, согласитесь, вводить два раза свою электронную почту раздражает.
К сожалению, регистрация в Joomla устроена именно таким образом. На эти поля завязана вся система и просто так убрать их нельзя.
Использование стандартной регистрации Joomla для рассылки спама
Есть еще одна проблема, о которой, уверен, многие не знают. Какая-то умная голова догадалась использовать форму регистрации Joomla для рассылки спама.
«Как такое возможно?» – спросите вы. Очень просто. Страница формы регистрации Joomla стандартная:
index.php?option=com_users&view=registration
Это означает, что зайдя на любой сайт, работающий на Joomla, и введя этот URL, вы попадете на форму регистрации, содержащую стандартный набор полей.
Далее бот заполняет поля любыми данными. Главное – подставить в поле «Имя пользователя» текст спам-сообщения. После того, как регистрация отправляется, имя пользователя (спам-сообщение) видит, по крайней мере, администратор сайта. Это в лучшем случае. В худшем, если на сайте опубликован модуль последних зарегистрированных пользователей, могут видеть и посетители сайта.
Вот такой вот необычный способ рассылки спама. Если вам кажется, что я его придумал, то нет. Это реальные случаи из практики. Вообще, такой спам не доставляет особых проблем, но вот база данных постепенно наполняется спам-пользователями, что не есть хорошо. Примерно вот так это выглядит в админке:
Как должна выглядеть быстрая форма регистрации?
Давайте подумаем, как должна выглядеть идеальная форма регистрации. В моем представлении, это форма, содержащая минимум полей, которую сможет заполнить даже ребенок. Чаще всего к таким полям относятся контактные данные (Email или телефон) и имя пользователя (просто чтобы знать, как к пользователю обращаться).
«А как же логин и пароль?» – спросите вы. Я сторонник следующего подхода. Логин должен соответствовать двум требованиям:
- Быть уникальным для каждого пользователя
- Быть запоминающимся (таким, который пользователь легко вспомнит, даже если долго не заходил на сайт)
Этим двум требованиям лучше всего соответствуют Email и телефон пользователя. Но если телефон – это что-то личное, то, чем пользователь не всегда готов делиться, то запрос email – стандартная процедура при регистрации на любом сайте. Таким образом, в качестве логина лучшим решением мне видится использования адреса электронной почты. Этот адрес всегда будет уникальным для пользователя, и, с высокой долей вероятности, пользователь вспомнит его, даже если давно не заходил на сайт.
С паролем всё не так однозначно. Главное требование к паролю: его сложность. Она используется для защиты от подбора пароля. Но заставлять пользователя самому придумывать для себя сложный пароль, на мой взгляд, не лучшая идея. Просто представьте: вас заставляют придумать буквенно-цифровой пароль в N символов, содержащий строчные и заглавные буквы, а потом вам нужно еще и повторить его в поле подтверждения. Ужас. Почему-то разработчики Joomla пошли именно по этому пути, добавив настройки по требованиям к сложности пароля при регистрации.
В моем представлении – если уж делать для всех пользователей сложные пароли, то нужно делать это автоматически, не заставляя их морочить себе голову на этапе регистрации. На самом деле это проще, чем может показаться на первый взгляд. Кроме того, так мы можем избавиться сразу от двух лишних полей в форме регистрации: пароль и подтверждение пароля.
Давайте подведем итог по полям формы регистрации (было –> стало):
- Имя –> Имя
- Логин –> Email
- Пароль –> Скрыто, генерируется автоматически
- Повтор пароля –> Скрыто, генерируется автоматически
- Адрес электронной почты –> Скрыто, заполняется из поля «Логин»
- Подтверждение адреса электронной почты –> Скрыто, заполняется из поля «Логин»
Таким образом, от 6 полей в форме регистрации, заполнения пользователем потребуют только два: Имя и Email. В результате форма регистрации будет выглядеть так:
Согласитесь, гораздо лучше, чем раньше. Но мне хочется упростить ее еще больше. Давайте уберем заголовки полей внутрь, с помощью атрибута placeholder, и уберем надпись о том, что звездочка – это обязательные для заполнения поля (сейчас это понятно уже интуитивно). Путем таких несложных манипуляций мы сделали форму еще проще:
Вот теперь, на мой взгляд, идеально =).
Есть еще некоторые смежные вопросы по процессу регистрации.
Стоит ли заставлять пользователей подтверждать email при регистрации?
Joomla позволяет выбрать: подтверждать или нет адрес электронной почты после регистрации. Если выбрано подтверждение, пользователю приходит письмо со ссылкой, по которой он должен перейти. В противном случае аккаунт не активируется.
Стоит ли использовать подтверждение адреса электронной почты? Здесь нет однозначного ответа. Если реальность email-адреса пользователя для вас очень важна, то стоит включить такое подтверждение, но при этом быть готовым к тому, что часть адресов может быть фейковой. Если же ваша главная задача – максимально упростить для пользователя прохождение процесса регистрации (например, в момент заказа в интернет-магазине), то можно и отказаться от этой опции. Так или иначе, переключить ее вы можете в настройках менеджера пользователей Joomla.
Нужна ли отдельная страница для регистрации?
По умолчанию Joomla предлагает только один вариант регистрации – на отдельной странице, адрес которой я уже писал выше. Иногда может быть удобнее производить регистрацию в модуле Joomla, или, например, во всплывающем окне. Что-то вроде:
Если вы хотите использовать такой нестандартный вид регистрации в Joomla, будьте готовы написать немного дополнительного кода.
Нужна ли защита от автоматических регистраций?
Последний вопрос, на который следует дать себе ответ, делать или нет защиту от автоматических регистраций. Если вас донимает спам в менеджере пользователей, то, определенно, стоит сделать такую защиту. Если же подобный вид спама вас не беспокоит, то можно обойти этот вопрос стороной.
Теперь, когда мы определились с внешним видом и функциональностью нашей быстрой регистрации, пора перейти непосредственно к ее реализации.
Создание быстрой формы регистрации
1) Переопределяем макет страницы регистрации в используемый шаблон Joomla.
Для этого копируем файл:
/components/com_users/views/registration/tmpl/default.php
/templates/ВАШ_ШАБЛОН/html/com_users/registration/
Каталоги, которых не хватает, создаем сами. Все дальнейшие действия производим уже в переопределенном файле.
2) Создаем, и подключаем к переопределенному макету файлы JS и CSS
Для автоматического заполнения полей нам потребуется использовать немножко JavaScript. Мы можем написать его или в общем файле JS, который подключен к шаблону, или создать новый файл и подключить его только в макете регистрации. Пойдем вторым путем.
В папке /templates/ВАШ_ШАБЛОН/html/com_users/registration/ создаем новый файл registration.js . Пока он пустой.
Чтобы данное решение было легко переносимым между сайтами, и не было привязано к отдельному шаблону, также мы добавим в папку отдельный файл стилей registration.css:
/templates/ВАШ_ШАБЛОН/html/com_users/registration/registration.css . Он тоже пока пустой.
В переопределенном макете регистрации Joomla в начале находим строчку:
И заменяем ее на:
Если всё верно, в исходном коде страницы регистрации появится подключение файлов registration.js и registration.сss . Они должны корректно открываться браузером.
3) Создаем JS-код для быстрой регистрации
В файл копируем следующий код:
Здесь всё просто. Проверяем, заполнены ли поля имени и адреса электронной почты. Если да, автоматически заполняем на их основе остальные поля, и генерируем уникальный пароль.
4) Добавляем обработчик клика на кнопку «Регистрация»
В файле /templates/ВАШ_ШАБЛОН/html/com_users/registration/default.php находим код:
и заменяем его на:
Почему не использовать события JS и, в частности, JQuery? Таким образом мы обходим стандартную проверку заполнения полей, создаваемую Joomla. Нам нужно, чтобы пользователь заполнил только два поля, но не все, т.к. остальные заполнит наш скрипт из п.3.
Теперь, если всё сделано правильно, когда вы заполните в форме поля имени и адреса электронной почты, а затем нажмете кнопку «Зарегистрировать», то сначала увидите на секунду, как автоматически заполнятся все остальные поля, а затем произойдет регистрация.
5) Добавляем файл стилей, и скрываем все лишние поля
Когда мы убедились, что все поля заполняются скриптом корректно, и регистрация проходит успешно, нужно придать форме законченный вид и скрыть все автоматически заполняемые поля. Пользователь должен видеть только два поля: «Имя» и «Адрес электронной почты». Наполняем наш файл registration.css следующим содержимым:
Структура полей в форме регистрации построена в Joomla не самым удачным образом. Элементы, которые нам нужно скрыть, не имеют уникальных классов/идентификаторов. Точнее сами элементы их имеют, а вот родительские, которые также должны быть скрыты, уже нет. Проблему можно решить несколькими способами. Можно обращаться к элементам в CSS по порядковым номерам полей в форме. Но, как по мне, это не очень надежно. Я сделал иначе. В файле макета:
/templates/ВАШ_ШАБЛОН/html/com_users/registration/default.php
И заменяем его на:
Этой заменой мы добавили уникальные CSS-классы для родителей каждого поля. Теперь CSS-стили, заданные в файле registration.css, будут работать корректно.
Можно проверять. Теперь в форме регистрации видны только два нужных поля, и при этом регистрация работает.
6) Переносим заголовки полей в placeholder’ы (не обязательно)
В целом форма быстрой регистрации уже готова. Если вы хотите сделать её еще компактнее, можно перенести названия полей внутрь полей. Код в макете регистрации сделан таким образом, что мы получаем уже готовые сформированные поля. Есть два пути. Мы можем либо сформировать поля в html заново (что не очень-то и просто), либо подправить код путем поиска-замены по содержимому переменной. Пойдем вторым путем. Как по мне, он проще.
Да, согласен, то еще код. Но работает исправно.
Также удалим обычные заголовки полей. Удаляем блок:
Теперь, наконец, наша форма приобрела окончательный вид, который задумывался первоначально. Можно потестировать, проверить, что всё работает. Логин и пароль будут приходить пользователю на email сразу после регистрации.
Желательно сразу проработать варианты ошибок, которые могут возникнуть в процессе эксплуатации формы. Например, пользователь мог забыть, что он уже регистрировался на сайте, и попытаться зарегистрироваться повторно. В этом случае Joomla выдаст ошибку с предупреждением, что пользователь с таким логином уже существует в системе. Пользователь вообще не знает, о чем это сообщение, т.к. слово «Логин» не фигурирует в форме регистрации. Это, и другие сообщения, где подменяются понятия, лучше сразу заменить с помощью переопределения языковых констант.
Быстрая регистрация в Joomla своими руками. Защита от спама.
Теперь, когда базовая форма быстрой регистрации в Joomla готова, можно вернутся к теме защиты от спам-регистраций.
В самом простом исполнении вы можете проверять, совпадает ли логин пользователя и email. Т.к. у нас они заполняются автоматически одними и теми же данными, то это утверждение будет всегда истинно для реальных пользователей и практически всегда ложно для роботов, которые ничего не знают об особенностях нашей формы регистрации.
К сожалению, точка кода, в которой необходимо осуществлять эту проверку, находится в файле ядра Joomla, изменение которого приведет к хаку. Вы можете внести этот хак, но помните о нем.
components/com_users/models/registration.php
И добавляем после код:
Теперь при несовпадении логина и email’а регистрация не произойдет.
Способ с хаком плохой. Но есть и хороший, хотя и не такой быстрый. Можно вынести эту маленькую правку в отдельный плагин, избежав, таким образом, хака.
Вот и всё. Теперь функционал быстрой регистрации окончательно готов. Мы обошлись собственными силами, не используя сторонних расширений. Подобная регистрация, с некоторыми оговорками, может быть интегрирована и в компонент интернет-магазина Virtuemart, позволяя регистрировать покупателей незаметно, не отвлекая от заказа.
Если у вас не получилось самостоятельно выполнить все шаги, можете воспользоваться файлами из архива ниже или заказать доработку регистрации Joomla у меня. Их нужно извлечь в директорию, куда мы переопределяем макет на первом шаге. Этого достаточно для подключения быстрой регистрации.