Для регистрации и авторизации веб-пользователей в комплекте с MODX идут два сниппета: WebSignup и WebLogin. Прежде, чем вопользоваться этими сниппетами, убедитесь в том, что вы создали группу веб-пользователей и назначили права доступа ресурсам.

WebSignup

Текущая версия 1.1.

Сниппет WebSignup предназначен для регистрации веб-пользователей.

Параметры WebSignup

Формат: имя чанка | ID документа
Значение по умолчанию: нет
Примечание:
Пример:
&tpl=`Signup`
Формат: строка
Значение по умолчанию: нет
Примечание:
Пример:
&groups=`webusers`
Формат: 0 | 1
Значение по умолчанию: 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, описание здесь.

WebLogin

Текущая версия 1.1.

Сниппет WebLogin предназначен для авторизации зарегистрированных пользователей. После авторизации веб-пользователь получает доступ к страницам, разрешенным для этой группы пользователей.

Параметры WebLogin

Формат: ID документа
Значение по умолчанию: нет
Примечание: переадресовывает пользователя к первой санкционированной странице в списке. Если никакой id не был определен тогда будет использоваться домашняя страница авторизованного пользователя или действующий документ
Пример:
&loginhomeid=`18`
Формат: ID документа
Значение по умолчанию: нет
Примечание:
Пример:
&logouthomeid=`19`
Формат: ID документа
Значение по умолчанию: нет
Примечание:
Пример:
&pwdreqid=`12`
Формат: ID документа
Значение по умолчанию: нет
Примечание:
Пример:
&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">Запомнить меня:&nbsp; </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>

Поделитесь ссылкой

Статистика

Яндекс цитирования
© 2011 - 2023 Школа MODX
Напишите нам в Telegram