- Главная
- Документация
- WebSignup и WebLogin
- 96856
- Июль 2014
WebSignup и WebLogin Регистрация и авторизация веб-пользователей
Для регистрации и авторизации веб-пользователей в комплекте с MODX идут два сниппета: WebSignup и WebLogin. Прежде, чем вопользоваться этими сниппетами, убедитесь в том, что вы создали группу веб-пользователей и назначили права доступа ресурсам.
Текущая версия 1.1.
Сниппет WebSignup предназначен для регистрации веб-пользователей.
Параметры WebSignup
Значение по умолчанию: нет
Примечание:
Пример:
&tpl=`Signup`
Значение по умолчанию: нет
Примечание:
Пример:
&groups=`webusers`
Значение по умолчанию: 0
Примечание: Решите использовать (1) или не использовать (0) captcha
Пример:
&useCaptcha=`1`
Форма регистрации
Группы веб-пользователей
Если у вас еще не создана группа для веб-пользователей, идем в Пользователи >> Права веб-пользователей
и создаем группу веб-пользователей webusers
.
На вкладке Группы ресурсов создаем группу с таким же названием: webusers
.
На следующей вкладке Связи групп пользователей и групп ресурсов связываем группу пользователей webusers
с группой ресурсов webusers
.
Теперь назначаем права доступа webusers
тем ресурсам, которые должны быть доступны пользователям только после регистрации.
Форма регистрации
Создаем страницу, на которой будет происходить регистрация пользователей, и помещаем на ней вызов сниппета WebSignup:
[!WebSignup? &tpl=`SignUp` &groups=`webusers`!]
Вы можете создать несколько групп веб-пользователей. Если их перечислить через запятую &groups=`webusers,webusers2,webusers3`
то зарегистрировавшийся пользователь будет принадлежать всем этим группам.
Если вызвать сниппет без параметра &groups
, то пользователь не будет принадлежать ни одной группе.
Шаблон формы регистрации
Для вывода формы регистрации можно было бы воспользоваться шаблоном &tpl=`SignUp`
, что и следует сделать тем, кому требуется нестандартная форма регистрации, но я нашел в интернете интересную статью, где приводится исправленный и русифицированный файл websignup.inc.php, который отвечает за вывод формы регистрации. Скачать этот файл можно по этой ссылке. Скачайте архив и замените файл websignup.inc.php
аналогичным файлом из скаченного архива. Остальные файлы в архиве - это модифицированная CAPTCHA, описание здесь.
Текущая версия 1.1.
Сниппет WebLogin предназначен для авторизации зарегистрированных пользователей. После авторизации веб-пользователь получает доступ к страницам, разрешенным для этой группы пользователей.
Параметры WebLogin
Значение по умолчанию: нет
Примечание: переадресовывает пользователя к первой санкционированной странице в списке. Если никакой id не был определен тогда будет использоваться домашняя страница авторизованного пользователя или действующий документ
Пример:
&loginhomeid=`18`
Значение по умолчанию: нет
Примечание:
Пример:
&logouthomeid=`19`
Значение по умолчанию: нет
Примечание:
Пример:
&pwdreqid=`12`
Значение по умолчанию: нет
Примечание:
Пример:
&pwdactid=`19`
Значение по умолчанию: нет
Примечание:
Пример:
&logintext=`Войти`
Значение по умолчанию: нет
Примечание:
Пример:
&logouttext=``
Значение по умолчанию:
Примечание:
Пример:
&tpl=``
Форма авторизации
Страница авторизации
Как правило, форма авторизации должна быть не только на главной странице, но и на остальных общедоступных страницах. Таким образом, нам надо создать не отдельную страницу для авторизации, а вписать форму авторизации в шаблон или шаблоны существующего или создаваемого проекта. Поэтому, было бы логично создать чанк WebLogin в котором и разместится вызов сниппета:
[!WebLogin? &logouthomeid=`1` &tpl=`Login` &logintext=`Войти`!]
Шаблон формы авторизации
Создаем чанк Login и помещаем в него код из файла chunk.weblogin.tpl в котором нужно изменить английский текст на русский и добавить ссылку на страницу с регистрацией:
<!-- #declare:separator <hr> -->
<!-- login form section-->
<form method="post" name="loginfrm" action="[+action+]" style="margin: 0px; padding: 0px;">
<input type="hidden" value="[+rememberme+]" name="rememberme">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><b>Пользователь:</b></td>
<td><input type="text" name="username" tabindex="1" onkeypress="return webLoginEnter(document.loginfrm.password);" size="8" style="width: 150px;" value="[+username+]" /></td>
</tr>
<tr>
<td><b>Пароль:</b></td>
<td><input type="password" name="password" tabindex="2" onkeypress="return webLoginEnter(document.loginfrm.cmdweblogin);" style="width: 150px;" value="" /></td>
</tr>
<tr>
<td><label for="chkbox" style="cursor:pointer">Запомнить меня: </label></td>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"><input type="checkbox" id="chkbox" name="chkbox" tabindex="4" size="1" value="" [+checkbox+] onclick="webLoginCheckRemember()" /></td>
<td align="right">
<input type="submit" value="[+logintext+]" name="cmdweblogin" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"><a href="#" onclick="webLoginShowForm(2);return false;">Забыли пароль?</a> | <a href="[~15~]">Регистрация на сайте</a> <!-- Число 15 слева замените на ID страницы с формой регистрации --></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<hr>
<!-- log out hyperlink section -->
<a href='[+action+]'>[+logouttext+]</a>
<hr>
<!-- Password reminder form section -->
<form name="loginreminder" method="post" action="[+action+]" style="margin: 0px; padding: 0px;">
<input type="hidden" name="txtpwdrem" value="0" />
<table border="0">
<tr>
<td>Укажите адрес электронной почты,<br />чтобы получить Ваш пароль:</td>
</tr>
<tr>
<td><input type="text" name="txtwebemail" size="24" /></td>
</tr>
<tr>
<td align="right"><input type="submit" value="Submit" name="cmdweblogin" />
<input type="reset" value="Cancel" name="cmdcancel" onclick="webLoginShowForm(1);" /></td>
</tr>
</table>
</form>