регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры modx revolution

Come again soon (5)¶

This is the page that people see after a successful logout. It needs only to contain a basic message, or perhaps a link back to the Login page:

Create the required pages¶

Before we add all the Snippets that do all the dirty work, let’s first add the following 5 pages to your MODX Revo site:

Forgot password (2)¶

  • Probably hidden from most menus

I can’t log in!¶

Usually the errors here revolve around incorrect page IDs, misspellings of Chunk names, or omissions of square brackets in your template tags. Double-check these very carfully.

Also make sure that your Snippets are called uncached! Some of them will function cached, but some will not. They should use the exclamation point in front of them:

[[!Login]]

and not

[[Login]]

I can’t log out!¶

Another subtle error that you might encounter is an inability to log out. One cause of that is pointing your logout link to a page other than your Login page. Remember, your logout link must point to the same page containing the Login snippet!

It’s also possible that your server does not send out the Password Reset emails correctly; in that case you need to debug your email setup on your server.

Login page (1)¶

Put the following Snippet call on your login page:

[[!Login?
&loginTpl=`lgnLoginTpl`
&logoutTpl=`lgnLogoutTpl`
&errTpl=`lgnErrTpl`
&loginResourceId=`4`
&logoutResourceId=`5`
]]

Then save the page. You’ll notice that the Snippet call has a lot of arguments – many of those arguments reference the names of Chunks. When you installed the Login Add-on, many of these Chunks were already created for you (look under the Elements tab), but sometimes you may want to create your own Chunks and update the Snippet parameters to reference their names. In this example, we are customizing the lgnLoginTpl Chunk.

Modx — login (авторизация пользователей)

Урок, в котором рассмотрим создание страниц «Авторизация» и «Восстановление пароля» с помощью компонента Login.

Optional properties (non login)¶

Helpful parameters which can facilitate Login.

NameDescriptionDefault
recaptchaHeightCan be used to modify the ReCaptcha iframe Height attribute size.300
recaptchaThemeCan be used to modify the ReCaptcha theme to ‘red’, ‘white’, ‘blackglass’, ‘clean’, or others as they are introduced by Google.clean
recaptchaWidthCan be used to modify the ReCaptcha iframe Width attribute size.500

Possible errors¶

Now that you’ve put together all these parts, it’s time to test them. If everything works perfectly, then you can login on the Login page and be redirected to the “Members Home Page”. Logging out can be accomplished by visiting the Login page and clicking the “Logout” link (or optionally if you created it, by clicking the “Logout Page” WebLink). Upon successful logout, you should be redirected to the “Come Again Soon” page.

Properties¶

Login comes with some configuration properties you can set to adjust the way Login behaves.

Usage¶

Example for Login:

[[!Login]]

You can also specify the template, however make sure to call the &tplType parameter also:

[[!Login? &tplType=`modChunk` &loginTpl=`myLoginChunk`]]

See the snippet properties for more options.

Действия форм

Стандартный javascript написан таким образом, чтобы обрабатывать все формы авторизации универсально, различая их по указанным действиям в скрытом input:

Возможны следующие действия:

  • auth/formLogin – обычная авторизация. Если пароль не указан, то будет отправлено письмо со ссылкой для сброса.
  • auth/formRegister – регистрация нового пользователя
  • auth/formAdd – дополнительня авторизация в другой аккаунт, для быстрого переключения между ними
  • auth/sendLink – отправка ссылки на сброс пароля

Выход из учётной записи доступен по простой загрузке страницы с параметром в ссылке.

Добавление провайдера

Для добавления своего провайдера SMS вам нужно создать новый класс в core/components/office/model/sms/myprovider.class.php.

Примерная структура класса:

После этого можно указывать MyProvider в настройке office_sms_provider.

Провайдера sms можно использовать и для произвольной отправки sms через API MODX:

$provider = $modx->getOption('office_sms_provider');
if ($service = $modx->getService($provider, $provider, MODX_CORE_PATH . 'components/office/model/sms/')) {
    $send = $service->send('79234778899', 'Приветик!');
    return $send === true
        ? 'Сообщение отправлено!'
        : 'Ошибка при отправке сообщения: ' . $send;
    }
}

Класс провайдера обязательно должен иметь метод send.

Дополнительные поля

Регистрация в Office требует наличие всего одного заполненного поля – email, всё остальное необязательно.
Так сделано специально, чтобы пользователь как можно скорее зарегистрировался на сайте, а дальше вы уже можете требовать от него заполнения профиля, если хотите.

Заполнение больших форм при регистрации утомляет, поэтому Office старается не напрягать пользователя лишним вводом данных.

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

Для этого добавим select в форму регистрации:

Изменение пароля

Изменение пароля будем выполнять на соответствующей странице, созданной нами в предыдущей статье.

Для этого откроем ресурс «Изменение пароля» и поместим в его содержимое форму и вызов сниппета ChangePassword. С помощью него мы будем выполнять действия, связанные с изменением пароля.

Содержимое ресурса:

Личный кабинет пользователя

На странице «Личный кабинет» будем выводить сведения из профиля пользователя, а также кнопки, с помощью которых можно перейти на страницы «Изменения пароля» и «Редактирование данных». Получение данных профиля будем выполнять через сниппет Profile.

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

Содержимое ресурса:

Обновление профиля пользователя

На странице «Редактирование данных» пользователь может изменить данные своего профиля. В данном случае: fullname (полное имя), phone (телефон), country (страна) и website (веб-сайт). Содержимое ресурса будет включать форму и сниппет UpdateProfile из пакета Login для её обработки.

Содержимое ресурса:

Пособие по быстрой настройке компонента login на вашем сайте

Нам понадобятся следующие страницы:

  • Страница регистрации с формой для регистрации
  • Страница активации аккаунта
  • Страница восстановления пароля
  • Страница сброса пароля

Форма входа на сайт будет размещаться на всех страницах сайта (например, в хедере).

Вот такую страницу регистрации мы хотим получить:

Редактирование профиля

Основных отличий сниппета officeProfile от других решения для редактирования профиля несколько:

Это всё работает сразу, из коробки, безо всякого шаманства.

Сам сниппет вызывается очень просто:

[[!officeProfile]]

Вы можете указать ему дополнительные параметры: отключать ли HybridAuth, куда пересылать юзера при выходе с сайта (по умолчанию – текущий url), параметры загрузки аватара и т.д.
Не буду на этом останавливаться, вы сами можете всё прекрасно посмотреть в его параметрах, в админке.

Режим авторизации

Режим авторизации указывается в системной настройке office_auth_mode.
По умолчанию для регистрации и сброса пароля используется email, но вы можете включить режим phone.

После этого вам нужно выбрать провайдера отправки sms в системной настройке office_sms_provider.
По умолчанию доступны SmsRu и ByteHand.

Для работы провайдеров используются следующие системные настройки

  • office_sms_id — идентификатор клиента на сервисе.
  • office_sms_key — ключ клиента на сервисе, для SmsRu не нужен.
  • office_sms_from — текстовое обозначение отправителя, его нужно согласовывать с сервисом.

В зависимости от режима работы поля email и mobilephone становятся обязательными для регистрации.

Страница «авторизация»

Страница «Авторизация» предназначена для отображения пользователю формы входа на сайт, а также HTML-фрагмента с помощью которого он может выйти из системы. Всё логику работы по авторизации пользователя выполняет сниппет Login.

Содержимое ресурса «Авторизация» (сниппет Login):

MODX Login — Процесс авторизации пользователя Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

Описание используемых параметров сниппета Login:

Содержимое чанка myLoginChunk (шаблон формы входа):

MODX Login — Форма входа Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

Содержимое чанка myLgnErrTpl (шаблон ошибки):

MODX Login — Форма входа (ошибка) Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

Содержимое чанка myLogoutChunk (шаблон, которой отображается авторизированному пользователю; используется для выхода из системы):

MODX Login — Форма выхода

Страница «восстановление пароля»

Страница «Восстановления пароля» используется для тех случаев, когда пользователь забыл пароль и хочет его сбросить. Переход на данную страницу осуществляется с помощью ссылки «Забыли пароль?», которая расположена ниже формы авторизации.

Этот ресурс выполняет следующие действия:

  • отображает пользователю форму, с помощью которой он может потребовать выполнить сброс пароля;
  • отправляет письмо (после успешной обработки формы) на email. Письмо содержит ссылку, с помощью которой пользователь может выполнить сброс своего пароля. На этой странице вышеперечисленные действия выполняет сниппет ForgotPassword;
  • отображает сообщение (если пользователь перешёл на эту страницу с помощью ссылки из письма), с помощью которой пользователь сможет выполнить сброс пароля. Эти действия на странице (установку нового пароля и отображение результата сброса) выполняет сниппет ResetPassword.

Содержимое ресурса «Восстановления пароля» (сниппет ForgotPassword и ResetPassword):

MODX Login — Процесс восстановления пароля пользователя Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

Описание используемых параметров сниппета ForgotPassword:

Имя параметраОписание
tplШаблон формы для восстановления пароля. Значение: mylgnForgotPassTpl
emailTplШаблон письма с инструкцией по восстановлению пароля, отправляемый пользователю. Значение: mylgnForgotPassEmail.
emailSubjectТема письма. Значение: Восстановление пароля.
sentTplШаблон сообщения, которое необходимо показать пользователю при удачной отправки email. Значение: mylgnForgotPassSentTpl.
loginResourceIdРесурс, на который необходимо направить пользователя после успешного подтверждения. Значение: 29.
resetResourceIdИдентификатор ресурса, в котором расположен сниппет ResetPassword. Значение: [[*id]].

Описание используемых параметров сниппета ResetPassword:

Имя параметраОписание
tplШаблон сообщения, содержащий информацию о сбросе пароля. Значение: mylgnResetPassTpl.
tplTypeТип шаблона tpl. Значение: modChunk.
loginResourceIdРесурс, на который необходимо направить пользователя после успешного выполнения сброса пароля. Значение: 29.
expiredTplШаблон сообщения о том, что пароль уже был сброшен или срок действия ссылки истёк. Значение mylgnExpiredTpl.

Содержимое чанка mylgnForgotPassTpl (шаблон, которой отображает пользователю форму для восстановления пароля):

MODX Login — Форма для восстановления пароля Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

Содержимое чанка mylgnForgotPassSentTpl (шаблон, которой отображает пользователю сообщение об успешной отправке почты):

MODX Login — Сообщение об успешной отправке почты пользователю для восстановления пароля Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

Содержимое чанка mylgnForgotPassEmail (шаблон письма для восстановления пароля):

MODX Login — Письмо содержащее имя и новый пароль пользователя, а также ссылку, активирующую данный пароль. Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

Содержимое чанка mylgnResetPassTpl (шаблон сообщения о результате сброса пароля):

MODX Login — Сообщение об успешном сбросе пароля. Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

Содержимое чанка mylgnExpiredTpl (шаблон сообщения о том, что пароль уже был сброшен или срок действия ссылки истёк):

MODX Login — Сообщение об успешном сбросе пароля. Регистрация, авторизация, изменение данных, удаление, выход пользователя, процессоры Modx Revolution

источник

Вывод заказов

История заказов вызывается через сниппет officeMiniShop2:

Всё построено на ExtJS – это очень удобно. Сам он загружается из установленного MODX, поэтому на разных версиях MODX он может выглядеть немного по разному.

Поля для вывода указываются в системных настройках.
Также вы можете полностью изменить внешний вид ExtJS собственным css файлом, но это довольно кропотливая работа – предупреждаю сразу.

Большинству магазинов подойдут настройки по умолчанию, разве что может понадобиться убрать поле “вес”.

Похожее:  Решение проблем с запуском онлайн-игры War Thunder

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *