Наверх

Авторизация, регистрация пользователей, личный кабинет и основы контроля доступа в MODX Revolution

Не многие знают, но в MODX уже из коробки существует мощная система разделения прав пользователей. Кроме того, компонент Login позволяет создать на сайте самую настоящую систему регистрации, авторизации, личного кабинета пользователей. Предлагаю разобрать возможности этого компонента и некоторые нюансы доступа пользователей.


Для начала, создадим две системные настройки, которые избавят нас от проблем с кодировками и неверным отображением некоторых страниц в браузере. В разделе «Система» → «Настройки системы» нажимаем кнопку «Создать новый параметр». В поле «Ключ» указываем error_page_header, а в поле «Значение» — HTTP/1.0 404 Not Found и нажимаем сохранить. Так же создаем второй параметр — ключ: unauthorized_page_header, значение: HTTP/1.0 401 Unauthorized


После этого зайдите в «Управление пакетами», найдите и установите дополнение Login.


Теперь создадим странички (по ссылкам код, который нужно вставить в контент ресурсов):


В коде на странице «Регистрация» в параметре activationResourceId указываем id ресурса «Подтверждение регистрации»


В коде страницы «Подтверждение регистрации» в трех местах указываем id ресурса «Личный кабинет»: в параметре errorPage, на 8 и на 11 строчках.


На странице авторизации указываем правильную ссылку на страницу восстановления пароля, а на странице личного кабинета — ссылки на редактирование и на смену пароля.


У всех этих ресурсов сразу уберите галочки «Использовать HTML редактор», чтобы наш код не обрабатывался установленным визуальным редактором.


Далее нужно создать группу пользователей, чтобы можно было дать им какие-либо преимущества. Заходим в раздел «Безопасность» → «Контроль доступа», нажимаем кнопку «Новая группа пользователей», в поле «Имя» пишем Users, отмечаем галочку «Создать параллельную группу ресурсов», «Политика бэкенда» указываем (без политики)


Затем идем в «Содержимое» → «Группы ресурсов» и перетаскиваем из правого дерева в группу «Users» следующие ресурсы:


  • Личный кабинет
    • Изменение пароля
    • Редактирование данных

Теперь если неавторизованный пользователь откроет одну из этих страниц, он увидит ошибку 404 — для него таких страниц не существует. Но нас такое поведение не устраивает. Мы хотим, чтобы при открытии страницы личного кабинета отображалась форма авторизации. Для этого идем в настройки системы и находим настройку unauthorized_page — Страница ошибки 403 «Доступ запрещен», и указываем в ней id страницы «Авторизация». У меня это — 3. Однако поведение все еще не изменится.

Просто анонимному пользователю MODX не хочет раскрывать информацию даже о том, что такой ресурс существует. Чтобы разрешить отображение ошибки 403, где это нужно, идем в «Безопасность» → «Контроль доступа», нажимаем правой кнопкой мыши на группе (аноним) и выбираем «Редактировать». Переходим на вкладку «Доступ к группам ресурсов», добавляем группу:


  • Группа — Users,
  • контекст — web,
  • минимальная роль — Member,
  • политика доступа — Load only

Теперь при входе в личный кабинет нужно будет сначала ввести логин (e-mail) и пароль.


Как видите, все довольно просто. Внешний вид форм можно менять с помощью CSS, а текст писем для активации пользователя или восстановления пароля можно отредактировать в соответствующих чанках в категории Login.



291 комментарий

  1. Михаил Лавронов 17 ноября 2013, 10:42(Комментарий был изменён) # +2
    Илья, не мог бы написать статью про закрытый раздел. Я неделю пытался у меня не получилось. Если есть опыт в таком, покажи пожалуйста как.
    1. Илья Уткин 17 ноября 2013, 14:47(Комментарий был изменён) # +1
      Сделай все, как здесь написано и у тех страниц, которые ты хочешь скрыть на вкладке «Группы ресурсов» поставь галочки напротив «Users» — тогда их смогут увидеть только зарегистрированные и авторизованные пользователи.
      1. Михаил Лавронов 17 ноября 2013, 15:58(Комментарий был изменён) # 0
        Я вот пытался через права сделать. но что то не получилось. Вот у Василия Наумкина хорошо сделано.
    2. Антон Букреев 21 января 2014, 12:28(Комментарий был изменён) # 0
      Хорошо, а как быть, если 2 личных кабинета?
      2 формы авторизации?
      1. Илья Уткин 21 января 2014, 12:33(Комментарий был изменён) # 0
        Сесть, продумать структуру, написать нужные сниппеты, плагины и чанки. Посмотреть, как это сделано на других сайтах, поспрашивать в сообществе, если не получается, нанять программиста, который сможет это сделать. Я бы, например, так и поступил.
      2. Rahim Egamov 09 марта 2014, 05:37(Комментарий был изменён) # 0
        Проблема при сохранение с Friendliy url.
        Пут до редактора: site.ru/account/profile
        Когда нажимаю сохранить переходит site.ru/account/profile/account/profile
        Без Friendliy url все работает без проблем.
        Версия Modx REVO 2.2.13
        Как решит эту проблему?
        1. Rahim Egamov 09 марта 2014, 05:55 # 0
          Все решил проблему!
          1. Mixa 23 января 2015, 09:29 # 0
            Решение не озвучите? Спасибо!
            1. Александр 15 июля 2016, 14:35 # 0
              Подскажите как решается данная проблема? Не могу сам догнать!
              1. Илья Уткин 15 июля 2016, 14:38 # 0
                В head надо указать
                <base href="[[++site_url]]" />
                1. Александр 15 июля 2016, 14:54 # 0
                  Указано. Так со всех страниц. И при регистрации сайт.ру/registration/registration/, и при авторизации сайт.ру/authorization/authorization/, а если нажимаешь Forgot your password? То получаешь сайт.ру/authorization/authorization/password-reset.html, хотя эта страница находится по адресу сайт.ру/authorization/password-reset.html
                  1. Илья Уткин 15 июля 2016, 14:58 # 0
                    Ну, тогда не знаю… попробуйте указывать в ссылках полный адрес — с доменом
                    1. Александр 15 июля 2016, 15:07(Комментарий был изменён) # 0
                      Это может быть из-за того, что сайт мультиязычный? Делал мультиязычность при помощи babel, контекстов и .htaccess
                      Доступ к ресурсам добавил для всех контекстов и Для каждого контекста (языка) делал свои файлы регистрации, авторизации и т.д. Так же Личный кабинет, изменение пароля и Редактирование тоже со всех контекстов перетащил в Группе ресурсов.

                      UPD Илья, подскажите, а [[!ConfirmRegister? &authenticate=`1` &errorPage=`45`]] в Подтверждении регистрации тут &errorPage=`45`должен id Личного кабинета стоять?
                    2. Геннадий 01 августа 2016, 18:13 # 0
                      Точно такая же ошибка, решение нашли?
                      1. stepan 26 марта 2021, 21:34 # 0
                        поправьте в чанке авторизации ссылки и адрес формы(action) тоже
                        поставьте слеш /
                        типа
                        вместо
                        <a href="[[~6]]">Забыли пароль?</a>
                        <a href="/[[~6]]">Забыли пароль?</a>
                2. Юлия 26 марта 2014, 10:43 # 0
                  Подскажите, пожалуйста, есть ли такой же урок на Эво?
                  1. Илья Уткин 26 марта 2014, 10:46 # 0
                    Не знаю… Я с Эво незнаком…
                    1. Юлия 26 марта 2014, 10:48 # 0
                      Только с Рево работаете?
                      1. Илья Уткин 26 марта 2014, 10:49 # 0
                        Ага
                        1. Юлия 26 марта 2014, 10:51 # 0
                          Жаль(
                          1. Илья Уткин 26 марта 2014, 10:52 # 0
                            Спросите у ребят с сайта modx.im — они с эво хорошо знакомы.
                  2. Юлия 26 марта 2014, 10:55 # 0
                    Спасибо! Я на том сайте искала. Мне бы уроки или какое то подробное описание по работе с webloginpe, регистрации/авторизации, созданию личного кабинета. А ничего подобного для Эво найти не могу.
                    1. Максим Рогальский 26 марта 2014, 11:39 # 0
                      Юлия, в EVO все делается так же.
                      Напишите mrogalsky@yandex.ru — скину примеры кода
                      1. Юлия 26 марта 2014, 13:00 # 0
                        Спасибо за предложение. Написала!
                    2. Сергей 20 апреля 2014, 19:38 # 0
                      Спасибо! Статья очень помогла
                      1. zfjoury 22 мая 2014, 00:36 # 0
                        Всем привет!
                        А у меня почему то функция разлогинивания перестала работать(

                        <noindex> [[!+modx.user.id:is=`0`:then=`  
                        <a href="[[~19]]"><span class="glyphicon glyphicon-lock"></span> Зарегистрироваться</a> / <a href="[[~21]]"><span class="glyphicon glyphicon-lock"></span> Войти</a>
                        	`:else=`
                                    <p>Здравствуйте, <a href="[[~23]]"><b>[[!+modx.user.username]]</b></a>! <a href="[[~23]]?service=logout">Выйти</a></p>
                                    `]]</noindex>
                        Что может быть?
                        1. Илья Уткин 22 мая 2014, 10:47 # 0
                          На странице 23 есть вызов сниппета Login? Он некешируемый? Дружественные URL включены?
                          1. zfjoury 22 мая 2014, 10:58 # 0
                            Вот код страницы 23
                            ЧПУ да, работают через translit
                            [[!Profile]]
                            <a href="[[~25]]" ><span class="glyphicon glyphicon-pencil"></span>
                             Редактировать</a>
                            <div class="form-horizontal well">
                            <div class="row-fluid">
                            <div class="span8 offset2">
                              <div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="fullname">Имя, фамилия</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p style="margin-top: 6px; font-weight: bold;">[[+fullname]]</p>
                                </div>
                              </div>
                              <div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="email">Email</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p>[[+email]]</p>
                                </div>
                              </div>
                              <div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="password">Пароль</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p><a href="[[~24]]">Изменить пароль</a></p>
                                </div>
                              </div>
                              [[+phone:notempty=`<div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="phone">Телефон</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p>[[+phone]]</p>
                                </div>
                              </div>`]]
                              [[+mobilephone:notempty=`<div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="mobilephone">Мобильный телефон</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p>[[+mobilephone]]</p>
                                </div>
                              </div>`]]
                              [[+country:notempty=`<div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="country">Страна</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p>[[+country:default=`Россия`]]</p>
                                </div>
                              </div>`]]
                              [[+city:notempty=`<div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="city">Город</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p>[[+city]]</p>
                                </div>
                              </div>`]]
                              [[+address:notempty=`<div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="address">Адрес</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p>[[+address]]</p>
                                </div>
                              </div>`]]
                              [[+website:notempty=`<div class="clearfix">
                                <label style="width: 170px;" class="control-label" for="website">Сайт</label>
                                <div class="input" style="margin-left: 180px;">
                                  <p>[[+website:notempty=`<a href="http://[[+website]]">[[+website]]</a>`]]</p>
                                </div>
                              </div>`]]
                            
                            </div>
                            </div>
                            </div>
                            1. Илья Уткин 22 мая 2014, 11:09 # 0
                              Поменяйте эту ссылку: [[~23]]?service=logout на эту: [[~21]]?service=logout
                              1. zfjoury 22 мая 2014, 11:40 # 0
                                Шик)))) Спасибо)
                                1. zfjoury 22 мая 2014, 11:42 # 0
                                  А кстати вот такой вопрос, например хочу сделать чтобы для каждого пользователя можно было создавать свои страницы — персональные, например расчёт оптовых поставок, разные прайсы и т.д.
                                  Т.е. для каждого вообще свою страницу, но никак не могу найти как это сделать, может у Вас есть решение или идея?
                                  1. Илья Уткин 22 мая 2014, 11:53 # 0
                                    Создавайте страницу и в авторе указывайте нужного пользователя. Потом в плагине проверяйте, кто является автором (поле created_by), и, если автором является админ или текущий пользователь, страницу показывайте, а если нет (страница принадлежит другому пользователю), перекидывайте на страницу с ошибкой.

                                    Ну и в выборках добавьте условие {«created_by»: [[!modx.user.id]]}
                                    1. zfjoury 22 мая 2014, 11:56(Комментарий был изменён) # 0
                                      Хм спасибо, а это хостинг не обрушит? Самый обычный shared хост.
                                      1. Илья Уткин 22 мая 2014, 12:17 # 0
                                        Используйте pdoResources вместо getResources, phpThumbOn вместо phpThumbOf и забудьте о нагрузке.
                          2. Алексей 27 мая 2014, 19:40 # 0
                            В разделе редактирование пароля
                            вопрос
                            1) выводит подсказки на англиском языке как поправить
                            2) пароль меняет а сообщение не выводит помогите решить хотелось бы как и редактирование данных
                            Спасибо за урок
                            1. Илья Уткин 28 мая 2014, 20:45 # 0
                              Насчет языка, смотрите в системных настройках, какой язык стоит. Или в настройках контекста. А насчет сообщения — нужно добавить параметр successMessage:
                              [[!ChangePassword?
                                 &submitVar=`change-password`
                                 &placeholderPrefix=`cp.`
                                 &validateOldPassword=`1`
                                 &validate=`nospam:blank`
                                 &successMessage=`Пароль изменен`
                              ]]
                              [[!+cp.successMessage]]
                              1. Жорж 12 мая 2015, 14:53(Комментарий был изменён) # 0
                                Чтобы заработала такая конструкция нужно добавить параметр
                                &reloadOnSuccess=`0`
                                И ещё Илья в коде Редактирование данных строка со скриптами должна стоять после вывода сообщения о перенаправлении, так как скрипт её не видит.
                                За уроки большое спасибо!
                                1. Илья Уткин 12 мая 2015, 15:04 # 0
                                  Да, действительно. Исправил. Спасибо)
                            2. Ольга 02 июня 2014, 12:55 # 0
                              Здравствуйте! Спасибо за отличный урок!
                              А как можно сделать, чтобы пользователь после подтверждения регистрации был сразу активен. Сейчас администратору приходится в админ-панели каждого пользователя активировать.
                              1. xo6a 12 марта 2015, 12:34 # 0
                                у снипета Register параметр activation (http://rtfm.modx.com/extras/revo/login/login.register)
                              2. Ирина 04 июня 2014, 06:32 # 0
                                Здравствуйте. Большое спасибо за урок — всё хорошо работает, но есть небольшой косяк.
                                Сделано всё по инструкции, но страница личного кабинета почему-то всё равно доступна для просмотра незарегистрированным пользователям. Изменение пароля и редактирование данных успешно перенаправляет на страницу 403, а личный кабинет открывается для анонимов, хотя тоже обозначен для просмотра только зарегистрированным пользователям. В чём может быть проблема? Может, в вызове [[!Profile]] что-то надо дополнительно настроить?
                                1. Илья Уткин 04 июня 2014, 08:36 # 0
                                  За определение доступов к странице отвечает не сниппет, а сам MODX. Скорее всего, просто эта страница не находится в нужной группе ресурсов. Посмотрите на вкладке «Группы ресурсов» — стоит ли галочка напротив нужной группы?
                                  1. Ирина 04 июня 2014, 09:34 # 0
                                    Страница в нужной группе ресурсов, галочка стоит. Я сразу egjvzyekf, что профиль обозначен только для просмотра зарегистрированным пользователям.
                                    Пока решила проблему, добавив сниппет [[isLoggedIn]] перед вызовом [[!Profile]], но это не выход же…
                                    1. Марина 17 июля 2014, 23:20 # 0
                                      У меня та же проблема была. Страница в группе ресурсов, галочка стоит. Дело не в вызове [[!Profile]], т.к. у меня эта страница вообще пустая (позже планирую выводить заказы). Проблему решила изменением псевдонима. Похоже дело в псевдониме personal. Как только изменила на другой, сразу все заработало.
                                      1. Илья Уткин 18 июля 2014, 07:04(Комментарий был изменён) # 0
                                        Проблема, скорее всего, была не в адресе страницы, а в кеше. Нужно нажимать
                                        Безопасность → Перезагрузить права доступа, а после этого очистить кеш сайта и браузера. Изменив адрес страницы вы заставили MODX создать для нее уже новый кеш, с новыми параметрами. Так что такой вариант решения тоже имеет место быть)
                                        1. Марина 18 июля 2014, 20:31 # 0
                                          Ясно. Спасибо ))
                                2. Ольга 06 июня 2014, 06:38 # 0
                                  Здравствуйте! Спасибо за отличный урок!
                                  А как можно сделать, чтобы пользователь после подтверждения регистрации был сразу активен. Сейчас администратору приходится в админ-панели каждого пользователя активировать.
                                  1. Илья Уткин 06 июня 2014, 06:43 # +1
                                    По идее, если вы использовали код из урока, то после перехода по ссылке из письма, пользователь должен быть активированным. Его активирует сниппет ConfirmRegister
                                    1. Ольга 11 июня 2014, 10:10 # 0
                                      Да, там была моя ошибка. А можно как-то сделать пользователя не активным после регистрации, чтобы администратор сам его активировал?
                                  2. Alexander 07 июня 2014, 11:41 # 0
                                    Добрый день, подскажите как сделать что бы определённый сниппет был доступен только зарегистрированным пользователям?
                                    1. Илья Уткин 07 июня 2014, 11:48 # +1
                                      Вот тут задавали такой вопрос: modx.pro/help/276
                                      1. Alexander 07 июня 2014, 12:04 # 0
                                        Спасибо, буду копать!
                                    2. Ольга 11 июня 2014, 10:42 # 0
                                      А можно как-то сделать пользователя не активным после регистрации, чтобы администратор сам его активировал?
                                      1. Denis A. 03 июля 2014, 13:53 # 0
                                        Спасибо большое за описание.
                                        Не приходит письмо подтверждения, в чем может быть проблема?
                                        Пользователь создается, но неактивный.
                                        Заранее спасибо
                                        1. Илья Уткин 03 июля 2014, 13:56 # 0
                                          Либо на сервере не работает отправка почты, либо ваш провайдер почты считает письмо спамом, либо в параметре email_sender указана та же почта, что и у пользователя при регистрации (просто попробуйте другую почту).
                                          1. Denis A. 04 июля 2014, 07:10(Комментарий был изменён) # 0
                                            Большое спасибо!
                                            Действительно не работала почта, после настройки все работает отлично! Спасибо!
                                            Подскажите пожалуйста, как сделать, чтобы пользователь автоматом попадал в определенную группу пользователей?
                                            1. Denis A. 04 июля 2014, 10:38 # +2
                                              Отвечу сам себе ))
                                              Нашел параметр, при вызове Register
                                              &usergroups=`Users`
                                              Поменял на имя своей группы…
                                        2. Denis A. 03 июля 2014, 14:01 # 0
                                          Понял, спасибо.
                                          1. Добавление капчи к форме регистрации 15 августа 2014, 06:23 # 0
                                            Добрый день! Подскажите, пожалуйста, как добавить на форму регистрации капчу?
                                            1. Илья Уткин 19 августа 2014, 06:38 # 0
                                              Установите дополнение, например, Captcha и используйте его как прехук. Вот здесь еще есть какая-то информация: FormIt + Captcha
                                            2. zfjoury 15 августа 2014, 06:50 # 0
                                              А вот вопрос:
                                              Подскажите, как сделать, суть в том, чтобы пользователям из груп 0 (аноним),2,3,4 и оптовым выводить разные цены
                                              Стоит SHopkeeper и MODX последних версий
                                              Вот код страницы:
                                              <script type="text/javascript">
                                              $(document).ready(function() {
                                              $("a.gallery").fancybox();
                                              });
                                              </script>
                                              <div class="shk-item">
                                              
                                              
                                              
                                              [­[!+modx.user.id:memberof:is=`0,1,3,4`:then=`
                                              <form action="[­[~[­[*id]]? &scheme=`abs`]]" method="post">
                                              <fieldset>
                                              <input type="hidden" name="shk-id" value="[­[*id]]" />
                                              <input type="hidden" name="shk-name" value="[­[*pagetitle]]" />
                                              <input type="hidden" name="shk-count" value="1" />
                                              <div class="col-sm-5">
                                              <a title="[­[*pagetitle]]" rel='vm-additional-images' class="gallery" href="[­[*image]]"><img class="shk-image" src="[­[*image]]" width="70%" alt="[­[*pagetitle]]"/></a>
                                              <ul class="gallerys">[­[Gallery? &album=`[­[*dopfoto?]]` ]]
                                              </ul>
                                              </div>
                                              <div class="col-sm-7">
                                              <h1>[­[*longtitle:default=`[­[*pagetitle]]`]]</h1>
                                              [­[!starRating? &starId=`[­[*id]]` &canVote=`1`]]
                                              <hr>
                                              <ul class="list-unstyled">
                                              <li>Артикул: [­[*art?]]</li>
                                              <li>Тип: [­[*product_type?]]</li>
                                              <li>Цвет: [­[*color:replace=`[­[+id]]==[­[*id]]`]]</li>
                                              <li><strong>Выбрать размер:</strong></li>
                                              </ul>
                                              <div id="sizeboxes" class="pp_sizeboxes">
                                              [­[*size:replace=`[­[+id]]==[­[*id]]`]]
                                              </div>
                                              <a href="[­[~23]]"><span class="glyphicon glyphicon-th-list"></span> Таблица размеров</a>
                                              <div class="clearfix"></div>
                                              <img src="/content/images/common-all.jpg"/>
                                              <hr>
                                              <div class="priceitems">
                                              Цена: <span class="shk-price ">[­[*price]]</span> Руб.
                                              </div>
                                              <div><button type="submit" class="shksubmit"><span class="glyphicon glyphicon-shopping-cart"></span> Добавить в корзину</button></div>
                                              <hr>
                                              </div>
                                              </fieldset>
                                              </form>
                                              
                                              `:else=`
                                              
                                              <form action="[­[~[­[*id]]? &scheme=`abs`]]" method="post">
                                              <fieldset>
                                              <input type="hidden" name="shk-id" value="[­[*id]]__price_opt" />
                                              <input type="hidden" name="shk-name" value="[­[*pagetitle]]" />
                                              <input type="hidden" name="shk-count" value="1" />
                                              <div class="col-sm-5">
                                              <a title="[­[*pagetitle]]" rel='vm-additional-images' class="gallery" href="[­[*image]]"><img class="shk-image" src="[­[*image]]" width="70%" alt="[­[*pagetitle]]"/></a>
                                              <ul class="gallerys">[­[Gallery? &album=`[­[*dopfoto?]]` ]]
                                              </ul>
                                              </div>
                                              <div class="col-sm-7">
                                              <h1>[­[*longtitle:default=`[­[*pagetitle]]`]]</h1>
                                              [­[!starRating? &starId=`[­[*id]]` &canVote=`1`]]
                                              <hr>
                                              <ul class="list-unstyled">
                                              <li>Артикул: [­[*art?]]</li>
                                              <li>Тип: [­[*product_type?]]</li>
                                              <li>Цвет: [­[*color:replace=`[­[+id]]==[­[*id]]`]]</li>
                                              <li><strong>Выбрать размер:</strong></li>
                                              </ul>
                                              <div id="sizeboxes" class="pp_sizeboxes">
                                              [­[*size:replace=`[­[+id]]==[­[*id]]`]]
                                              </div>
                                              <a href="[­[~23]]"><span class="glyphicon glyphicon-th-list"></span> Таблица размеров</a>
                                              <div class="clearfix"></div>
                                              <img src="/content/images/common-all.jpg"/>
                                              <hr>
                                              <div class="priceitems">
                                              Цена: <span class="shk-price ">[­[*price_opt]]</span> Руб.
                                              </div>
                                              <div><button type="submit" class="shksubmit"><span class="glyphicon glyphicon-shopping-cart"></span> Добавить в корзину</button></div>
                                              <hr>
                                              </div>
                                              </fieldset>
                                              </form>
                                              `]]
                                              
                                              
                                              [­[*content]]
                                              </div>
                                              1. zfjoury 15 августа 2014, 07:02(Комментарий был изменён) # 0
                                                Сделал, так работает:
                                                <script type="text/javascript">
                                                $(document).ready(function() {
                                                    $("a.gallery").fancybox();
                                                });
                                                </script>
                                                <div class="shk-item">
                                                 [[!+modx.user.id:memberof=`Подтвержденные оптовые покупатели`:then=`  
                                                <form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
                                                   <fieldset>
                                                      <input type="hidden" name="shk-id" value="[[*id]]__price_opt" />
                                                        <input type="hidden" name="shk-name" value="[[*pagetitle]]" />
                                                        <input type="hidden" name="shk-count" value="1" />
                                                <div class="col-sm-5">
                                                <a title="[[*pagetitle]]" rel='vm-additional-images' class="gallery" href="[[*image]]"><img class="shk-image" src="[[*image]]" width="70%" alt="[[*pagetitle]]"/></a>
                                                			<ul class="gallerys">[[Gallery? &album=`[[*dopfoto?]]` ]]
                                                			</ul>
                                                </div>
                                                 <div class="col-sm-7">
                                                <h1>[[*longtitle:default=`[[*pagetitle]]`]]</h1>
                                                [[!starRating? &starId=`[[*id]]` &canVote=`1`]]
                                                <hr>
                                                <ul class="list-unstyled">
                                                <li>Артикул: [[*art?]]</li>
                                                  <li>Тип: [[*product_type?]]</li>
                                                  <li>Цвет: [[*color:replace=`[[+id]]==[[*id]]`]]</li>
                                                  <li><strong>Выбрать размер:</strong></li>
                                                </ul>
                                                <div id="sizeboxes" class="pp_sizeboxes">
                                                [[*size:replace=`[[+id]]==[[*id]]`]]   
                                                </div>
                                                <a href="[[~23]]"><span class="glyphicon glyphicon-th-list"></span> Таблица размеров</a>
                                                <div class="clearfix"></div>
                                                <img src="/content/images/common-all.jpg"/>
                                                <hr>
                                                <div class="priceitems">
                                                Цена: <span class="shk-price opt">[[*price_opt]]</span> Руб.
                                                </div>
                                                <div><button type="submit" class="shksubmit"><span class="glyphicon glyphicon-shopping-cart"></span> Добавить в корзину</button></div>
                                                <hr>
                                                 </div>
                                                   </fieldset>
                                                  </form> 
                                                  
                                                `:else=`
                                                <form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
                                                   <fieldset>
                                                      <input type="hidden" name="shk-id" value="[[*id]]" />
                                                        <input type="hidden" name="shk-name" value="[[*pagetitle]]" />
                                                        <input type="hidden" name="shk-count" value="1" />
                                                <div class="col-sm-5">
                                                <a title="[[*pagetitle]]" rel='vm-additional-images' class="gallery" href="[[*image]]"><img class="shk-image" src="[[*image]]" width="70%" alt="[[*pagetitle]]"/></a>
                                                			<ul class="gallerys">[[Gallery? &album=`[[*dopfoto?]]` ]]
                                                			</ul>
                                                </div>
                                                 <div class="col-sm-7">
                                                <h1>[[*longtitle:default=`[[*pagetitle]]`]]</h1>
                                                [[!starRating? &starId=`[[*id]]` &canVote=`1`]]
                                                <hr>
                                                <ul class="list-unstyled">
                                                <li>Артикул: [[*art?]]</li>
                                                  <li>Тип: [[*product_type?]]</li>
                                                  <li>Цвет: [[*color:replace=`[[+id]]==[[*id]]`]]</li>
                                                  <li><strong>Выбрать размер:</strong></li>
                                                </ul>
                                                <div id="sizeboxes" class="pp_sizeboxes">
                                                [[*size:replace=`[[+id]]==[[*id]]`]]   
                                                </div>
                                                <a href="[[~23]]"><span class="glyphicon glyphicon-th-list"></span> Таблица размеров</a>
                                                <div class="clearfix"></div>
                                                <img src="/content/images/common-all.jpg"/>
                                                <hr>
                                                <div class="priceitems">
                                                Цена: <span class="shk-price ">[[*price]]</span> Руб.
                                                </div>
                                                <div><button type="submit" class="shksubmit"><span class="glyphicon glyphicon-shopping-cart"></span> Добавить в корзину</button></div>
                                                <hr>
                                                 </div>
                                                   </fieldset>
                                                  </form>
                                                
                                                `]]
                                                  
                                                  
                                                  [[*content]]
                                                 </div>
                                                
                                              2. Jonston 30 августа 2014, 12:10 # 0
                                                Если ли доки по дополнению? Как регулировать параметр «запомнить меня»?
                                                1. Илья Уткин 30 августа 2014, 15:54 # 0
                                                  Конечно, есть: http://rtfm.modx.com/extras/revo/login
                                                2. Сергей 28 сентября 2014, 17:55 # 0
                                                  Привет! Подскажи плиз, где можно задать айди ресурса куда можно перекинуть авторизованного пользователя?
                                                  1. Илья Уткин 29 сентября 2014, 07:02 # 0
                                                    Вот страничка с документацией: http://rtfm.modx.com/extras/revo/login/login.login. Нужно учиться самому находить ответы хотя бы на простые вопросы. Тебе нужен 10 по счету параметр из документации. Если что, Google Translate в помощь.
                                                  2. Любовь Закиева 02 октября 2014, 17:50 # 0
                                                    Добрый вечер. Ссылки с кодом страниц из статьи не открываются. Это временно или можно где-то в другом месте посмотреть?
                                                    Спасибо!
                                                    1. Любовь Закиева 02 октября 2014, 18:24 # 0
                                                      Заработало!)
                                                      1. Илья Уткин 02 октября 2014, 20:03 # 0
                                                    2. Михаил 22 октября 2014, 20:54(Комментарий был изменён) # 0
                                                      Это всё хорошо конечно. Я просмотрел много материаллов по модх… И ни где нет примера реализации загрузки аватара пользователями через личный кабинет… В основном это делают через сервис граватар, что крайне не удобно…
                                                      Как же всё таки сделать загрузку аватара пользователями с фронтенда???
                                                      1. Илья Уткин 23 октября 2014, 06:31(Комментарий был изменён) # 0
                                                        А я скажу, почему нигде нет. Дело в том, что загрузка аватара не такая уж простая задача, как кажется на первый взгляд.

                                                        Во-первых, надо дать пользователю возможность загружать файлы на сайт. Это уже проблематично:

                                                        • Пользователь может начать грузить картинки по 10 и более Мб — так память сервера быстро засрется;
                                                        • Пользователь может загрузить вместо картинки файл с фильмом, например. Это тоже надо учесть;
                                                        • Пользователь может загрузить файл php и взломать сервер. От этого нужна защита;

                                                        Во-вторых, картинку надо позволить изменять, а, значит, старые надо как-то удалять. Тут тоже нужен свой алгоритм.

                                                        В-третьих, все эти загрузки/удаления нужно как-то записывать в базу данных и привязывать к пользователю.

                                                        Вот поэтому в уроках нигде про аватар и не пишут. Это продвинутый уровень.
                                                      2. Анатолий 19 ноября 2014, 20:25 # 0
                                                        Большое спасибо Илья! Очень полезная статья!
                                                        1. Роман 14 января 2015, 10:04 # 0
                                                          Илья, день добрый!
                                                          Подскажите — как заставить UpdateProfile делать апдейт выбранного пользователя (например по id или email)?
                                                          Например я зашел под пользователем root
                                                          Хочу изменить данные пользователя testUser
                                                          Вызываю UpdateProfile так
                                                          [[!UpdateProfile? &user=`testUser`]]
                                                          Данные в форму вносятся от юзера testUser. Но при изменении данных — все они сохраняются как данные юзера root.
                                                          Что я делаю не так, или как это можно исправить?

                                                          Заранее благодарен
                                                          1. Илья Уткин 14 января 2015, 18:47 # 0
                                                            Не знаю, почему у вас не работает. У меня получилось:

                                                            http://modtask.ru/
                                                            Логин: root@root.ru
                                                            Пароль: rootroot

                                                            В личном кабинете есть ссылка на редактирование своего профиля и на редактирование чужого профиля.
                                                          2. Роман 15 января 2015, 07:10 # 0
                                                            Вот жеж… Илья, а можно Вас попросить скинуть код со страницы с id 10? (редактирование чужого профиля)

                                                            Буду признателен
                                                            1. Илья Уткин 15 января 2015, 07:22 # 0
                                                              [[!UpdateProfile? &user=`testUser@testUser.ru`]]
                                                              У меня там логином является e-mail. Так что у вас все тоже должно было получиться.
                                                            2. Pavel 19 января 2015, 20:43 # 0
                                                              Добрый день. Спасибо за статью.
                                                              Все что здесь написано — все работает.
                                                              У меня есть вопрос. Допустим у меня в шапке на главной странице(да и на всех других страницах) есть две ссылки Вход и Регистрация.
                                                              Как сделать так чтобы после авторизации вместо Вход было написано Выход, а вместо Регистрация — имя пользователя? Дайте хотя-бы подсказку. Спасибо.
                                                              1. Илья Уткин 20 января 2015, 07:31 # 0
                                                                Используйте сниппет Login с параметрами loginTpl и loguotTpl:
                                                                [[!Login?
                                                                  &loginTpl=`chunkWithRegLink`
                                                                  &logoutTpl=`chunkWithUsername`
                                                                ]]
                                                                Как-то так.
                                                                1. Pavel 20 января 2015, 21:05 # 0
                                                                  Благодарю вас! Вроде все работает.
                                                                  Есть еще вопрос, если не сложно, подскажите, пожалуйста.
                                                                  Хочу в этой форме регистрации поменять «Имя и фамилия» на Логин, и чтобы авторизация на сайте происходила именно по логину, а не по email. Я так понимаю надо изменять код или дополнять его. Заранее спасибо!
                                                                  1. Pavel 20 января 2015, 23:21(Комментарий был изменён) # 0
                                                                    Сам разобрался)
                                                                    1. Mike 07 марта 2015, 20:49 # 0
                                                                      Pavel, напишите пжлт решения
                                                                      1. Mike 09 марта 2015, 17:35 # 0
                                                                        Тоже уже неактуально, сделал, что меняется Вход -> Name, Регистрация -> Выход с помощью снипета Personalize rtfm.modx.com/extras/revo/login/login.tutorials/login.request-membership
                                                                2. Pavel 21 января 2015, 13:45 # 0
                                                                  Здравствуйте)
                                                                  Вопрос наверно не по теме.
                                                                  Я делаю вход и регистрацию на сайте по вашему уроку, но с использованием модального окна. Можете посмотреть -> ссылка.
                                                                  Авторизация работает.
                                                                  Проблема в следующем. Жмем «Регистрация», открывается модальное окно с формой(id=«modal_form2» с вашим кодом(страница Регистрация)). Если заполнить форму регистрации правильно, то по идее появляется сообщение, что «Нужно нужно подтверждение по email», а если форму заполнить с ошибками, то должно появится сообщение, что что-то заполнено неправильно. Только вот после нажатия на кнопку Зарегистрироваться, модальное окно закрывается), а хотелось бы чтобы оно не закрывалось, а видно было сообщение об ошибке или об успешной регистрации.(и только после этого можно было бы самостоятельно закрыть модальное окно)
                                                                  Вот мой код JS
                                                                  <script type="text/javascript">
                                                                  $(document).ready(function() { // вся магия после загрузки страницы
                                                                        $('a#go').click( function(event){ // ловим клик по ссылки с id="go"
                                                                  	  event.preventDefault(); // выключаем стандартную роль элемента
                                                                  	  $('#overlay').fadeIn(100, // сначала плавно показываем темную подложку
                                                                  	  function(){ // после выполнения предъидущей анимации
                                                                  	  $('#modal_form') 
                                                                  		.css('display', 'block') // убираем у модального окна display: none;
                                                                  		.animate({opacity: 1}, 200); // плавно прибавляем прозрачность одновременно со съезжанием вниз
                                                                  		});
                                                                  	});
                                                                  
                                                                  $('a#go2').click( function(event){ // ловим клик по ссылки с id="go2"
                                                                  		event.preventDefault(); // выключаем стандартную роль элемента
                                                                  		$('#overlay').fadeIn(100, // сначала плавно показываем темную подложку
                                                                  		 	function(){ // после выполнения предъидущей анимации
                                                                  			$('#modal_form2') 
                                                                  				.css('display', 'block') // убираем у модального окна display: none;
                                                                  				.animate({opacity: 1}, 200); // плавно прибавляем прозрачность одновременно со съезжанием вниз
                                                                  		});
                                                                  	});
                                                                  
                                                                  
                                                                  $('a#go2').click(function () {
                                                                  	$('#modal_form').hide();
                                                                          $('#modal_form2') 
                                                                  	   .css('display', 'block') 
                                                                  	   .animate({opacity: 1}, 200);
                                                                  	});
                                                                  
                                                                  	/* Закрытие модального окна, тут делаем то же самое но в обратном порядке */
                                                                  $('#overlay').click( function(){ // ловим клик по крестику или подложке
                                                                  	$('#modal_form, #modal_form2')
                                                                  		.animate({opacity: 0}, 200,  // плавно меняем прозрачность на 0 и одновременно двигаем окно вверх
                                                                  	function(){ // после анимации
                                                                  		$(this).css('display', 'none'); // делаем ему display: none;
                                                                  		$('#overlay').fadeOut(400); // скрываем подложку
                                                                  				});
                                                                  	});
                                                                  });
                                                                  </script>
                                                                  

                                                                  Если поможете, буду очень признателен!
                                                                  1. Илья Уткин 21 января 2015, 14:17 # 0
                                                                    Вам надо дополнительно сделать отдельную страницу с регистрацией уже без мобального окна, и в теге form прописать в action не [[*uri]], а адрес той дополнительной страницы. Тогда при ошибке будет происходить открытие той страницы с заполненными полями и сообщением.
                                                                    1. Pavel 21 января 2015, 15:29(Комментарий был изменён) # 0
                                                                      Спасибо. Так работает. Похоже, чтобы все происходило в том же модальном окне, надо писать много кода) Надо изучать JS)

                                                                      Появился вопрос по предыдущему моему посту))
                                                                      В чанке chunkWithUsername есть строчка
                                                                      <a href="[[~1? &service=logout]]" title="Logout">Выход</a>
                                                                      Когда жмем Выход, то происходит перенаправление на ресурс id 1
                                                                      Как сделать чтобы при выходе пользователь оставался на той же странице? Спасибо.
                                                                      1. Pavel 21 января 2015, 16:28 # 0
                                                                        На это поменял и заработало как мне надо
                                                                        <a href="[[+logoutUrl]]" title="Logout">Выход</a>
                                                                  2. Pavel 21 января 2015, 22:25 # 0
                                                                    Подскажите как изменить код страницы «Редактирование данных», чтобы после сохранения сразу шло перенаправление в личный кабинет без таймера и выезжающего блока(Вы будете перенаправлены в личный кабинет через 2 секунд)? Спасибо.
                                                                    1. Артур Павелч 23 января 2015, 00:03 # 0
                                                                      Можно и проще сделать
                                                                      [[!+modx.user.id:isloggedin:is=`1`:then=`[[profile]]`:else=`<script language="JavaScript"> 
                                                                        window.location.href = "http://site.com/login"
                                                                      </script>`]]
                                                                      1. Mike 09 марта 2015, 09:54 # 0
                                                                        Илья, поясните пжлт данную строчку на странице Регистрация:
                                                                        <input type="text" name="fullname" value="[[!+reg.fullname:Jevix]]" />
                                                                        Нужно устанавливать Jevix? Как он используется в данном случае?
                                                                        1. Илья Уткин 10 марта 2015, 07:49 # 0
                                                                          Не обязательно. Просто если пользователь введет кавычку в имени, форма не «сломается» — Jevix заменит кавычки на «елочки»
                                                                        2. Андрей Иванов 25 марта 2015, 07:22(Комментарий был изменён) # 0
                                                                          Добрый день!
                                                                          Сделал, вроде как, по инструкции, выполнены все пункты.
                                                                          Юзер, при регистрации, создается, в нужную группу — входит.
                                                                          А с чем может быть связано, когда при подтверждении регистрации (копирование ссылки вида
                                                                          http://voltnapravo.com.dev/registracziya/podtverzhdenie-registraczii.html?lp=NHd4c2tkNnQ%253D&lu=cm9vdEBzaGFycGVlbmtvLnJ1
                                                                          из письма в адресную строку браузера), «кидает» на страницу «Авторизация»?

                                                                          С уважением.
                                                                          1. Илья Уткин 25 марта 2015, 07:40 # 0
                                                                            Потому что вы уже авторизованы в админке, скорее всего.
                                                                            1. Андрей Иванов 25 марта 2015, 07:47 # 0
                                                                              Авторизован. Правда, подтверждение я выполняю через анонимный вход.
                                                                              Попробую удалить пользователя, выйти из админки и выполнить всю процедуру заново.
                                                                              1. Андрей Иванов 25 марта 2015, 07:57 # 0
                                                                                Пользователя удалил, из админки вышел.
                                                                                Регистрация. При подтверждении происходит то же самое.
                                                                                Не подскажете, в каком еще направлении можно было бы поискать?
                                                                                1. Илья Уткин 25 марта 2015, 08:12 # 0
                                                                                  Не знаю… Может, вы случайно добавили этот ресурс в группу Users
                                                                                  1. Андрей Иванов 25 марта 2015, 08:17 # 0
                                                                                    если бы… :-)
                                                                                    1. Андрей Иванов 25 марта 2015, 16:10 # 0
                                                                                      Итак, это не работает на локальном сервере. На боевом — работает.
                                                                              2. Rulya 31 марта 2015, 10:37 # 0
                                                                                Здравствуйте!
                                                                                Все настроил, вывел в сайдбар ссылки на Регистрацию, Авторизацию и Личный кабинет но почему то анонимным пользователям не открывается ни одна страница, сразу переходит на страницу 404. Что может быть? razbormob.ru/
                                                                                1. Илья Уткин 31 марта 2015, 10:40(Комментарий был изменён) # 0
                                                                                  В группу «Users» нужно добавлять только эти ресурсы:
                                                                                  • Личный кабинет
                                                                                  • Изменение пароля
                                                                                  • Редактирование данных
                                                                                  Остальные должны быть без всякой группы.

                                                                                  Кроме того:
                                                                                  идем в «Безопасность» → «Контроль доступа», нажимаем правой кнопкой мыши на группе "(аноним)" и выбираем «Редактировать». Переходим на вкладку «Доступ к группам ресурсов», добавляем группу:

                                                                                  Группа — Users,
                                                                                  контекст — web,
                                                                                  минимальная роль — Member,
                                                                                  политика доступа — Load only
                                                                                  1. Rulya 31 марта 2015, 10:58 # 0
                                                                                    Уже целый день ломаю себе голову но не могу решить эту проблему. Уже несколько раз переделывал заново но не выходит.
                                                                                2. Rulya 31 марта 2015, 10:54 # +1
                                                                                  Все так и стоит но не хочет работать.
                                                                                  1. Илья Уткин 31 марта 2015, 11:01 # -1
                                                                                    Значит дело не в этом. Постепенно из шаблона удаляйте блоки, пока ошибка не исчезнет, чтобы найти, в каком месте сайт «ломается»
                                                                                    1. Rulya 31 марта 2015, 11:08 # 0
                                                                                      Для авторизованого пользователя все открывается и Регистрация, Авторизация и Личный кабинет, а вот анонимным не открывается.
                                                                                      1. Rulya 31 марта 2015, 11:41 # 0
                                                                                        Илья, может поможете мне, я вам дам доступ в админку. Естественно небесплатно. Спасибо.
                                                                                        1. Илья Уткин 31 марта 2015, 11:44 # 0
                                                                                          У меня сейчас, к сожалению времени нет. Напишите моему коллеге в Skype: ssleleko — Сергей
                                                                                    2. Елена 27 апреля 2015, 10:13 # 0
                                                                                      Здравствуйте. У меня появилась одна проблема. На сайте две формы авторизации: одна в шапке сайта во всплывающем окне (соответственно она отображается на каждой странице) и другая на конкретной странице. Проблема в том, что если авторизоваться с той конкретной страницы, то после авторизации вместо отображения приветственного сообщения, происходит редирект на главную. Если авторизоваться через форму в шапке, то все нормально работает. Путем нескольких экспериментов я пришла к выводу, что происходит какой-то конфликт между этими двумя формами авторизации. Подскажите пожалуйста, в чем может быть дело и каким образом можно решить эту проблему?
                                                                                      1. Илья Уткин 28 апреля 2015, 07:14 # 0
                                                                                        Для разрешения конфликтов нескольких вызовов у Login есть параметры actionKey и loginKey. Надо разбираться с документацией: https://rtfm.modx.com/extras/revo/login/login.login
                                                                                        1. Елена 28 апреля 2015, 11:42 # 0
                                                                                          Спасибо, конечно, за ссылку на английском языке, я ее читала в переводе, но она мне мало что дает. Для второго вызова Login я включила параметр actionKey с значением, совпадающем у параметра name скрытого поля формы авторизации, то есть
                                                                                          вот это поле
                                                                                          <input class="loginLoginValue" type="hidden" name="action" value="login"/>
                                                                                          и вот вызов сниппета
                                                                                          [[!Login? &loginTpl=`embedded` &errTpl=`lgnErrTpl` &actionKey=`action`]]
                                                                                          , но хоть ты тресни, а при попытке авторизоваться через эту форму, меня выкидывает на главную. Залогинивание происходит если с главной вернуться. Вызов первого логина работает корректно. Не подскажите, в чем еще может быть проблема?
                                                                                      2. Илья 18 июня 2015, 12:59(Комментарий был изменён) # 0
                                                                                        А как сделать, что бы Восстановление пароля, Регистрация, Подтверждение регистрации было доступно только анонимам? И автоматически перенаправлять на какую-нибудь страницу после успешной авторизации?
                                                                                        1. Илья 18 июня 2015, 13:12(Комментарий был изменён) # 0
                                                                                          И автоматически перенаправлять на какую-нибудь страницу после успешной авторизации?
                                                                                          Нашел в настройке вызова сниппета.

                                                                                          Сразу возник другой вопрос: как возвратить юзера на страницу, с которой он зашел на страницу авторизации?
                                                                                          1. Илья Уткин 19 июня 2015, 08:32 # 0
                                                                                            Для этого есть параметр &loginResourceId
                                                                                            1. Илья 19 июня 2015, 08:48 # 0
                                                                                              Сейчас у меня стоит &loginResourceId=`1`
                                                                                              Т.е. Если я просматриваю новость, захожу на страницу авторизации, авторизовываюсь, меня перекидывает на главную, а что бы на страницу с той самой новостью? указывать [[*id]]?

                                                                                              p.s.
                                                                                              А как сделать, что бы страницы Восстановление пароля, Регистрация, Подтверждение регистрации было доступно только анонимам?
                                                                                              1. Илья Уткин 19 июня 2015, 08:54 # 0
                                                                                                1. Да, [[*id]]

                                                                                                2. Создайте сниппет, например, такой
                                                                                                <?php
                                                                                                if ($modx->user->id != 0) {
                                                                                                  $url = $modx->makeUrl($to);
                                                                                                  $modx->sendRedirect($url);
                                                                                                }
                                                                                                И вызывайте его на нужных страницах:
                                                                                                [[!redirectForUsers? &to=`1`]]
                                                                                                1. Илья 19 июня 2015, 08:56(Комментарий был изменён) # 0
                                                                                                  Спасибо, разобрался
                                                                                                  1. Илья Уткин 19 июня 2015, 09:01 # 0
                                                                                                    Вот если такой сниппет, как я выше написал, вызвать на страницах Восстановление пароля, Регистрация, Подтверждение регистрации, то они станут доступны только анонимам
                                                                                                    1. Илья 19 июня 2015, 09:05 # 0
                                                                                                      [[!Login? &loginResourceId=`[[*id]]`]]
                                                                                                      Не происходит редиректа, т.к. [[*id]], как я понимаю указывает текущий id документа, а он как раз есть страницы авторизации. =(
                                                                                                      1. Илья Уткин 19 июня 2015, 09:07 # 0
                                                                                                        Ну да, значит, надо как-то передать на эту страницу ID нужного ресурса. Сниппет же не обладает магическими способностями — ему помочь надо, указать, разъяснить — он все поймет.
                                                                                                        1. Илья 19 июня 2015, 09:39(Комментарий был изменён) # 0
                                                                                                          Спасибо, решил так:
                                                                                                          [[!Login? &redirectToPrior=`1`]]
                                                                                        2. Дмитрий 23 июля 2015, 15:22(Комментарий был изменён) # 0
                                                                                          Добрый день. У меня не выводится вызов [[!Login]] если я не в админке (то есть как обычный пользователь)
                                                                                          А так же форма «восстановление пароля» (просто пустая страница)
                                                                                          Не выдаются ошибки типа «Это поле требуется. Это поле должно быть по крайней мере 6 символов в длинну.» на странице регистрации
                                                                                          и так далее… что может быть?

                                                                                          P.S. всё отображается в случае если я в админке. Иначе просто пустые страницы или отсутствует вывод чанков (снипетов)
                                                                                          1. Дмитрий 24 июля 2015, 12:36(Комментарий был изменён) # 0
                                                                                            Решилось переустановкой «Login»
                                                                                            Именно полным удалением и новой установкой, а не через кнопку «переустановить»
                                                                                          2. Anton 15 августа 2015, 11:45 # 0
                                                                                            Спасибо за инструкцию.
                                                                                            Почему при попытке зайти в личный кабинет пользователя перекидывает на страницу авторизации хостинга (godaddy)?
                                                                                            В чем может быть дело?
                                                                                            1. Anton 15 августа 2015, 12:47 # 0
                                                                                              Вот это дааа! Псевдоним страницы был controlpanel, поменял на другое и перестало адресовать на страницу авторизации COntrol Panel (CP).
                                                                                            2. fil nester 23 августа 2015, 16:39(Комментарий был изменён) # 0
                                                                                              Извините, а как написать css для всех страниц из этого поста ну или хотя бы для страницы авторизации, просто я пытался написать, но стиль не меняется?
                                                                                              1. Илья Уткин 24 августа 2015, 07:53 # 0
                                                                                                Эм… Стили для этих страниц пишутся так же, как и для всех остальных. Тут даже MODX не при чем.
                                                                                              2. m57 06 сентября 2015, 10:11(Комментарий был изменён) # 0
                                                                                                Илья, спасибо за статью!

                                                                                                Ошибка в мануале:

                                                                                                Доступ к группам ресурсов, добавляем группу:

                                                                                                Группа — Users,
                                                                                                контекст — web,
                                                                                                минимальная роль — Member,
                                                                                                политика доступа — Load only

                                                                                                политика доступа должна быть Resource
                                                                                                Пруф
                                                                                                1. Илья Уткин 07 сентября 2015, 07:32 # 0
                                                                                                  Эм… Да, ошибочка есть, только не в политике доступа. Группа должна быть (аноним). В статье подправил.
                                                                                                  1. m57 07 сентября 2015, 18:45 # 0
                                                                                                    К Анониму невозможно добавить группу ресурсов «Аноним», только Users

                                                                                                    1. Илья Уткин 08 сентября 2015, 07:22 # 0
                                                                                                      Тьфу, я сам запутался уже))

                                                                                                      Значит, никакой ошибки и не было. Для пользователей (аноним) должен быть доступ к группе ресурсов Users с политикой доступа Load Only.

                                                                                                      Если поставить политику доступа Resource, то анонимные пользователи будут иметь права редактирования ресурсов. А нам надо лишь, чтобы аноним мог «загрузить» ресурс. Тогда получится ошибка доступа, и будет выведена форма авторизации, а не страница 404 ошибки.
                                                                                                2. m57 09 сентября 2015, 10:33 # 0
                                                                                                  Илья, странный у меня вопрос.

                                                                                                  Почему после замены
                                                                                                  <input type="submit" name="registerbtn" value="Register" class="btn btn-primary">
                                                                                                  на
                                                                                                  <button type="submit" name="registerbtn" class="btn primary">Зарегистрироваться</button>
                                                                                                  не работает отправка формы?
                                                                                                  1. Илья Уткин 09 сентября 2015, 10:37 # 0
                                                                                                    А в чем выражается «не работает»? Кнопка нажимается и ничего вообще не происходит?
                                                                                                    1. m57 09 сентября 2015, 10:49 # 0
                                                                                                      При нажатии на пустой форме нет даже обработки ошибок, не говоря уже о форме с заполненными полями

                                                                                                      Чанк

                                                                                                      <form action="[[~[[*id]]]]" method="post" role="form">
                                                                                                        <input type="hidden" name="nospam" value="[[!+reg.nospam]]" />
                                                                                                      
                                                                                                        <div class="form-group">
                                                                                                          <label for="username">Логин</label>
                                                                                                          <input class="form-control" type="text" name="username" value="[[!+reg.username]]">
                                                                                                          <span class="help-block text-error">[[!+reg.error.username]]</span>
                                                                                                        </div>
                                                                                                      
                                                                                                        <div class="form-group">
                                                                                                          <label for="email">Email</label>
                                                                                                          <input class="form-control" type="text" name="email" value="[[!+reg.email]]">
                                                                                                          <span class="help-block text-error">[[!+reg.error.email]]</span>
                                                                                                        </div>
                                                                                                      
                                                                                                        <div class="form-group">
                                                                                                          <label for="password">Пароль</label>
                                                                                                          <input class="form-control" type="password" name="password" value="[[!+reg.password]]">
                                                                                                          <span class="help-block text-error">[[!+reg.error.password]]</span>
                                                                                                        </div>
                                                                                                      
                                                                                                        <div class="form-group">
                                                                                                          <label for="password_confirm">Пароль еще раз</label>
                                                                                                          <input class="form-control" type="password" name="password_confirm" value="[[!+reg.password_confirm]]">
                                                                                                          <span class="help-block text-error">[[!+reg.error.password_confirm]]</span>
                                                                                                        </div>
                                                                                                      
                                                                                                        <div class="form-group">
                                                                                                          <label for="fullname">Имя и фамилия</label>
                                                                                                          <input class="form-control" type="text" name="fullname" value="[[!+reg.fullname]]">
                                                                                                          <span class="help-block text-error">[[!+reg.error.fullname]]</span>
                                                                                                        </div>
                                                                                                      
                                                                                                        <div class="clearfix">
                                                                                                          <input type="submit" name="regvar" value="Зарегистрироваться" class="btn btn-primary">
                                                                                                          <!--<button type="submit" name="regvar" class="btn btn-primary">Зарегистрироваться</button>-->
                                                                                                        </div>
                                                                                                      
                                                                                                      </form>
                                                                                                      
                                                                                                      Вызов

                                                                                                      [[!Register?
                                                                                                          &submitVar=`regvar`
                                                                                                          &activation=`1`
                                                                                                          &activationEmailSubject=`Подтверждение регистрации`
                                                                                                          &activationResourceId=`7`
                                                                                                          &successMsg=`Вам нужно подтвердить свою регистрацию.`
                                                                                                          &usergroups=`Users`
                                                                                                          &validate=`nospam:blank,
                                                                                                            password:required:minLength=^8^,
                                                                                                            password_confirm:password_confirm=^password^,
                                                                                                            fullname:required,
                                                                                                            username:required,
                                                                                                            email:required:email`
                                                                                                          &usernameField=`email`
                                                                                                          &placeholderPrefix=`reg.`
                                                                                                      ]]
                                                                                                      
                                                                                                      
                                                                                                      [[!+error.message:eq=``:then=`
                                                                                                       
                                                                                                       [[!$lgnRegisterForm?]]
                                                                                                      
                                                                                                      `:else=`[[!+error.message]]`]]
                                                                                                      
                                                                                                      1. Илья Уткин 09 сентября 2015, 10:51 # 0
                                                                                                        Страница перезагружается, когда на кнопку нажимаешь?
                                                                                                        1. Илья Уткин 09 сентября 2015, 10:52 # 0
                                                                                                          Понял. У кнопки должен быть value
                                                                                                          <button type="submit" name="regvar" value="1" class="btn btn-primary">Зарегистрироваться</button>
                                                                                                          1. m57 09 сентября 2015, 10:55 # 0
                                                                                                            У кнопки должен быть value
                                                                                                            Спасибо!

                                                                                                            А ларчик просто открывался...
                                                                                                    2. Кирилл 01 октября 2015, 15:24 # 0
                                                                                                      Иль такой вопрос при подтверждении регистрации пишет что доступ заблокирован обратитесь к админу потом я в ручную в управлении пользователем меняю на активный, как бы это на автомат поставить???
                                                                                                      1. Илья Уткин 01 октября 2015, 19:23 # 0
                                                                                                        Статус пользователя поменяется на «Активный» автоматически, когда пользователь перейдет по ссылке из письма с подтверждением регистрации.
                                                                                                      2. Кирилл 01 октября 2015, 15:30 # 0
                                                                                                        еще вопрос после авторизации меняется страница на ( выход и забыли пароль) а должна по факту на личный кабинет не возьму в толк
                                                                                                        1. Илья Уткин 01 октября 2015, 19:24 # 0
                                                                                                          В вызове Login нужно добавить параметр &loginResourceId=`4`, в котором указать ID страницы личного кабинета.
                                                                                                        2. Кирилл 15 октября 2015, 13:54 # 0
                                                                                                          Илья простите ради бога я новичок, по последнему вопросу, добавить параметр &loginResourceId=`4`, (вызов Login -это что имеется ввиду!), еще раз прошу прощения!
                                                                                                          1. Илья Уткин 16 октября 2015, 14:29 # 0
                                                                                                            [[!Login? &loginResourceId=`4`]]
                                                                                                            <p><a href="[[~6]]">Забыли пароль?</a></p>
                                                                                                          2. Кирилл 17 октября 2015, 15:40 # 0
                                                                                                            Илья, огромное спасибо!
                                                                                                            1. Алексей 17 октября 2015, 15:48 # 0
                                                                                                              Илья, как бы при регистрации добавить еще номер телефона???
                                                                                                              1. Илья Уткин 19 октября 2015, 14:01 # 0
                                                                                                                Надо просто в форме регистрации добавить это поле:
                                                                                                                <div class="clearfix">
                                                                                                                    <label for="mobilephone">Телефон</label>
                                                                                                                    <div class="input">
                                                                                                                        <input type="text" name="mobilephone" value="[[!+reg.mobilephone:Jevix]]" />
                                                                                                                        <span class="help-block text-error">
                                                                                                                            [[!+reg.error.mobilephone]]
                                                                                                                        </span>
                                                                                                                    </div>
                                                                                                                </div>
                                                                                                              2. Алексей 17 октября 2015, 15:50 # 0
                                                                                                                В теле личного кабинета эти строки прописаны но не активны???

                                                                                                                1. Кирилл 24 октября 2015, 05:32 # 0
                                                                                                                  Илья, спасибо Вам за статью и подробное описание, все прекрасно работает, вот только смотрю многие пишут: можно ли активировать пользователя в ручную а не автоматически, а у меня обратная проблема после регистрации приходит и письмо и подтверждение человеку, но я после захожу в безопасность-управление пользователями и активирую аккаунт вручную, к сожалению автоматически этого не происходит, подскажите с чем это может быть связано???
                                                                                                                  1. Илья Уткин 24 октября 2015, 10:47 # 0
                                                                                                                    Пользователь активируется не когда приходит письмо, а когда пользователь перейдет по ссылке из письма. Если все сделано правильно, пользователь должен активироваться.
                                                                                                                  2. Кирилл 24 октября 2015, 05:59 # 0
                                                                                                                    И еще вопрос как бы сделать так чтоб личный кабинет появлялся только для авторизованных пользователей а не болтался с пустыми строками
                                                                                                                    1. Илья Уткин 24 октября 2015, 10:47 # 0
                                                                                                                      Надо страницу личного кабинета добавить в группу ресурсов Users
                                                                                                                    2. Анатолий 27 октября 2015, 18:04(Комментарий был изменён) # 0
                                                                                                                      Илья!
                                                                                                                      Если можно, бога ради, этот пункт чуть подробнее, у меня не перетаскиваются:
                                                                                                                      Затем идем в «Безопасность» → «Группы ресурсов» и перетаскиваем из правого дерева в группу «Users» следующие ресурсы:
                                                                                                                      • Личный кабинет
                                                                                                                      • Изменение пароля
                                                                                                                      • Редактирование данных
                                                                                                                      Все остальное работает безукоризенно

                                                                                                                      Версия Modx-2.3.5-pl
                                                                                                                      Заранее признателен.

                                                                                                                      Все расписано, просто экстра.

                                                                                                                      1. Илья Уткин 28 октября 2015, 12:21 # 0
                                                                                                                        В новых версиях MODX эта страничка находится в «Содержимое» → «Группы ресурсов»
                                                                                                                        1. Анатолий 03 ноября 2015, 16:53 # 0
                                                                                                                          Если быть точным
                                                                                                                          В новых версиях MODX эта страничка находится в «Сайт» → «Группы ресурсов»
                                                                                                                          Илья, Спасибо большое!
                                                                                                                      2. Виталий 24 ноября 2015, 06:54 # 0
                                                                                                                        Доброго времени суток. У меня такая проблема, что залогиненый пользователь не может редактировать свой профиль, т.е. захожу на странцу редактирования или просмотра профиля, но вижу форму выхода и ссылку восстановления пароля.
                                                                                                                        У меня еще стоят HybridAuth и Tickets, которые я настраивал почти наугад, вроде работает. А тут решил сделать еще и c Login'ом не пойму как это сращивается.
                                                                                                                        В общем пользователь может только войти или выйти, но не редактировать профиль (работает как надо только под админом).
                                                                                                                        Я думаю, что это групповые и политические настройки неверные.

                                                                                                                        У меня есть два основных вида пользователей: одни могут писать посты и оставлять комменты (Writers), а другие могут только оставлять комменты (Users); ну Админ и Аноним, конечно же присутсвуют.

                                                                                                                        Группа Writers (которые могут создавать посты и комментить)
                                                                                                                        доступ к контекстам:
                                                                                                                        web — TicketManager — TicketAdmin
                                                                                                                        mgr — TicketManager — TicketAdmin
                                                                                                                        mgr — TicketManager — TicketUserPolicy
                                                                                                                        доступ к группам ресурсов:
                                                                                                                        как в уроке Users-Member-LoadOnly

                                                                                                                        Группа Users (которые могут только комментить)
                                                                                                                        доступ к контекстам:
                                                                                                                        web — Member — TicketUserPolicy
                                                                                                                        доступ к группам ресурсов:
                                                                                                                        как в уроке Users-Member-LoadOnly

                                                                                                                        Аноним
                                                                                                                        доступ к группам ресурсов:
                                                                                                                        как в уроке Users-Member-LoadOnly

                                                                                                                        Автор HybridAuth, я думаю, скажет, что можно купить Office, но мне не нужен его функционал, да и опыт был бы ценный.
                                                                                                                        1. Илья Уткин 25 ноября 2015, 06:23 # 0
                                                                                                                          У пользователей из групп Writers и Users доступ к группе должен быть другим — не Load only, а Load, List and View, вроде
                                                                                                                          1. Виталий 25 ноября 2015, 23:06 # 0
                                                                                                                            Спасибо, Илья. Действительно, так работает.
                                                                                                                        2. Инга 27 ноября 2015, 07:40 # 0
                                                                                                                          Добрый день!
                                                                                                                          Когда пользователь переходит по ссылке из почту, чтобы подтвердить регистрацию, вылетает такая ошибка

                                                                                                                          Fatal error: Call to protected method xPDOObject::_setRaw() from context 'LoginConfirmRegisterController' in /home/worldski/public_html/core/components/login/controllers/web/ConfirmRegister.php on line 58
                                                                                                                          Fatal error: Undefined class constant 'LOG_LEVEL_ERROR' in /home/worldski/public_html/core/model/modx/error/moderrorhandler.class.php on line 111

                                                                                                                          Раньше такого не было, пока не обновила пакет Login.
                                                                                                                          1. Илья Уткин 30 ноября 2015, 13:13 # 0
                                                                                                                            Не знаю, к сожалению, не сталкивался с таким…
                                                                                                                            1. Штиф Васлер 03 декабря 2015, 12:24 # 0
                                                                                                                              Ну как Инга, разобрались с ошибкой? У меня сейчас точно такая же, не могу пока понять в чем дело
                                                                                                                            2. man 30 ноября 2015, 12:51 # 0
                                                                                                                              Возникла проблема с подтверждением регистрации на сайте.
                                                                                                                              При подключении [[!ConfirmRegister? &authenticate=`26` &errorPage=`26`]] (26 это ид личного кабинет) отображается главная страница, при этом пользователь при переходе по ссылке из письма не может получить статус активированного пользователя… с чем это может быть связанно?
                                                                                                                              1. Илья Уткин 30 ноября 2015, 13:12 # 0
                                                                                                                                А страница, где этот код вызывается, случайно не в группе ресурсов Users?
                                                                                                                                1. man 30 ноября 2015, 13:28 # 0
                                                                                                                                  нет…
                                                                                                                                  з.ы. первый раз промахнулся, пардонте))
                                                                                                                                  1. man 30 ноября 2015, 13:39 # 0
                                                                                                                                    Добавил в группу ресурсов, почистил кеш, ничего не изменилось!
                                                                                                                                    Сейчас потуплю еще пол часика, если найду ответ отпишусь!
                                                                                                                                    1. man 30 ноября 2015, 16:09 # 0
                                                                                                                                      В общем решения не нашел, ребят если кто знает ответ ткните носом, в долгу не останусь!
                                                                                                                                  2. man 30 ноября 2015, 13:28 # 0
                                                                                                                                    нет…
                                                                                                                                    1. Штиф Васлер 03 декабря 2015, 06:36(Комментарий был изменён) # 0
                                                                                                                                      Здравствуйте

                                                                                                                                      Возникает проблема при переходе по ссылке из письма завершения регистрации, выдает ошибку 500, и регистрация не подтверждается. А потом, если попробовать войти под данными пользователя, которыми регистрировался, пишет «пользователь заблокирован». Что это может быть?
                                                                                                                                      1. Илья Уткин 03 декабря 2015, 07:21 # 0
                                                                                                                                        Не знаю… Попробуйте использовать пустой шаблон для страницы подтверждения регистрации. Если и при пустом шаблоне будет ошибка, значит какая-то проблема со сниппетом. Если нет, значит надо искать ошибку в другом месте шаблона.
                                                                                                                                      2. Штиф Васлер 03 декабря 2015, 07:33 # 0
                                                                                                                                        Сделал пустой шаблон, теперь ошибка не возникает, да, но при попытке авторизоваться все равно выдает «аккаунт был заблокирован...». Что ж такое… Может в каких нибудь правах доступа дело?
                                                                                                                                        1. Илья Уткин 03 декабря 2015, 07:36 # 0
                                                                                                                                          Не знаю, к сожалению, сложно сказать. Много чего может влиять…
                                                                                                                                          1. Штиф Васлер 03 декабря 2015, 07:37 # 0
                                                                                                                                            ох… беда… а подскажите пожалуйста, где вообще посмотреть базу зарегистрированвшихся пользователей, блокировать их и пр?
                                                                                                                                            1. Илья Уткин 03 декабря 2015, 07:39 # 0
                                                                                                                                              В верхнем меню: УправлениеПользователи
                                                                                                                                        2. Штиф Васлер 03 декабря 2015, 07:42 # 0
                                                                                                                                          Спасибо. Посмотрел, в поле «заблокирован» у них стояло «нет». Странно, а при авторизации выдавал якобы заблокирован. А при переходе по ссылке должно переправлять сразу в ЛК, или на форму авторизации?
                                                                                                                                          1. Штиф Васлер 03 декабря 2015, 07:48 # 0
                                                                                                                                            о, понял. не происходит автоматическая активация пользователя. активировал его вручную, получилось авторизоваться. Что отвечает за автоактивацию?
                                                                                                                                            1. Илья Уткин 03 декабря 2015, 07:52 # 0
                                                                                                                                              Cниппет ConfirmRegister
                                                                                                                                            2. Штиф Васлер 03 декабря 2015, 08:37 # 0
                                                                                                                                              блин, ну никак не хочет переходить из письма по ссылке нормально. выдает ошибку 500 и все тут!
                                                                                                                                              1. Штиф Васлер 03 декабря 2015, 08:59(Комментарий был изменён) # 0
                                                                                                                                                Илья, ну смотрите, если шаблон «подтверждение регистрации» оставить пустым, то есть без вызова [[!ConfirmRegister? &authenticate=`1` &errorPage=`41`]], то переход по ссылке получается. А если с вызовом ConfirmRegister, то ошибка 500. Никак не могу уловить связь… хотя кажется решение плавает на поверхности…
                                                                                                                                                1. Илья Уткин 03 декабря 2015, 09:04 # 0
                                                                                                                                                  Напишите в файле index.php в самом начале следующую строчку:
                                                                                                                                                  @ini_set('display_error', 1);
                                                                                                                                                  и попробуйте с вызовом сниппета на пустом шаблоне сделать переход. Тогда должен появиться и текст ошибки. По нему можно будет что-то понять
                                                                                                                                                  1. Штиф Васлер 03 декабря 2015, 09:23 # 0
                                                                                                                                                    А где должен происходить вывод? Что то не получается никак. А в логах ошибок modx много раз повторяется следующая ошибка:

                                                                                                                                                    [2015-12-03 08:38:19] (ERROR @ /connectors/index.php) Could not get table class for class: modAccess
                                                                                                                                                    [2015-12-03 08:38:19] (ERROR @ /connectors/index.php) Could not get table name for class: modAccess
                                                                                                                                                    [2015-12-03 08:38:19] (ERROR @ /connectors/index.php) Error 42000 executing statement: 
                                                                                                                                                    Array
                                                                                                                                                    (
                                                                                                                                                        [0] => 42000
                                                                                                                                                        [1] => 1064
                                                                                                                                                        [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS `modAccess` WHERE `modAccess`.`principal` = 12' at line 1
                                                                                                                                                    )
                                                                                                                                                    1. Илья Уткин 03 декабря 2015, 09:25 # 0
                                                                                                                                                      Странная ошибка. Попробуйте переустановить MODX. Прям распаковать поверх сайта и запустить установку.
                                                                                                                                                2. Штиф Васлер 03 декабря 2015, 09:28 # 0
                                                                                                                                                  Ну, я делал это изначально, при переносе с локала. Сейчас как то опасаюсь опять это проводить, вдруг что нибудь слетит. Не хотелось бы на угад проводить какие то действия…
                                                                                                                                                  1. Илья Уткин 03 декабря 2015, 09:35 # 0
                                                                                                                                                    Ну в ошибке сообщается, что MODX не может найти в базе данных таблицу для modAccess. Возможно, при переносе не вся база перенеслась?
                                                                                                                                                  2. Штиф Васлер 03 декабря 2015, 09:39 # 0
                                                                                                                                                    Не думаю что так, потому что на локале тоже выдается не проходит регистрация, а выдается ошибка, правда другая:
                                                                                                                                                    Fatal error: Call to protected method xPDOObject::_setRaw() from context 'LoginConfirmRegisterController' in Z:\home\testsite\www\core\components\login\controllers\web\ConfirmRegister.php on line 58
                                                                                                                                                    1. Илья Уткин 03 декабря 2015, 09:51 # 0
                                                                                                                                                      Не знаю… честно не сталкивался с таким… У меня идеи кончились =))
                                                                                                                                                      1. man 09 декабря 2015, 13:15 # 0
                                                                                                                                                        Долго тупил над этой траблой. Проблема кроется в версии Login`a а именно в 1.9.1, скачайте версию 1.9.0 и все должно заработь
                                                                                                                                                        1. Штиф Васлер 14 декабря 2015, 07:49 # 0
                                                                                                                                                          Спасибо, можно попробовать и так, но я заменил три файла модуля на исправленные. Написал автору модуля, объяснил проблему, он дал ссылки на файлы с исправленными ошибками, которые он же допустил, и все заработало. Вот эти файлы:

                                                                                                                                                          github.com/gadgetto/Login/blob/develop/core/components/login/controllers/web/ConfirmRegister.php

                                                                                                                                                          github.com/gadgetto/Login/blob/develop/core/components/login/model/login/login.class.php

                                                                                                                                                          github.com/gadgetto/Login/blob/develop/core/components/login/docs/changelog.txt
                                                                                                                                                          1. Андрей 14 декабря 2015, 13:47 # 0
                                                                                                                                                            Спасибо за наводку. Тоже тут бился головой об стену, все думал, почему же не работает. То ошибку получал про _setRaw, то вообще при подтверждении регистрации меня на 404-ую страницу бросало.
                                                                                                                                                            К сожалению патч этих файлов не помог.
                                                                                                                                                            Но вот откат на версию login 1.9.0 действительно все проблемы решил.

                                                                                                                                                            Еще раз спасибо за информацию!

                                                                                                                                                            Андрей.
                                                                                                                                                      2. Штиф Васлер 03 декабря 2015, 09:59 # 0
                                                                                                                                                        Если погуглить по запросу ошибки
                                                                                                                                                        (ERROR @ /connectors/index.php) Could not get table class for class: modAccess
                                                                                                                                                        выдает некоторые варианты, но большинство на английском, изза чего не очень ясны инструкции…
                                                                                                                                                        1. Андрей 14 декабря 2015, 13:49 # 0
                                                                                                                                                          А про эту ошибку splittingred пишет, что, да, мол, известный баг, но он вроде ничему не мешает :)
                                                                                                                                                        2. Штиф Васлер 03 декабря 2015, 11:00 # 0
                                                                                                                                                          Ну пипец. Встречается такая ошибка у людей, что со ссылки выкидывает на ошибку, и никто не может подсказать почему такое происходит. Почему у кого то норм у кого то эта ересь. Бесит.

                                                                                                                                                          ConfirmRegister? что то не может сделать или к чему то получить доступ. Полюбому. Только изза чего и к чему.
                                                                                                                                                          1. Штиф Васлер 03 декабря 2015, 20:00 # 0
                                                                                                                                                            В общем голова уже треснула, проблема нереальная. Скажите, как сделать что бы пользователь по умолчанию был активирован? Если при переходе по ссылке это никаким образом не получается и невозможно и проще гору свернуть похоже чем эту ошибку разобрать.
                                                                                                                                                            1. Илья Уткин 04 декабря 2015, 06:55 # 0
                                                                                                                                                              У сниппета Register надо поставить параметр &activation=`0`
                                                                                                                                                              1. Штиф Васлер 04 декабря 2015, 10:19 # 0
                                                                                                                                                                ок, а как сделать что бы он после регистрации редиректил на страницу авторизации?
                                                                                                                                                                1. Илья Уткин 04 декабря 2015, 10:25 # 0
                                                                                                                                                                  &submittedResourceId=`18`

                                                                                                                                                                  Вообще, вот посмотрите все параметры сниппета. Может, найдете другое решение своей проблемы. Сниппет-то очень мощный и в статье не все возможности описаны.
                                                                                                                                                            2. Штиф Васлер 04 декабря 2015, 10:34 # 0
                                                                                                                                                              Спасибо Илья. Это работает. А на счет этой сумасшедшей проблемы, не знаю, пробовал и переустанавливать модуль, и права вроде все дал. Ничего. Написать бы разработчику, попытаюсь, может быть он подскажет. Потому что говорю, у людей такая проблема возникает, даже у вас тут, в комментах выше, только речь там о локале, но проблема эта же, у меня на локале выдает такую же ошибку, описанную выше человеком. так что, если вдруг удастся решить, обязательно отпишусь
                                                                                                                                                              1. Штиф Васлер 04 декабря 2015, 10:52(Комментарий был изменён) # 0
                                                                                                                                                                да блин, а почему после автоизации не кидает в личный кабинет а остается на этой же странице авторизации, только вместо полей для ввода данных появляется кнопка «выход». а в самом ЛК, если перейти по ссылке непосредственно из адмики, кнопка выход отсутствует.
                                                                                                                                                                1. Илья Уткин 04 декабря 2015, 11:07 # 0
                                                                                                                                                                  Ну вставляйте id страницы личного кабинета тогда, а не страницы авторизации
                                                                                                                                                                  1. Штиф Васлер 04 декабря 2015, 11:18 # 0
                                                                                                                                                                    а почему кнопка «выход » отделилась от кабинета и разлогиниться вообще не возможно?
                                                                                                                                                                2. Штиф Васлер 04 декабря 2015, 11:26 # 0
                                                                                                                                                                  Илья, вы вообще на какой версии этот урок проводили и как давно?
                                                                                                                                                                  1. Илья Уткин 04 декабря 2015, 11:27(Комментарий был изменён) # 0
                                                                                                                                                                    Очень давно — еще когда MODX был ярко-зелёненький))

                                                                                                                                                                    Вот же, дата стоит: 16 ноября 2013, 21:01
                                                                                                                                                                    1. Штиф Васлер 04 декабря 2015, 11:29 # 0
                                                                                                                                                                      ну я думал что на более свежих версиях тоже пересоздавали, во имя актуализации) вдруг уже что то не совместимо и не работает…
                                                                                                                                                                  2. Штиф Васлер 04 декабря 2015, 11:28 # 0
                                                                                                                                                                    и еще вопрос в догонку, как сделать что бы у залогиненного пользователя вместо ссылки «авторизоваься» появлялось его имя?
                                                                                                                                                                    1. Илья Уткин 04 декабря 2015, 11:28 # 0
                                                                                                                                                                    2. Штиф Васлер 04 декабря 2015, 11:37(Комментарий был изменён) # 0
                                                                                                                                                                      Кстати еще, что думаете о WebLogin и WebSignUp? Может их лучше использовать?
                                                                                                                                                                      А то с этим стандартным логином у меня уже крыша едет потихоньку))
                                                                                                                                                                      1. Илья Уткин 04 декабря 2015, 12:10 # 0
                                                                                                                                                                        Проще уж тогда Office купить — с ним вообще красота)
                                                                                                                                                                      2. Штиф Васлер 04 декабря 2015, 13:42 # 0
                                                                                                                                                                        Какой Office и почему купить?) WebLogin платен?
                                                                                                                                                                        1. Илья Уткин 04 декабря 2015, 13:51 # 0
                                                                                                                                                                          https://modstore.pro/packages/users/office — делает все — и регистрацию, и авторизацию, и настраивать его практически не надо.
                                                                                                                                                                          1. Илья Уткин 04 декабря 2015, 13:52 # 0
                                                                                                                                                                            И, кстати, WebLogin — он же для MODX Evolution
                                                                                                                                                                          2. Штиф Васлер 04 декабря 2015, 14:27 # 0
                                                                                                                                                                            Для evo… ясно, а я и не заметил. Ну, никакой office покупать я конечно не буду) Я сторонник сам все прорабатывать и конструировать, поэтому влюблен в modx. Но всему же есть пределы )) Когда возникает какая то ужасная неведомая ошибка… начинаешь ненавидеть все на свете:) выходит, для Revo существует только Login со всеми его сниппетами, и все?
                                                                                                                                                                            1. Штиф Васлер 05 декабря 2015, 05:01 # 0
                                                                                                                                                                              Илья, все таки неправильная авторизация так и осталась. То есть после ввода логина и пароля пользователь не попадает в личный кабинет, а остается на странице авторизации, и видит только кнопку «выход». Почему так происходит? Помогите пожалуйста добить уже…
                                                                                                                                                                              1. Илья Уткин 05 декабря 2015, 09:12 # 0
                                                                                                                                                                                Я уже и не знаю, в какую сторону смотреть. Я с Login разбирался один раз — в 2013 году. После чего я понял, что тут всё очень непросто и надо как-то записать порядок действий.

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

                                                                                                                                                                                Так что, я вам, к сожалению, помочь не смогу.
                                                                                                                                                                              2. Штиф Васлер 05 декабря 2015, 13:18 # 0
                                                                                                                                                                                Хорошо, а подсказать, как вывести кнопку logout в любое место, можете?
                                                                                                                                                                                Конструкция из документации не работает
                                                                                                                                                                                <a href="[[~21? &service=logout]]" title="Logout">Logout</a>
                                                                                                                                                                                1. Штиф Васлер 05 декабря 2015, 14:18 # 0
                                                                                                                                                                                  Вобщем сам уже разобрался. id в ссылке должен принадлежать странице которая содержит форму входа.
                                                                                                                                                                                2. Штиф Васлер 05 декабря 2015, 14:42 # 0
                                                                                                                                                                                  Другой вопрос: как вывести имя залогиненного пользователя?))
                                                                                                                                                                                  1. Штиф Васлер 05 декабря 2015, 14:49 # 0
                                                                                                                                                                                    [[+modx.user.id:userinfo=`fullname`]]
                                                                                                                                                                                  2. Штиф Васлер 14 декабря 2015, 07:51 # 0
                                                                                                                                                                                    Что такое, теперь другая проблема, новый зарегистрированный пользователь не попадает в нужную группу пользователей. Что за… все работало, сейчас на тебе, перестал…
                                                                                                                                                                                    1. Анатолий 28 декабря 2015, 08:03 # 0
                                                                                                                                                                                      Илья, спасибо за урок.
                                                                                                                                                                                      Все работает прекрасно.
                                                                                                                                                                                      xn--80abladnapzd0axo.xn--p1ai/
                                                                                                                                                                                      Подскажите как сделать уведомление администраторам на два емейла о регистрации нового пользователя.
                                                                                                                                                                                      Буду очень признателен
                                                                                                                                                                                      Анатолий.
                                                                                                                                                                                      1. Илья Уткин 09 января 2016, 14:08 # 0
                                                                                                                                                                                        Нужно написать свой хук и вызывать его в сниппете Register
                                                                                                                                                                                        1. Анатолий 09 января 2016, 14:16 # 0
                                                                                                                                                                                          Код примерный не подскажете??
                                                                                                                                                                                          1. Илья Уткин 09 января 2016, 14:20 # 0
                                                                                                                                                                                            Ну вот код для отправки письма, можно использовать его: ilyaut.ru/reposts/sending-mail-through-modmail/
                                                                                                                                                                                      2. Штиф Васлер 17 февраля 2016, 14:17 # 0
                                                                                                                                                                                        Вот тебе раз. Обнаружил, что при регистрации письма приходят только на Яндекс, ни на gmail, ни рамблер ни майл они не приходят. В чем может быть причина?
                                                                                                                                                                                        1. Илья Уткин 17 февраля 2016, 14:19 # 0
                                                                                                                                                                                          В том, что gmail, mail, rambler считают его спамом, наверное… Попробуй настроить SMTP на сайте
                                                                                                                                                                                          1. Штиф Васлер 17 февраля 2016, 14:29 # 0
                                                                                                                                                                                            я пытался, письма вообще перестают приходить)) непонятно…
                                                                                                                                                                                            1. Сергей 29 февраля 2016, 22:20 # 0
                                                                                                                                                                                              Случайно почта домена не привязана к яндексу?
                                                                                                                                                                                              1. amsterdam 03 марта 2016, 05:59 # 0
                                                                                                                                                                                                не-а. а что, с этим бывают проблемы?
                                                                                                                                                                                                1. Сергей 03 марта 2016, 06:06 # 0
                                                                                                                                                                                                  Да, столкнулся с такой же проблемой у клиента — с сайта заказы уходили только на яндекс. Выяснилось что почта передана в яндекс, и там видимо не донастроена. Проблему решить не удалось, так как клиент морозился.
                                                                                                                                                                                        2. Любовь 26 февраля 2016, 07:51 # 0
                                                                                                                                                                                          Добрый день, Илья.
                                                                                                                                                                                          Можете подсказать как сделать чтобы копия письма о регистрации пользователя приходила на почту администратору сайта?.. Настроила только сервис уведомлений, но там только почта, а хотелось бы все письмо видеть.
                                                                                                                                                                                          1. Илья Уткин 26 февраля 2016, 08:05 # 0
                                                                                                                                                                                            У сниппета Register есть параметр postHooks, в котором можно указать название сниппета. В этом сниппете будут доступны все параметры пользователя. То же самое письмо вряд ли отправится, а вот составить точно такое же для менеджера вполне можно. Вот, как в MODX можно самостоятельно отправить письмо: https://ilyaut.ru/reposts/sending-mail-through-modmail/
                                                                                                                                                                                            1. Любовь 26 февраля 2016, 09:04 # 0
                                                                                                                                                                                              Спасибо огромное! Попробую сделать.
                                                                                                                                                                                          2. Станислав Спиркин 02 марта 2016, 15:24 # 0
                                                                                                                                                                                            Здравствуйте Илья, logout не работает, дал ссылку Logout на 21 ресурсе есть подключенный снимет login, так же пробовал помещать снипет в чанк, и показывать его на каждой странице, он работает если дать пользователю неограниченные права, иначе никак. URl модифицируется на главную страничку перекидывает, но не разлогинивает :( Помогите
                                                                                                                                                                                            1. Илья Уткин 04 марта 2016, 08:43 # 0
                                                                                                                                                                                              Проверять авторизацию нужно в другом браузере. Просто авторизация в менеджере сайта влияет на авторизацию во фронтенде.
                                                                                                                                                                                            2. Алексей 31 марта 2016, 06:00 # 0
                                                                                                                                                                                              Здравствуйте. Делаю всё по Вашему уроку. Установил 'Login', Создал все нужные разделы, изменил 'id' на нужные. Но… ни одна из кнопок при регистрации или авторизации не работает. Ничего никуда не отправляется не переходит. Стилизацию и расположение кода не менял.

                                                                                                                                                                                              <div class="loginForm">
                                                                                                                                                                                                  <div class="loginMessage"></div>
                                                                                                                                                                                                  <div class="loginLogin">
                                                                                                                                                                                                      <form class="loginLoginForm" action="login/" method="post">
                                                                                                                                                                                                          <fieldset class="loginLoginFieldset">
                                                                                                                                                                                                              <legend class="loginLegend">Вход</legend>
                                                                                                                                                                                                              <label class="loginUsernameLabel">Имя пользователя
                                                                                                                                                                                                                  <input class="loginUsername" type="text" name="username" />
                                                                                                                                                                                                              </label>
                                                                                                                                                                                                              
                                                                                                                                                                                                              <label class="loginPasswordLabel">Пароль
                                                                                                                                                                                                                  <input class="loginPassword" type="password" name="password" />
                                                                                                                                                                                                              </label>
                                                                                                                                                                                                              <input class="returnUrl" type="hidden" name="returnUrl" value="/login" />
                                                                                                                                                                                              
                                                                                                                                                                                                              
                                                                                                                                                                                                              
                                                                                                                                                                                                              <input class="loginLoginValue" type="hidden" name="service" value="login" />
                                                                                                                                                                                                              <span class="loginLoginButton"><input type="submit" name="Login" value="Вход" /></span>
                                                                                                                                                                                                          </fieldset>
                                                                                                                                                                                                      </form>
                                                                                                                                                                                                  </div>
                                                                                                                                                                                              </div>
                                                                                                                                                                                              <p><a href="login/pasreset.html">Забыли пароль?</a></p>
                                                                                                                                                                                              1. Алексей 31 марта 2016, 07:05 # +1
                                                                                                                                                                                                Ответ нашёл сам, методом исключения различных JS плагинов.
                                                                                                                                                                                              2. Ruslan Nikolaevich Kryvenko 03 июня 2016, 14:45 # 0
                                                                                                                                                                                                Никак не получается настроить, при переходе неавторизованого пользователя по любой ссылке: регистрация, авторизация, лчный кабинет, переходит на страницу 404. Все права настроил не один десяток раз, переустанавливал компонент Логин версию 1.9.0 и 1.9.2 ничего не помогает. Что еще можете посоветовать?
                                                                                                                                                                                                1. Илья Уткин 03 июня 2016, 14:47 # 0
                                                                                                                                                                                                  Вот же про это как раз и говорится

                                                                                                                                                                                                  Теперь если неавторизованный пользователь откроет одну из этих страниц, он увидит ошибку 404 — для него таких страниц не существует. Но нас такое поведение не устраивает. Мы хотим, чтобы при открытии страницы личного кабинета отображалась форма авторизации. Для этого идем в настройки системы и находим настройку unauthorized_page — Страница ошибки 403 «Доступ запрещен», и указываем в ней id страницы «Авторизация». У меня это — 3. Однако поведение все еще не изменится.

                                                                                                                                                                                                  Просто анонимному пользователю MODX не хочет раскрывать информацию даже о том, что такой ресурс существует. Чтобы разрешить отображение ошибки 403, где это нужно, идем в «Безопасность» → «Контроль доступа», нажимаем правой кнопкой мыши на группе (аноним) и выбираем «Редактировать». Переходим на вкладку «Доступ к группам ресурсов», добавляем группу:

                                                                                                                                                                                                  • Группа — Users,
                                                                                                                                                                                                  • контекст — web,
                                                                                                                                                                                                  • минимальная роль — Member,
                                                                                                                                                                                                  • политика доступа — Load only
                                                                                                                                                                                                  1. Ruslan Nikolaevich Kryvenko 03 июня 2016, 15:43(Комментарий был изменён) # 0
                                                                                                                                                                                                    Все сделал по инструкции и не один раз, не хочет работать и все. Вот на фото видно настройки, может что-то неправильно:



                                                                                                                                                                                                    Посмотрите, может что то не так сделано?
                                                                                                                                                                                                    1. Илья Уткин 03 июня 2016, 19:13 # 0
                                                                                                                                                                                                      А в другом браузере пробовали? В MODX сессии админки и самого сайта пересекаются, поэтому может не быть доступа
                                                                                                                                                                                                      1. Ruslan Nikolaevich Kryvenko 03 июня 2016, 19:30 # 0
                                                                                                                                                                                                        Пробовал в другом, вот уже поставил hybridauth чтоб не мучиться с этим логином.
                                                                                                                                                                                                        Хотел спросить. Вот заметил, что пропадают кнопки редактора к комментам и у вас, и у меня. С чем это связано?
                                                                                                                                                                                                        1. Илья Уткин 03 июня 2016, 19:38 # 0
                                                                                                                                                                                                          Странно, не замечал, что кнопки пропадают… Вообще, это какой-то иконочный шрифт… Может, просто не подгружаются иногда… Не знаю
                                                                                                                                                                                                2. Ruslan Nikolaevich Kryvenko 03 июня 2016, 19:33 # 0
                                                                                                                                                                                                  Еще вопрос не в тему этого поста но по теме modx) Как сделать чтоб авторизованные пользователи смогли писать комментарии без модерации, даже админа комменты приходится модерировать.?
                                                                                                                                                                                                  Спасибо!
                                                                                                                                                                                                  1. Илья Уткин 03 июня 2016, 19:39 # +1
                                                                                                                                                                                                    Точно не скажу, но в Tickets можно как-то настроить, чтобы комментарии анонимов уходили на модерацию, а комменты пользователей публиковались сразу
                                                                                                                                                                                                    1. Ruslan Nikolaevich Kryvenko 03 июня 2016, 22:30 # 0
                                                                                                                                                                                                      А у вас как настроено, без модерации?
                                                                                                                                                                                                      1. Илья Уткин 06 июня 2016, 11:36 # 0
                                                                                                                                                                                                        У меня здесь, да, без модерации. Не так часто появляются спам-сообщения, я успеваю их быстро удалять.
                                                                                                                                                                                                        1. Ruslan Nikolaevich Kryvenko 06 июня 2016, 16:37 # 0
                                                                                                                                                                                                          Ну а как сделано без модерации? Перерыл весь tickets так ничего и не нашел!?
                                                                                                                                                                                                          1. Илья Уткин 13 июня 2016, 11:44 # 0
                                                                                                                                                                                                            Я точно не помню, но никаких проблем у меня не возникло. Вот, может статья поможет: bezumkin.ru/sections/components/2595/
                                                                                                                                                                                                  2. Юлия 11 июня 2016, 22:01 # 0
                                                                                                                                                                                                    Подскажите, как сделать чтобы после авторизации проваливались на страницу личный кабинет?
                                                                                                                                                                                                    1. Илья Уткин 13 июня 2016, 11:40 # 0
                                                                                                                                                                                                      У сниппета Login есть параметр &loginResourceId, который и отвечает за это.
                                                                                                                                                                                                      1. Юлия 13 июня 2016, 20:50 # 0
                                                                                                                                                                                                        Спасибо:)
                                                                                                                                                                                                    2. Анатолий 12 июня 2016, 16:31 # 0
                                                                                                                                                                                                      На сайте xn--80abda0c7b.xn--p1ai/ при регистрации
                                                                                                                                                                                                      на странице регистрации
                                                                                                                                                                                                      нового пользователя xn--80abda0c7b.xn--p1ai/index.php?id=18 перестало приходить письмо пользователю для активации. Пользователь новый неактивный появляется, а письмо активации ему не приходит.
                                                                                                                                                                                                      Пользователей больше 200. Месяца два назад было такое иногда, а сейчас письма активации новые пользователи совсем не получают.
                                                                                                                                                                                                      Из формы обратной связи xn--80abda0c7b.xn--p1ai/index.php?id=26 письмо администратору приходит нормально.
                                                                                                                                                                                                      В какую сторону копать надо????
                                                                                                                                                                                                      1. morzzrom 13 июня 2016, 11:04 # 0
                                                                                                                                                                                                        Анатолий. Если у вас почта отправляется от MAIL.RU то есть вы отправляете письмо активации с сайта от имени, условно anatolii@mail.ru то скорее всего ваши письма с активацией уходят в спам. Так как недавно Mail ужесточил требования к своим бесплатным почтовым ящикам и надо настраивать политику dmarc. Совет — создать почтовый ящик на своем хостинге. Это проще всего.
                                                                                                                                                                                                        1. Анатолий 13 июня 2016, 15:01 # 0
                                                                                                                                                                                                          Письмо активации и письмо из формы обратной связи идут от имени почтового ящика на своем хостинге. Но заморочка видимо связана с Mail.ru. Письма действительно в папке СПАМ.
                                                                                                                                                                                                          Спасибо за подсказку
                                                                                                                                                                                                      2. Мхаил 18 июня 2016, 00:40 # 0
                                                                                                                                                                                                        Подскажите пожайлуста. Делал регистрацию по уроку вот как тут itchief.ru/lessons/modx-revo/modx-login-user-registration. Всё сделал как написано…
                                                                                                                                                                                                        НО письма не приходят ни о регистрации ни о восстановлении пароля, хотя настройки почты поставил и они работают сниппет ФОРМИТ отправляет письма…
                                                                                                                                                                                                        Настроено через SMTP

                                                                                                                                                                                                        В чём может быть проблема??? Почему не приходят эти письма???
                                                                                                                                                                                                        1. Анатолий 20 июня 2016, 00:44 # 0
                                                                                                                                                                                                          Вариант решения:
                                                                                                                                                                                                          В Настройки системы — Раздел — Авторизация и безопасность-Имя-Адрес электронной почты изменить на действующий адрес почтового ящика вашего домена. По умолчанию там прописывается и подставляется адрес администратора при установке MODX. а с 16 или 18 мая MAIL.RU установил запрет на отправку писем с чужого почтового сервера, GMAIL.COM и YANDEX.RU тоже самое.
                                                                                                                                                                                                          Мне этот вариант помог.
                                                                                                                                                                                                        2. Viktor 14 июля 2016, 22:58(Комментарий был изменён) # 0
                                                                                                                                                                                                          А откуда берутся поля, +phone, +name и пр. Где они формируются и указаны? Не могу понять
                                                                                                                                                                                                          1. Илья Уткин 15 июля 2016, 10:16 # 0
                                                                                                                                                                                                            phone — это поле пользователя, а name — на знаю… скорее всего, поле какого-то кастомного объекта
                                                                                                                                                                                                            1. Viktor 15 июля 2016, 12:25(Комментарий был изменён) # 0
                                                                                                                                                                                                              а на счет вопроса ниже, по поводу фильтрации вывода, можете что то подсказать?
                                                                                                                                                                                                              1. Илья Уткин 15 июля 2016, 12:31 # 0
                                                                                                                                                                                                                Обычно работают, написано правильно… Не знаю, в чем дело
                                                                                                                                                                                                                1. Viktor 15 июля 2016, 13:06 # 0
                                                                                                                                                                                                                  Хм, попробовал добавить "!" и заработало [[!+phone:notempty=`Телефон[[+phone]]`]]
                                                                                                                                                                                                          2. Viktor 14 июля 2016, 23:11 # 0
                                                                                                                                                                                                            И почему такие выводы не рабоатют?

                                                                                                                                                                                                            [[+phone:notempty=`Телефон[[+phone]]`]]

                                                                                                                                                                                                            Заполнено поле или нет, все равно не появляется. Но если просто выводить [[+phone]], то телефон отображается
                                                                                                                                                                                                            1. Viktor 20 июля 2016, 12:19 # 0
                                                                                                                                                                                                              А как сделать, что бы при отправке сообщения из личного кабинета, в приходящем письме автоматически подставлялось имя отправителя, т.е. залогиненного пользователя?
                                                                                                                                                                                                              1. Илья Уткин 20 июля 2016, 12:21 # 0
                                                                                                                                                                                                                В сниппете отправки логин пользователя доступен так
                                                                                                                                                                                                                $modx->user->Profile->username
                                                                                                                                                                                                                1. Viktor 20 июля 2016, 12:40 # 0
                                                                                                                                                                                                                  В сниппете, а в письме это как вывести?) А вот так):

                                                                                                                                                                                                                  [[!+modx.user.id:userinfo=`email`]]
                                                                                                                                                                                                                  [[!+modx.user.id:userinfo=`fullname`]]

                                                                                                                                                                                                                  и пр.
                                                                                                                                                                                                              2. Max 03 августа 2016, 08:56 # 0
                                                                                                                                                                                                                Возникла проблема, сайт мультиязычный, мультиязычность достигается посредством Babel и контекстов. При указании в параметре unauthorized_page ресурса из одного контекста, сайт перекидывает на данный ресурс только из контекста, которому он принадлежит. Если попытаться перейти, к примеру, в личный кабинет из другого контекста, сайт выдаёт следующее:
                                                                                                                                                                                                                Error 401: Unauthorized503 ErrorUnauthorizedYou are not authorized to view the requested content.
                                                                                                                                                                                                                Есть ли какие решения данной проблемы для мультиязычных сайтов?
                                                                                                                                                                                                                1. Max 03 августа 2016, 13:57 # 0
                                                                                                                                                                                                                  Всё решилось довольно просто — созданием настроек для каждого из контекстов с ключом
                                                                                                                                                                                                                  unauthorized_page и различным значением страниц редиректа, при отсутствующей авторизации.
                                                                                                                                                                                                                  1. Илья Уткин 03 августа 2016, 17:20 # 0
                                                                                                                                                                                                                    Да, всё верно. Кстати, настройки можно задавать не только контексту, но еще и конкретному пользователю — тогда можно отдельным пользователям сделать какую-нибудь свою страницу 404.
                                                                                                                                                                                                                2. Александр 21 сентября 2016, 20:50 # 0
                                                                                                                                                                                                                  Не могу разобраться как настроить внешний вид форм с помощью CSS, подскажите пожалуйста.
                                                                                                                                                                                                                  1. Илья Уткин 22 сентября 2016, 10:11 # 0
                                                                                                                                                                                                                    Ну тут только совет пройти какие-нибудь курсы по CSS — в двух словах этого не объяснить.
                                                                                                                                                                                                                  2. Александр 22 сентября 2016, 10:37 # 0
                                                                                                                                                                                                                    Скажу по другому, не получается присвоить нужный класс работающей CSS в форме регистрации. Т.е. есть HTML страница с визуализацией формы, есть форма регистрации в Login, а совместить не получается. Подскажите куда смотреть!
                                                                                                                                                                                                                    1. Илья Уткин 22 сентября 2016, 10:47 # 0
                                                                                                                                                                                                                      [[!Login? &loginTpl=`loginTpl`]]
                                                                                                                                                                                                                      И создаешь чанк loginTpl. Как пример можно взять чанк lgnLoginTpl
                                                                                                                                                                                                                    2. man 17 октября 2016, 15:38(Комментарий был изменён) # 0
                                                                                                                                                                                                                      Илья, не подскажете как поменять язык логово с русского языка на английский при авторизации.
                                                                                                                                                                                                                      Изменил все в разделе «управление словарями», но некоторые выражения по типу "Неправильное имя пользователя или пароль. Пожалуйста, проверьте введённые данные и попытайтесь снова." все еще выводятся на русском.
                                                                                                                                                                                                                      1. man 17 октября 2016, 17:43 # 0
                                                                                                                                                                                                                        В общем, затупил.
                                                                                                                                                                                                                        В словаре core->login->ru, если у кого есть другое (правильное) решение, то буду рад)
                                                                                                                                                                                                                      2. GoldStix 09 января 2017, 18:48 # 0
                                                                                                                                                                                                                        Подскажите, вроде всё делаю по инструкции, но при нажатии на «Зарегистрироваться» ничего не происходит. В чем может быть проблема?
                                                                                                                                                                                                                        1. Илья Уткин 10 января 2017, 08:11 # 0
                                                                                                                                                                                                                          Может быть много разных проблем, так не понять… Например, какой-то скрипт может перехватывать отправку форм.
                                                                                                                                                                                                                          1. Valentyn 01 марта 2017, 13:26 # 0
                                                                                                                                                                                                                            Добрый день! А форму изменения пароля тестировал кто-то? Читаю комментарии, ищу решение этой проблемы и никто не пишет ничего. Ошибки не выводит — ввожу старый пароль не верный, новый не совпадает и не меняется ничего, информация введенная появляется на вкладке «Дополнительные поля данных» на странице пользователя в админке(Управление-Пользователи)… Страница перезагружается и все… не ошибок, пароль не меняется. В чем может быть причина, можете подсказать?
                                                                                                                                                                                                                        2. Женя Арбузов 15 января 2017, 23:22 # 0
                                                                                                                                                                                                                          Илья, добрый вечер. У меня к вам пара вопросов, по поводу Tickets и Login.
                                                                                                                                                                                                                          Делаю все как у все в статье, но пишет «Недостаточно прав». Посмотрел как сделано в документации у Tickets, но все равно не работает. С чем это может быть связано?
                                                                                                                                                                                                                          1. Женя Арбузов 16 января 2017, 00:51 # +1
                                                                                                                                                                                                                            Илья, вопрос уже исчерпан (почаще надо читать всю переписку с людьми.) Решение нашел в посте за «Виталий 24 ноября 2015, 06:54»
                                                                                                                                                                                                                          2. Евгений 22 июня 2017, 17:11 # 0
                                                                                                                                                                                                                            Проблема в следующем. При переходе по ссылке на страницу с ConfirmRegister сниппетом выдается ошибка 404. В результате исследований выяснилось, что проблема возникает из-за ошибки «Error caching script ...» в model/modx/modcachemanager.class.php при выполнении метода generateScript. В кэше не находится нужный скрипт. В остальном сайт работает нормально и остальные сниппеты модуля Login (отсюда тыц) тоже работают без проблем. Не работает только активация аккаунта через ссылку в письме.
                                                                                                                                                                                                                            1. Юрий Войтюк 01 декабря 2017, 22:42 # 0
                                                                                                                                                                                                                              Как добавить поле «логин» во всю эту систему. Как по мне не очень логично в колонку «Имя» дублировать электронную почту. Тем более при восстановлении просит указать Имя (логин) или почту. Спасибо.
                                                                                                                                                                                                                              1. Илья Уткин 05 декабря 2017, 11:17 # 0
                                                                                                                                                                                                                                Логин в этой системе есть изначально, то есть можно пользоваться стандартными чанками для оформления форм.
                                                                                                                                                                                                                              2. Костя 04 декабря 2017, 00:42 # 0
                                                                                                                                                                                                                                Для блога можно прицепмть?
                                                                                                                                                                                                                                1. Илья Уткин 05 декабря 2017, 11:17 # 0
                                                                                                                                                                                                                                  Можно
                                                                                                                                                                                                                                2. Lohmatiy 24 сентября 2018, 16:48(Комментарий был изменён) # 0
                                                                                                                                                                                                                                  Здравствуйте, возникла проблема — установил все как тут написано. Страница личного кабинета у меня /account/, а формы авторизации — /login/. Если авторизоваться на /login/, то редиректа на /account/ нет. Так и должно быть? joxi.ru/Vm6vlMGIDyXwOm

                                                                                                                                                                                                                                  P.S.
                                                                                                                                                                                                                                  Поторопился
                                                                                                                                                                                                                                  &loginResourceId = `` помог
                                                                                                                                                                                                                                  1. Lohmatiy 10 октября 2018, 13:07 # 0
                                                                                                                                                                                                                                    Добрый день.
                                                                                                                                                                                                                                    А можно после регистрации без активации по email переходить сразу на страницу личного кабинета как авторизованный пользователь? В данный момент сниппет регистрации такой
                                                                                                                                                                                                                                    [[!Register?
                                                                                                                                                                                                                                        &submitVar=`registerbtn`
                                                                                                                                                                                                                                        &activation=`0`
                                                                                                                                                                                                                                        &submittedResourceId=`14581`
                                                                                                                                                                                                                                        &usergroups=`Users`
                                                                                                                                                                                                                                        &validate=`nospam:blank,
                                                                                                                                                                                                                                          password:required:minLength=^8^,
                                                                                                                                                                                                                                          password_confirm:password_confirm=^password^,
                                                                                                                                                                                                                                          fullname:required,
                                                                                                                                                                                                                                          email:required:email`
                                                                                                                                                                                                                                        &usernameField=`email`
                                                                                                                                                                                                                                        &placeholderPrefix=`reg.`
                                                                                                                                                                                                                                    ]]
                                                                                                                                                                                                                                    а при редиректе после отправки формы перекидывает на форму авторизации(
                                                                                                                                                                                                                                    1. Илья Уткин 11 октября 2018, 07:55 # 0
                                                                                                                                                                                                                                      Наверное, нужно пользователя сразу активировать — неактивный пользователь не сможет открыть личный кабинет.
                                                                                                                                                                                                                                      &activation=`1`
                                                                                                                                                                                                                                      1. Lohmatiy 12 октября 2018, 10:26 # 0
                                                                                                                                                                                                                                        Нет, &activation=`0` должно быть, пользователь будет сразу активен. Но перехода все равно нет(
                                                                                                                                                                                                                                        1. Lohmatiy 12 октября 2018, 11:18 # 0
                                                                                                                                                                                                                                          Нашел,
                                                                                                                                                                                                                                          &autoLogin=`1`
                                                                                                                                                                                                                                    2. Руслан 29 октября 2018, 17:50 # 0
                                                                                                                                                                                                                                      Здравствуйте. При регистрации пользователя, у которого емейл адрес с точкой вида «ivan.ivanov@mail.ru», письмо с кодом активации ему на почту не доходит. На другие адреса при этом работает нормально. Никто не сталкивался? Помогите, пожалуйста.
                                                                                                                                                                                                                                      1. Lohmatiy 02 ноября 2018, 13:43 # 0
                                                                                                                                                                                                                                        Добрый день, а есть ли у параметра «rememberme» какие-либо настройки? Как вообще посмотреть механизм работы на уровне кода? Сколько по времени длится сессия, или какая кука ответственна за отслеживание входа?
                                                                                                                                                                                                                                        1. Илья Уткин 02 ноября 2018, 13:53 # 0
                                                                                                                                                                                                                                          Этот параметр просто устанавливает Cookie без срока истечения:
                                                                                                                                                                                                                                          github.com/modxcms/revolution/blob/2.x/core/model/modx/processors/security/login.class.php#L295
                                                                                                                                                                                                                                          1. Lohmatiy 02 ноября 2018, 14:15 # 0
                                                                                                                                                                                                                                            Спасибо! То есть это некий глобальный параметр на уровне CMS. А отследить его можно? Покопался в куках, так и не понял, что искать. Просматриваю инкогнито, записалась только одна кука joxi.ru/E2pVX06S9dd6zr на 7 дней, это она?
                                                                                                                                                                                                                                            1. Илья Уткин 02 ноября 2018, 15:06 # 0
                                                                                                                                                                                                                                              Вроде, да. По идее, если была отмечена галочка rememberme, у этой куки не должно быть срока — то есть не на 7 дней, а навсегда. Но я глубоко так не копал, не разбирался)
                                                                                                                                                                                                                                        2. Lohmatiy 13 ноября 2018, 14:45(Комментарий был изменён) # 0
                                                                                                                                                                                                                                          И снова добрый день)
                                                                                                                                                                                                                                          Делаю интеграцию с внешним сервисом, когда пользователю, который при покупке указал имя и email, присылается пароль для доступа к кабинету и сразу же через API создается
                                                                                                                                                                                                                                          пользователь в системе. При авторизации в качестве логина используется email ( &loginViaEmail=`true` )
                                                                                                                                                                                                                                          Проблема в том, что с одним email человек может совершить несколько покупок, и соответственно затем не сможет войти ни в какой аккаунт (Built in protection: If an email address exists more than once, the corresponding users can't login via email address! — из доков к Login). Что-то никак не могу придумать выход из этой ситуации.
                                                                                                                                                                                                                                          1. rusweb 17 августа 2020, 01:38 # 0
                                                                                                                                                                                                                                            Все отлично работает!
                                                                                                                                                                                                                                            Скажите а как выводить ссылку на регистрацию для гостей, и как заменять эту ссылку на личный кабинет для зарегистрированных пользователей?
                                                                                                                                                                                                                                            1. Jonathon Bosco 06 ноября 2023, 00:46 # 0
                                                                                                                                                                                                                                              vaco

                                                                                                                                                                                                                                              Авторизация

                                                                                                                                                                                                                                              через сервис Loginza:


                                                                                                                                                                                                                                              Шаблоны MODX

                                                                                                                                                                                                                                              1 2 Дальше »

                                                                                                                                                                                                                                              Объектная
                                                                                                                                                                                                                                              модель
                                                                                                                                                                                                                                              MODX