Личный кабинет modx: MODX — Login (Личный кабинет пользователя) – Личный кабинет для пользователей

Содержание

MODX - Login (Личный кабинет пользователя)

Урок, в котором рассмотрим, как в MODX Revolution можно на основании компонента Login создать ресурсы "Личный кабинет пользователя", "Изменение пароля", "Редактирование данных".

Страница "Изменение пароля"

Страница "Изменение пароля" предназначена для отображения пользователю формы с помощью которой он сможет изменить свой пароль. Всё логику работы по изменению пароля пользователя выполняет сниппет ChangePassword.

Содержимое ресурса "Изменения пароля" (форма и сниппет ChangePassword):


[[!ChangePassword?
   &submitVar=`change-password`
   &placeholderPrefix=`cp.`
   &validateOldPassword=`1`
   &validate=`nospam:blank`
   &reloadOnSuccess=`0`
   &successMessage=`Ваш пароль успешно изменён`
]]

<div>
  <div>
    <div>
      <div>
        <div><i></i> Изменение пароля</div>
        <div>
          <div>[[!+cp.error_message]]</div>
          <p>[[!+cp.successMessage]]</p>
          <form action="[[~[[*id]]]]" method="post">
            <input type="hidden" name="nospam" value="">
            <div>
              <label for="password_old">Старый пароль</label>
              <div>
                <input type="password" name="password_old" value="[[+cp.password_old]]">
                <span>
                  [[!+cp.error.password_old]]
                </span>   
              </div>      
            </div>
            <div>
              <label for="password_new">Новый пароль</label>
              <div>
                <input type="password" name="password_new" value="[[+cp.password_new]]">
                <span>
                  [[!+cp.error.password_new]]
                </span>  
              </div>      
            </div>   
            <div>
              <label for="password_new_confirm">Введите новый пароль ещё раз</label>
              <div>
                <input type="password" name="password_new_confirm" value="[[+cp.password_new_confirm]]">
                <span>
                  [[!+cp.error.password_new_confirm]]
                </span>  
              </div>      
            </div>
            <input type="submit" value="Изменить пароль" name="change-password">
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
MODX Login - Форма изменения пароля пользователяMODX Login - Форма изменения пароля пользователяMODX Login - Валидация данных формы, предназначенной для изменения пароля пользователяMODX Login - Валидация данных формы, предназначенной для изменения пароля пользователяMODX Login - Успешное изменение пароля пользователяMODX Login - Успешное изменение пароля пользователя

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

Имя параметра Описание
submitVar Ключ, значение которого проверяется, перед тем как сниппет ChangePassword начнёт обрабатывать форму. Если в качестве значения этого параметра указать пустую строку или false, то сниппет ChangePassword будет обрабатывать форму при получении любого Post запроса. Значение ключа: change-password.
placeholderPrefix Префикс, который будут иметь плейсхолдеры, устанавливаемые с помощью этого сниппета. Значение: cp..
validateOldPassword Указывает, требовать ли от пользователя ввод текущего пароля для успешного установления нового. Значение: 1 (да, требовать).
reloadOnSuccess Определяет необходимо ли перезагружать эту страницу (ресурс) после успешного установления нового пароля или нет. Если значение этого параметра установить равным 1, то данный сниппет перезагрузит эту страницу с параметром GET, предотвращающим повторную отправку данных на сервер. В противном случае (значение 0), сниппет ChangePassword выведет сообщение в плейсхолдер. Значение: 0 (вывести сообщение об успехе в плейсхолдер).
successMessage Если параметр reloadOnSuccess имеет значение 0, то данный сниппет выведет указанное в successMessage сообщение в плейсхолдер [prefix].successMessage. Значение: Ваш пароль успешно изменён.

Страница "Редактирование данных"

Эта страница предназначена для изменения данных пользователя, таких как полное имя (fullname), телефон (phone), мобильный телефон (mobilephone), адрес (address), страна (country), город (city), веб-сайт (website). Логику работы по обновлению данных пользователя выполняет сниппет UpdateProfile из пакета Login.

Содержимое ресурса "Редактирование данных" (сниппет UpdateProfile):


[[!UpdateProfile? &validate=`fullname:required`]]

<div>
  <div>
    <div>
      <div>
        <div><i></i> Редактирование данных</div>
        <div>
          <div>[[+error.message]]</div>
          [[+login.update_success:is=`1`:then=`[[%login.profile_updated? &namespace=`login` &topic=`updateprofile`]]`]]
          <form action="[[~[[*id]]]]" method="post">
            <input type="hidden" name="nospam" value="">
            <div>
              <label for="fullname">[[!%login.fullname? &namespace=`login` &topic=`updateprofile`]]</label>
              <div>
                <input type="text" name="fullname" value="[[+fullname]]">
                <span>
                  [[+error.fullname]]
                </span>        
              </div>      
            </div>
            <div>
              <label for="phone">[[!%login.phone]]</label>
              <div>
                <input type="text" name="phone" value="[[+phone]]">
                <span>
                  [[+error.phone]]
                </span>        
              </div>      
            </div> 
            <div>
              <label for="mobilephone">[[!%login.mobilephone]]</label>
              <div>
                <input type="text" name="mobilephone" value="[[+mobilephone]]">
                <span>
                  [[+error.mobilephone]]
                </span>        
              </div>      
            </div> 
            <div>
              <label for="address">[[!%login.address]]</label>
              <div>
                <input type="text" name="address" value="[[+address]]">
                <span>
                  [[+error.address]]
                </span>        
              </div>      
            </div>  
            <div>
              <label for="country">[[!%login.country]]</label>
              <div>
                <input type="text" name="country" value="[[+country]]">
                <span>
                  [[+error.country]]
                </span>        
              </div>      
            </div>   
            <div>
              <label for="city">[[!%login.city]]</label>
              <div>
                <input type="text" name="city" value="[[+city]]">
                <span>
                  [[+error.city]]
                </span>        
              </div>      
            </div>  
            <div>
              <label for="website">[[!%login.website]]</label>
              <div>
                <input type="text" name="website" value="[[+website]]">
                <span>
                  [[+error.website]]
                </span>        
              </div>      
            </div>  
            <div></div>
            <input type="submit" value="[[!%login.update_profile]]" name="login-updprof-btn">
          </form>
        </div>
      </div>
    </div>
  </div>
</div>
MODX Login - Форма с помощью которой пользователь может обновить свои персональные данныеMODX Login - Форма с помощью которой пользователь может обновить свои персональные данные

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

Имя параметра Описание
submitVar Имя кнопки submit, которая отправляет форму обновления профиля пользователя на сервер. Значение по умолчанию: login-updprof-btn
validate Список (через запятую) полей для валидации (проверки). Указывается так: имя:валидатор (например, username: required, email:required). Валидаторы можно соединять в цепочки. Например, email:email:required.

Страница "Личный кабинет"

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

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

Содержимое ресурса "Личный кабинет" (сниппет Profile):


[[!Profile? &prefix=`usr.`]]

<div>
  <div><i></i> Личный кабинет пользователя</div>
    <div>
      <p>Имя пользователя: [[+usr.username]]</p>
      <p>Телефон: [[+usr.phone]]</p>
      <p>Мобильный телефон: [[+usr.mobilephone]]</p>
      <p>Email: [[+usr.email]]</p>
      <hr>
      <p>Адрес: [[+usr.address]]</p>
      <p>Страна: [[+usr.country]]</p>
      <p>Город: [[+usr.city]]</p>
      <p>Веб-сайт: [[+usr.website]]</p>
      <hr>
      <div>
       <i></i> <a href="[[~14]]" title="Изменение пароля">Изменение пароля</a>
      </div>
      <div>
        <i></i> <a href="[[~15]]" title="Редактирование данных">Редактирование данных</a>
      </div>
    </div>
  </div>
</div>
MODX Login - Личный кабинет пользователяMODX Login - Личный кабинет пользователя

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

Имя параметра Описание
prefix Префикс, который будут иметь плейсхолдеры, установленные этим сниппетом.
user Необязательный параметр. Предназначен для указания пользователя, данные которого необходимо вывести. Задаётся параметр посредством указания идентификатора (id) или имени (username) пользователя. По умолчанию: текущий пользователь.
useExtended Определяет необходимо ли устанавливать все расширяемые поля пользователя в качестве плейсхолдеров. Значение по умолчанию: 1 (да, необходимо).

Авторизация, регистрация пользователей, личный кабинет и основы контроля доступа в 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.

[Office] Личный кабинет miniShop2 / Расширения MODX / Блоги / bezumkin.ru

  • Регистрация и авторизация через email
  • Редактирование профиля пользователя
  • Вывод заказов пользователя из MS2, включая совершенные до установки кабинета
  • Возможность выводить любые данные пользователям, используя возможности api Office.

Посмотреть компонент в работе можно в личном кабинете нашего магазина. А теперь подробности.

Запуск

Компонент Office — это модульная система, в которой может быть сколько угодно частей. Я называю каждую часть контроллером, и в стандартном комплекте их 3:
  • Auth — авторизация через email
  • Profile — работа с профилем пользователя
  • miniShop2 — вывод личного кабинета MS2
В самом компоненте ровно один простенький сниппет, который вызывает нужный контроллер и передает ему все указанные параметры. Таким образом, возможные настройки, чанки, н прочие свойства зависят от контроллера и в сниппете не прописаны.

Например, вот вызов сразу всех 3х контроллеров на одной странице.


[[!Office?&action=`Auth`]]
[[!Office?&action=`Profile`]]
[[!Office?&action=`miniShop2`]]

Контроллер — это обычный php класс, который наследует стандартный класс из Office. Эти классы лежат в директории /core/components/office/controllers/ и, благодаря модульной архитектуре, вы легко можете изменить любой из них. Нужно просто сделать копию, переименовать и вызвать:

[[!Office?&action=`AuthCopy`]]

Конечно, вы запросто можете писать свои контроллеры — это не сложно.

Настройка контроллеров

В контроллер передаётся всё, что вы указали сниппету, и он сам решает, что ему нужно. Все стандартные скрипты и стили необходимые для работы регистрируются через системные настройки, как у MS2.

Контроллер Auth
Параметры этого контроллера очень похожи на Loginza и HybridAuth.
  • tplLogin — чанк для логина на сайт. По умолчанию tpl.Office.auth.login.
  • tplLogout — чанк для выхода с сайта. По умолчанию tpl.Office.auth.logout.
  • tplActivate — чанк письма со ссылкой на вход. По умолчанию tpl.Office.auth.activate.
  • linkTTL — Время жизни авторизационной ссылки в секундах. Пока не истечет — нельзя запрашивать новую. По умолчанию — 600.
  • groups — Список групп для регистрации новых юзеров, через запятую.
  • loginResourceId — Id страницы для входа, с вызовом контроллера Auth.
  • logoutResourceId — Id страницы для выхода, с вызовом контроллера Auth.
  • rememberme — Запоминать сессию или нет? По умолчанию, включено.
  • loginContext — Контекст для авторизации, по умолчанию — текущий.
  • addContexts — Список дополнительных контекстов, через запятую.
Пример вызова, с регистрацией в группу Users и редиректом на текущую страницу:
[[!Office?
	&action=`Auth`
	&groups=`Users`
	&loginResourceId=`[[*id]]`
]]

В работе контроллера есть небольшой нюанс: для генерации авторизационных ссылок ему нужно иметь какой то id ресурса по умолчанию. Этот id хранится в системной настройке office_auth_page_id и заполняется при первом вызове Auth на сайте.

В дальнейшем, есть вы не указываете loginResourceId, то используется именно этот id, и все ссылки в почте будут на эту страницу.

Контроллер Profile
Этот контроллер предназначен для редактирования профиля пользователя. Учитывая, что ваши пользователи заходят на сайт через email, им нужно будет заполнять свои данные, например Ф.И.О. Также он позволяет сменить email, с обязательной проверкой.
  1. tplProfile — Чанк формы редактирования профиля. По умолчанию, tpl.Office.profile.form.
  2. tplActivate — Чанк письма с активацией нового email. По умолчанию, tpl.Office.profile.activate.
  3. profileFields — Список полей профиля, доступных для редактирования. Можно указывать максимальную длину значения, через двоеточие. По умолчанию: email:50,fullname:50,phone:12,mobilephone:12,dob:10,gender,address,country,city,state,zip,fax,photo,comment,website.
  4. requiredFields — Список обязательных для заполнения полей. По умолчанию email,fullname.

Этот сниппет тоже имеет свою системную настройку со стандартным id, которая заполняется при его первом вызове. И вот тут, внимание: если у пользователя нет имени и <и>office_profile_page_id</и> не пуста — юзер будет перенаправляться на эту страницу, пока не заполнит своё имя.

То есть, после первой авторизации через email, пользователь принудительно будет отправлен заполнять свой профиль, и пока не заполнит все требуемые поля — оттуда не выйдет.

Контроллер miniShop2
С чанками тут все просто — контроллер выводит таблицу Ext JS, для чего ему нужен всего один параметр:
  • tplOuter — по умолчанию это tpl.Office.ms2.outer и там только элемент для рендера таблицы.
Зато сама таблица может очень круто кастомизироваться, и для этого у нее есть системные настройки:
  • office_ms2_date_format — Внешний вид дат, указывается в формате strftime. По умолчанию, %d.%m.%y %H:%M
  • office_ms2_order_grid_fields — Список полей, которые будут показаны в таблице заказов. Доступны: «createdon,updatedon,num,cost,cart_cost,delivery_cost,weight,status,delivery,payment,customer,receiver».
  • office_ms2_order_form_fields — Список полей заказа, которые будут показаны на первой вкладке карточки заказа. Доступны: «weight,createdon,updatedon,cart_cost,delivery_cost,status,delivery,payment».
  • office_ms2_order_address_fields — Список полей доставки, которые будут показаны на третьей вкладке карточки заказа. Доступны: «receiver,phone,index,country,region,metro,building,city,street,room». Если параметр пуст, вкладка будет скрыта.
  • office_ms2_order_product_fields — Список полей таблицы заказанных товаров. Доступны: «count,price,weight,cost,options». Поля товара указываются с префиксом «product_», например «product_pagetitle,product_article». Дополнительно можно указывать значения из поля options с префиксом «option_», например: «option_color,option_size».

Заключение

Компонент Office является очень мощным и универсальным инструментом для работы с вашими посетителями. В стандартной поставке он представляет из себя личный кабинет для магазина miniShop2, но при желании и знаниях php из него можно сделать что угодно. Например, управление ключами репозитория.

Купить компонент можно у нас в магазине.

Добавление новых комментариев отключено.

Office / Пользователи / Дополнения MODX / modstore.pro

Версия 1.9.1-pl

Дата выпуска 27.02.2020

Просмотры 26 689

Внимание, этот компонент требует версию PHP 5.6 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.

Внимание, этот компонент требует версию MODX не ниже 2.5 !

Модульное дополнение для работы с пользователями.

Функционал в комплекте:
— Ajax регистрация и авторизация пользователей
— Ajax редактирование профиля
— Авторизация в дополнительные аккаунты для быстрого переключения между ними
— Авторизация под любым активным пользователем прямо из админки
— Вывод покупок пользователя miniShop2 на ExtJS

Быстрый старт

Авторизация и редактирование профиля в modstore.pro работает с помощью Office.

Login MODX Revolution. Авторизации на сайте

Что такое Login?

Login – это дополнение, реализующее функции безопасности для MODx Revolution, оно позволяет обеспечить вход пользователю в персональный раздел из клиентской области, производить обновления персонального раздела, непосредственно регистрацию, восстановление забытого пароля.

История создания

Login написано Шоном МакКорником в качестве дополнения, реализующего функции входа в систему и обеспечение безопасности процессов, требующих авторизации. Впервые опубликовано 25 июня 2009.

Загрузка

Дополнение может быть загружено с помощью менеджера MODx Revolution, используя Package Management, или из хранилища дополнений MODx.

Использование

Дополнение Login включает в себя 10 сниппетов:

  • Login – Используется при авторизации.
  • UpdateProfile – Обеспечивает редактирование персонального раздела из клиентской области.
  • Profile – Формирует поля персонального раздела в виде плейсхолдеров, что позволяет вывести на экран персональный раздел пользователя.
  • ForgotPassword – Обеспечивает восстановление утерянного пароля.
  • ResetPassword – Сниппет, обеспечивающий подтверждение сброса пользовательского пароля.
  • Register – Обеспечивает работу формы регистрации.
  • ConfirmRegister – страница подтверждения, используемая для работы Формы регистрации и активации.
  • ChangePassword – Используется для изменение пароля пользователя из клиентской области.
  • ActiveUsers – Выводит список активных, вошедших с паролем пользователей.
  • isLoggedIn – Проверяет, имеет ли вошедший пользователь право доступа к текущему контенту или разделу. Если нет, то пользователь перенаправляется на страницу, сообщающую, что у него нет доступа.

Что такое Login?

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

Использование

Пример использования Login:

Можно задать определенный / специфический шаблон, но при этом нужно убедиться, что вызываются также и параметры &tpl типа:


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

Для использования дополнительных возможностей ознакомьтесь со свойствами сниппета.

Свойства

Login обладает несколькими свойствами, позволяющими настраивать его работу.


Имя

Описание

Значение по умолчанию

1

actionKey

Переменная Запрос (REQUEST), отображающая, какое действие запрашивается. По умолчанию 'service'. Удобно использовать, если на сайте уже используется переменная REQUEST со значением 'service' и ее нужно изменить.

service

2

loginKey

Параметр для обеспечения входа / логина на сайт. По умолчанию 'login'. Данный параметр сообщает Login начать работу, только если значением actionKeyявляется 'login'. Например, если значение actionKey 'service' , а loginKey задан как 'login', то процесс входа начнется при обнаружении условия '&service=login'

login

3

logoutKey

Параметр для обеспечения выхода с сайта. По умолчанию 'logout'. Данный параметр сообщает Login начать работу, только если значением actionKeyявляется 'logout'. Например, если значение actionKey 'service' , а loginKey задан как 'logout', то процесс выхода начнется при обнаружении условия '&service=logout'

logout

4

rememberMeKey

Опционально. Имя поля переключателя Напомнить (Remember Me) для обеспечения возможности входа на сайт. По умолчанию "rememberme".

rememberme

5

tplType

Тип шаблона, обеспечивающий работу loginTpl or logoutTpl. Возможные значения описаны в разделах ниже.

inline

6

loginTpl

Шаблон формы входа. Тип определяется значением, заданным в свойствах tplType.

lgnLoginTpl

7

logoutTpl

Шаблон формы выхода. Тип определяется значением, заданным в свойствах. tplType

lgnLogoutTpl

8

errTpl

Шаблон сообщения об ошибке. Тип определяется значением, заданным в свойствах errTplType .

lgnErrTpl

9

errTplType

Тип шаблона, обеспечивающий работу errTpl.

modChunk

10

loginResourceId

Ресурс, перенаправляющий пользователей при успешном входе. 0 перенаправляет в персональный раздел. will redirect to self. Не заполняйте при использовании страницы без авторизации по умолчанию.

0

11

loginResourceParams

Параметры объекта JSON , присоединяемые к ссылке-редиректу при входе в аккаунт. Пример: {"test":123} преобразуется в url.html?test=123


12

logoutResourceId

ID ресурса, на который перенаправляется пользователь после успешного выхода из аккаунта. 0 перенаправляет на себя.

0

13

logoutResourceParams

Параметры объекта JSON , присоединяемые к ссылке-редиректу при выходе из аккаунта. Пример: {"test":123} преобразуется в url.html?test=123


14

loginMsg

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


15

logoutMsg

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


16

redirectToPrior

После успешного входа пользователь перенаправится на реферральную страницу (HTTP_REFERER), если значение устнаовлено как true / истина.

0

17

contexts

(Экспериментальный параметр) Контекстный список (разделитель - запятая) для входа. По умолчанию для использования текущего контекста не требуется задавать какие-либо параметры.


18

preHooks

Список 'hooks' (или сниппетов), исполняемых перед тем, как пользователь зарегистрируется, но после валидации. В качестве 'hook' можно задать 'recaptcha'


19

postHooks

Список 'hooks' (или сниппетов), исполняемых после того, как пользователь зарегистрируется.


20

toPlaceholder

Если задан, будет направлять выходные данные сниппета-логина в плейсхолдер с данным именем вместо непосредственного вывода возвращаемого контента.


21

redirectToOnFailedAuth

(Для версии 1.6.4-pl & +) Перенаправляет на отдельную страницу при неверном входе.


Опции tplType

tplType и errTplType свойства обладают списком различных опций и позволяют их выбрать. Такими опциями могут быть:

  • modChunk - Обеспечиваемый шаблон должен быть назван именем чанка.
  • file – Должен быть абсолютный путь к файлу шаблона.
  • inline – Контент шаблона будет непосредственно в его свойствах.
  • embedded – Шаблон уже встроен в страницу, просто задайте свойства ошибки как плейсхолдер.

Использование reCaptcha

Сначала убедитесь, что Системные установки `recaptcha.public_key` и `recaptcha.private_key` установлены в соответствии с вашими reCaptcha API ключами. Затем все, что нужно сделать для их добавления- это добавить "recaptcha" preHook в ваш вызов сниппета.:


[[!Login? &preHooks=`recaptcha`]]

Убедитесь, что [[+login.recaptcha_html]] плейсхолдер является вашим loginTpl чанком. Это сделает reCaptcha необходимым при входе пользователя с паролем.

Logout

Как выполняется выход пользователя (log out)? Просто вызываете страницу, содержащую ваш сниппет Login и передаете определенный 'logout' как сервис / service через URL. В нижеприведенном примере сниппет Login snippet находится на странице 21:

 <a href="
[[~21? &service=logout]]
" title="Logout">Logout</a>
(which automatically appends '&service=logout' to your URL)

ChangePassword?

Сниппет ChangePassword

ChangePassword простой сниппет, который используется в сочетании с Login, что позволяет пользователям менять свой пароль на сайте MODX Revolution. Вы можете разместить его в любом месте, и он будет обрабатывать форму для изменения пароля пользователем.

Использование ChangePassword

Просто создайте форму для восстановления пароля, а также в нужном месте страницы, поставить вызов сниппета. Например:

<h3>Восстановление пароля</h3>
[[!ChangePassword?
   &submitVar=`change-password`
   &placeholderPrefix=`cp.`
   &validateOldPassword=`1`
   &validate=`nospam:blank`
]]
<div>[[!+cp.error_message]]</div>
<form action="[[~[[*id]]]]" method="post">
    <input type="hidden" name="nospam" value="" />
    <div>
        <label for="password_old">Old Password
            <span>[[!+cp.error.password_old]]</span>
        </label>
        <input type="password" name="password_old" value="[[+cp.password_old]]" />
    </div>
    <div>
        <label for="password_new">New Password
            <span>[[!+cp.error.password_new]]</span>
        </label>
        <input type="password" name="password_new" value="[[+cp.password_new]]" />
    </div>
    <div>
        <label for="password_new_confirm">Confirm New Password
            <span>[[!+cp.error.password_new_confirm]]</span>
        </label>
        <input type="password" name="password_new_confirm" value="[[+cp.password_new_confirm]]" />
    </div>
    <div>
        <input type="submit" name="change-password" value="Change Password" />
    </div>
</form>

Свойства ChangePassword

ChangePassword поставляется с некоторыми свойствами установленными по умолчанию, их можно переопределить. К ним относятся:

Имя Описание По умолчанию
submitVar Если пусто, либо установлено значение false, ChangePassword будет обрабатывать все запросы POST в форме. logcp-submit
fieldOldPassword Имя поля для ввода старого пароля. password_old
fieldNewPassword Название поля для ввода нового пароля. password_new
fieldConfirmNewPassword Необязательно. Если установлено,то новый пароль надо будет подтвердить, повторно ввести. password_new_confirm
validateOldPassword Значение 1 или 0. Определите, требуется ли пользователю ввести текущий пароль, чтобы успешно сбросить пароль. 1
preHooks Список хуков введенных через запятую для проверки формы.
postHooks What scripts to fire, if any, after the user has been registered. This can be a comma-separated list of hooks, and if the first fails, the proceeding ones will not fire. A hook can also be a Snippet name that will execute that Snippet.
redirectToLogin Редирект для пользователей не авторизованных на сайте. Перенаправляет на указанную страницу. 1
reloadOnSuccess Если 1, то страница будет перенаправить к себе с параметром GET для предотвращения двойных обратных передач. 1
successMessage Если reloadOnSuccess установлен на 0, выход это сообщение в [префикса].SuccessMessage заполнителя.
placeholderPrefix Префикс для использования для всех заполнителей, установленных этом фрагменте. logcp.

Сниппет ConfirmRegister?

ConfirmRegister простой фрагмент, С помощью которого пользователь должен подтвердить регистрацию на сайте, когда "активации" в сниппете Register устанавливается в 1 (по умолчанию). вызывать сниппет необходимо на отдельной странице.

Использование ConfirmRegister

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

Вам необходимо создать страницу Активация пользователя с вызовом сниппета:

[[! ConfirmRegister]]

К примеру страница регистрации будет выглядеть так:

[[!Register?    &ActivationEmailTpl= `myActivationEmailTpl`   &ActivationEmailSubject= `Пожалуйста активируете свой аккаунт!`   иactivationResourceId= `26`]]

таким образом пользователю будет отправлено письмо с содержимым указанным в чанке "myActivationEmailTpl", с указанным адресом(26) страницы для перехода что бы активировать учетную запись - на которой вы поместили вызов сниппета ConfirmRegister.

Свойства по умолчанию

ConfirmRegister имеет некоторые свойства установленные по умолчанию. К ним относятся:

Имя Описание Значение
redirectTo Необязательно. После успешного подтверждения, перенаправит на этот ресурс.
redirectParams Необязательно. Объект JSON параметров для передачи при перенаправлении с использованием redirectTo.
authenticate Аутентификация и авторизация пользователя в текущем контексте после подтверждения регистрации. 1
authenticateContexts Необязательно. Контексты через запятую для проверки подлинности. По умолчанию в текущем контексте.
errorPage Необязательно. Если установлено, будет перенаправлять пользователя на страницу ошибки, если они попытаются открыть страницу после активации своей учетной записи.

Сниппет ForgotPassword?

ForgotPassword простой фрагмента, которая обрабатывает форму, когда пользователь забыл свой пароль и нуждается в его восстановлении.

Использование ForgotPassword

Чтобы воспользоваться функцией восстановления пароля, сначала создайте ресурс для авторизации пользователя, на котором будет ссылка для восстановления пароля, перейдя на которую пользователь сможет ввести свой электронный адрес или логин для восстановления пароля, после чего он будет перенаправлен на страницу с вызовом:

[[ResetPassword!? &LoginResourceId=`72`]]

Затем создайте еще одну страницу с вызовом сниппета ForgotPassword и назначить страницу на которой вызван сброс пароля:

[[!ForgotPassword? &ResetResourceId=`123`]]

ForgotPassword Свойства

ForgotPassword поставляется с некоторыми свойствами по умолчанию их можно переопределить. К ним относятся:

Имя Описание Значения
tpl Чанк сообщения о сбросе пароля lgnForgotPassTpl
tplType Тип чанка tpl modChunk
emailTpl Чанк сообщения по электронной почте. lgnForgotPassEmail
emailSubject Тема почтового уведомления Password Retrieval Email
emailTplType Тип TPL, предоставляемой emailTpl modChunk
sentTpl Чанк сообщающий об успешной отправке lgnForgotPassSentTpl
sentTplType Тип TPL, предоставляемой sentTpl modChunk
loginResourceId Ресурс куда будет перенаправлен пользователь для авторизации. 1
resetResourceId Ресурс, который содержит Login.ResetPassword фрагмент. 1

tplType Опции

Имущество tplType занимает различные варианты. Они могут быть:

  • modChunk - TPL условии должно быть название кусок.
  • file - Должен быть абсолютный путь к TPL файла.
  • inline - Содержание TPL будет непосредственно в самой TPL собственности.
  • embedded - TPL уже на странице, просто убедитесь, свойства ошибках быть заполнители.
  • Сниппет Profile?

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

    Использование

    Просто добавьте вызов сниппета на странице, на которой вы хотите отображать профиль пользователя MODX Revolution:

    [[!Profile]]</code><p></p>
    И плейсхолдеры<p></p>
    <code><p>Username: [[+username]]</p>
    <p>Email: [[+email]]</p>
    <p>State: [[+state]]</p>

    <u><strong>Поля пароль никогда не установдивайте в качестве заполнителей, по соображениям безопасности.</strong></u>

    Свойства Profile:

    Профиль поставляется с некоторыми свойствами по умолчанию их можно переопределить. К ним относятся:

    Имя Описание Значения
    prefix Строка в качестве префикса все заполнители для полей, которые будут установлены в сниппете.
    user Необязательно. Либо ID пользователя или имя пользователя. Если установлено, будет показан профиль этого пользователя.
    useExtended Если это включено, будет установлено в качестве заполнителей все расширенные поля, а также. 1

    Пример

    Вывод информации вошедшего пользователя

    [[!Profile]]
     
    <p>Username: [[+username]]</p>
    <p>Email: [[+email]]</p>

    Отображение вошедшего пользователя информации Любимы цвет с префиксом usr:

    [[!Profile? &prefix=`usr.`]]

    <p>[[+usr.username]]'s favorite color is [[+usr.color]]</p>

    Сниппет ResetPassword?

    ResetPassword простой сниппет, который используется в сочетании с ForgotPassword, что позволяет пользователям восстанавливать забытый пароль. Этот сниппет размещается на странице, ссылку на которую пользователь получит по электронной почте, и перейдя по которой сбросит свой пароль.

    Использование

    Создайте ресурс с вызовом сниппета:

    [[!ResetPassword? &LoginResourceId=`72`]]

    Затем создайте другой ресурс с вызовом сниппета ForgotPassword, и укажите id ресурса где находиться вызов сниппета ResetPassword:

    [[!ForgotPassword? &ResetResourceId=`123`]]

    Свойства ResetPassword

    ResetPassword поставляется с некоторыми свойствами по умолчанию, их можно переопределить. К ним относятся:

    Name Description Default
    tpl Чанк сброса пароля lgnResetPassTpl
    tplType Тип TPL, предоставляемой TPL modChunk
    loginResourceId Ресурс, куда будет направлен пользователь при успешном сбросе. 1

    tplType Опции

    Свойства tplType имеет различные варианты. Такие как:

    • modChunk - TPL условии для чанка.
    • file - Должен быть абсолютный путь к TPL файлу.
    • inline - Содержание TPL будет непосредственно в самой TPL собственности.
    • embedded - TPL уже на странице, просто убедитесь, свойства ошибках быть заполнители.

    Сниппет UpdateProfile?

    UpdateProfile простой фрагмент, который позволяет пользователям, которые авторизованы на сайте редактировать свой профиль.

    Использование

    Для использования функции редактирования профиля, сначала создайте ресурса перейдя на который пользователь сможет отредактировать свой профиль. Затем добавьте этот вызов сниппета:

    [[!UpdateProfile? &validate=`fullname:required,email:required:email`]]

    Свойства UpdateProfile

    UpdateProfile поставляется с некоторыми свойствами по умолчанию, их можно переопределить. К ним относятся:

    Имя Описание Значения
    submitVar The name of the form submit button that triggers the submission. login-updprof-btn
    validate Через запятую список полей для проверки, с каждым именем поля, как имя: валидатор (например: username:required,email:required). валидаторов также может быть прикован, как электронная почта: email:email:required. Это свойство может быть указан на нескольких строках.
    redirectToLogin Редирект на страницу авторизации для анонимных пользователей 1
    reloadOnSuccess Сообщение об успешной отправке 1
    emailField Имя поля email для формы email
    preHooks Через запятую список плейсхолдеров, или сниппеты, которые будут выполняться при обновлении профиля, но после проверки. Также можно указать "капчу", как плейсхолдер.
    postHooks Через запятую список плейсхолдеров, или сниппетов, которые будут обработаны после обновления профиля
    syncUsername Если установлен как имя столбца в профиль, UpdateProfile попытается синхронизировать имя пользователя в этой области после успешного сохранения.
    useExtended Whether or not to set any extra fields in the form to the Profiles extended field. This can be useful for storing extra user fields. 1
    excludeExtended Через запятую список полей для исключения.
    placeholderPrefix Префикс для использования для всех заполнителей, установленных в этом сниппете.

    Форма UpdateProfile

    Затем, ниже вызова сниппета разместите форму html (добавьте любые поля, которые нужны в форме). Эта форма находится в чанке lgnupdateprofile.chunk.tpl.

    <div>
        <div>[[+error.message]]</div>
        [[+login.update_success:if=`[[+login.update_success]]`:is=`1`:then=`[[%login.profile_updated? &namespace=`login` &topic=`updateprofile`]]`]]
     
        <form action="[[~[[*id]]]]" method="post">
            <input type="hidden" name="nospam" value="" />
     
            <label for="fullname">[[!%login.fullname? &namespace=`login` &topic=`updateprofile`]]
                <span>[[+error.fullname]]</span>
            </label>
            <input type="text" name="fullname" value="[[+fullname]]" />
     
            <label for="email">[[!%login.email]]
                <span>[[+error.email]]</span>
            </label>
            <input type="text" name="email" value="[[+email]]" />
     
            <label for="phone">[[!%login.phone]]
                <span>[[+error.phone]]</span>
            </label>
            <input type="text" name="phone" value="[[+phone]]" />
     
            <label for="mobilephone">[[!%login.mobilephone]]
                <span>[[+error.mobilephone]]</span>
            </label>
            <input type="text" name="mobilephone" value="[[+mobilephone]]" />
     
            <label for="fax">[[!%login.fax]]
                <span>[[+error.fax]]</span>
            </label>
            <input type="text" name="fax" value="[[+fax]]" />
     
            <label for="address">[[!%login.address]]
                <span>[[+error.address]]</span>
            </label>
            <input type="text" name="address" value="[[+address]]" />
     
            <label for="country">[[!%login.country]]
                <span>[[+error.country]]</span>
            </label>
            <input type="text" name="country" value="[[+country]]" />
     
            <label for="city">[[!%login.city]]
                <span>[[+error.city]]</span>
            </label>
            <input type="text" name="city" value="[[+city]]" />
     
            <label for="state">[[!%login.state]]
                <span>[[+error.state]]</span>
            </label>
            <input type="text" name="state" value="[[+state]]" />
     
            <label for="zip">[[!%login.zip]]
                <span>[[+error.zip]]</span>
            </label>
            <input type="text" name="zip" value="[[+zip]]" />
     
            <label for="website">[[!%login.website]]
                <span>[[+error.website]]</span>
            </label>
            <input type="text" name="website" value="[[+website]]" />
     
            <br />
     
            <div>
                <input type="submit" name="login-updprof-btn" value="[[!%login.update_profile]]" />
            </div>
        </form>
    </div>

    MODX — Login (Личный кабинет пользователя)

    Урок, в котором рассмотрим, как в MODX Revolution можно на основании компонента Login создать ресурсы «Личный кабинет пользователя», «Изменение пароля», «Редактирование данных».

    Содержание страницы

    Страница «Изменение пароля»

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

    Содержимое ресурса «Изменения пароля» (форма и сниппет ChangePassword):

    [[!ChangePassword? &submitVar=`change-password` &placeholderPrefix=`cp.` &validateOldPassword=`1` &validate=`nospam:blank` &reloadOnSuccess=`0` &successMessage=`Ваш пароль успешно изменён`
    ]]
    <div> <div> <div> <div> <div><i></i> Изменение пароля</div> <div> <div>[[!+cp.error_message]]</div> <p>[[!+cp.successMessage]]</p> <form action="[[~[[*id]]]]" method="post"> <input type="hidden" name="nospam" value=""> <div> <label for="password_old">Старый пароль</label> <div> <input type="password" name="password_old" value="[[+cp.password_old]]"> <span> [[!+cp.error.password_old]] </span> </div> </div> <div> <label for="password_new">Новый пароль</label> <div> <input type="password" name="password_new" value="[[+cp.password_new]]"> <span> [[!+cp.error.password_new]] </span> </div> </div> <div> <label for="password_new_confirm">Введите новый пароль ещё раз</label> <div> <input type="password" name="password_new_confirm" value="[[+cp.password_new_confirm]]"> <span> [[!+cp.error.password_new_confirm]] </span> </div> </div> <input type="submit" value="Изменить пароль" name="change-password"> </form> </div> </div> </div> </div>
    </div>

    MODX Login — Форма изменения пароля пользователя

    MODX Login — Валидация данных формы, предназначенной для изменения пароля пользователя

    MODX Login — Успешное изменение пароля пользователя

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

    Имя параметра Описание
    submitVar Ключ, значение которого проверяется, перед тем как сниппет ChangePassword начнёт обрабатывать форму. Если в качестве значения этого параметра указать пустую строку или false, то сниппет ChangePassword будет обрабатывать форму при получении любого Post запроса. Значение ключа: change-password.
    placeholderPrefix Префикс, который будут иметь плейсхолдеры, устанавливаемые с помощью этого сниппета. Значение: cp..
    validateOldPassword Указывает, требовать ли от пользователя ввод текущего пароля для успешного установления нового. Значение: 1 (да, требовать).
    reloadOnSuccess Определяет необходимо ли перезагружать эту страницу (ресурс) после успешного установления нового пароля или нет. Если значение этого параметра установить равным 1, то данный сниппет перезагрузит эту страницу с параметром GET, предотвращающим повторную отправку данных на сервер. В противном случае (значение 0), сниппет ChangePassword выведет сообщение в плейсхолдер. Значение: 0 (вывести сообщение об успехе в плейсхолдер).
    successMessage Если параметр reloadOnSuccess имеет значение 0, то данный сниппет выведет указанное в successMessage сообщение в плейсхолдер [prefix].successMessage. Значение: Ваш пароль успешно изменён.

    Страница «Редактирование данных»

    Эта страница предназначена для изменения данных пользователя, таких как полное имя (fullname), телефон (phone), мобильный телефон (mobilephone), адрес (address), страна (country), город (city), веб-сайт (website). Логику работы по обновлению данных пользователя выполняет сниппет UpdateProfile из пакета Login.

    Содержимое ресурса «Редактирование данных» (сниппет UpdateProfile):

    [[!UpdateProfile? &validate=`fullname:required`]]
    <div> <div> <div> <div> <div><i></i> Редактирование данных</div> <div> <div>[[+error.message]]</div> [[+login.update_success:is=`1`:then=`[[%login.profile_updated? &namespace=`login` &topic=`updateprofile`]]`]] <form action="[[~[[*id]]]]" method="post"> <input type="hidden" name="nospam" value=""> <div> <label for="fullname">[[!%login.fullname? &namespace=`login` &topic=`updateprofile`]]</label> <div> <input type="text" name="fullname" value="[[+fullname]]"> <span> [[+error.fullname]] </span> </div> </div> <div> <label for="phone">[[!%login.phone]]</label> <div> <input type="text" name="phone" value="[[+phone]]"> <span> [[+error.phone]] </span> </div> </div> <div> <label for="mobilephone">[[!%login.mobilephone]]</label> <div> <input type="text" name="mobilephone" value="[[+mobilephone]]"> <span> [[+error.mobilephone]] </span> </div> </div> <div> <label for="address">[[!%login.address]]</label> <div> <input type="text" name="address" value="[[+address]]"> <span> [[+error.address]] </span> </div> </div> <div> <label for="country">[[!%login.country]]</label> <div> <input type="text" name="country" value="[[+country]]"> <span> [[+error.country]] </span> </div> </div> <div> <label for="city">[[!%login.city]]</label> <div> <input type="text" name="city" value="[[+city]]"> <span> [[+error.city]] </span> </div> </div> <div> <label for="website">[[!%login.website]]</label> <div> <input type="text" name="website" value="[[+website]]"> <span> [[+error.website]] </span> </div> </div> <div></div> <input type="submit" value="[[!%login.update_profile]]" name="login-updprof-btn"> </form> </div> </div> </div> </div>
    </div>

    MODX Login — Форма с помощью которой пользователь может обновить свои персональные данные

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

    Имя параметра Описание
    submitVar Имя кнопки submit, которая отправляет форму обновления профиля пользователя на сервер. Значение по умолчанию: login-updprof-btn
    validate Список (через запятую) полей для валидации (проверки). Указывается так: имя:валидатор (например, username: required, email:required). Валидаторы можно соединять в цепочки. Например, email:email:required.

    Страница «Личный кабинет»

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

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

    Содержимое ресурса «Личный кабинет» (сниппет Profile):

    [[!Profile? &prefix=`usr.`]]
    <div> <div><i></i> Личный кабинет пользователя</div> <div> <p>Имя пользователя: [[+usr.username]]</p> <p>Телефон: [[+usr.phone]]</p> <p>Мобильный телефон: [[+usr.mobilephone]]</p> <p>Email: [[+usr.email]]</p> <hr> <p>Адрес: [[+usr.address]]</p> <p>Страна: [[+usr.country]]</p> <p>Город: [[+usr.city]]</p> <p>Веб-сайт: [[+usr.website]]</p> <hr> <div> <i></i> <a href="[[~14]]" title="Изменение пароля">Изменение пароля</a> </div> <div> <i></i> <a href="[[~15]]" title="Редактирование данных">Редактирование данных</a> </div> </div> </div>
    </div>

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

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

    Имя параметра Описание
    prefix Префикс, который будут иметь плейсхолдеры, установленные этим сниппетом.
    user Необязательный параметр. Предназначен для указания пользователя, данные которого необходимо вывести. Задаётся параметр посредством указания идентификатора (id) или имени (username) пользователя. По умолчанию: текущий пользователь.
    useExtended Определяет необходимо ли устанавливать все расширяемые поля пользователя в качестве плейсхолдеров. Значение по умолчанию: 1 (да, необходимо).

    Источник: itchief.ru

    SHKUserProfile Личный кабинет покупателя - [MODX] Guru

    Сниппет выводит списох текущих и архив заказов пользователя. Пользователь может редактировать свои данные, указанные при регистрации. Работает совместно со сниппетом Paykeeper. Если статус заказа "Принят к оплате", то можно оплатить заказ через Robokassa или WebMoney. Также у пользователя есть возможность до оплаты отказаться от заказа или после оплаты повторить предыдущий заказ.

    Поддерживается плагин addWebUserFields, с помощью которого можно добавлять доп. поля для пользователя при регистрации.

    В шаблонах сниппета поддерживается PHx.

    Код сниппета:

    
    <?php
    return require "assets/snippets/shk_userprofile/shk_userprofile.inc.php";
    

    Парамеры:

    &id - ID сниппета. Полезно при вызове несколько раз на одной странице.

    &lang - язык.

    По умолчанию: язык системы управления.

    &profileTpl - Имя чанка или файл (@FILE:) с шаблоном для страницы редактирования профиля.

    По умолчанию: @FILE:assets/snippets/shk_userprofile/tpl/profile.tpl.

    &ordersListTpl - Шаблон (чанк) со списком заказов.

    По умолчанию: @FILE:assets/snippets/shk_userprofile/tpl/ordersList.tpl.

    &orderDescTpl - Шаблон просмотра состава заказа.

    По умолчанию: @FILE:assets/snippets/shk_userprofile/tpl/orderDesc.tpl.

    &purchasesListTpl - Шаблон для списка товаров в заказе на странице со списком заказов.

    По умолчанию отключено - false.

    Пример: `@FILE:assets/snippets/shk_userprofile/tpl/purchasesList.tpl`

    &menuTpl - Шаблон первого уровня меню.

    По умолчанию: @FILE:assets/snippets/shk_userprofile/tpl/menu.tpl.

    &subMenuTpl - Шаблон второго уровня меню.

    По умолчанию: @FILE:assets/snippets/shk_userprofile/tpl/subMenu.tpl.

    &excepDigitGroup - разделять числа цен в корзине на разряды.

    &oneLevelMenu=`true` - строить меню в один уровень.

    &additFieldsTpl - Шаблон для дополнительных полей.

    По умолчанию: @FILE:assets/snippets/shk_userprofile/tpl/addit_fields.tpl.

    &additFieldsHide - Не давать редактировать (и не показывать) пользователю доп. поля (чарез запятую).

    По умолчанию: count_purchase.

    Пример: &additFieldsHide=`count_purchase,distribution`.

    &showOrder=`true` - показать информацию о заказе и оплатить (если установлен сниппет Paykeeper). Используется на странице оплаты для незарегистрированного покупателя.

    &display - число заказов на странице при выводе архива заказов.

    &action - страница по умолчаню. Возможные значения: profile (профиль), curorders (текущие заказы), archorders (архив заказов).

    Можно передавать любые параметры сниппету Paykeeper (c префиксом "pay_").

    Пример: &pay_payment_method=`robokassa`.

    В шаблоне orderDescTpl этот сниппет выводится в месте плейсхолдера [+payment_snippet+].

    Примеры вызова:

    Шаблоны по умолчанию:

    [!SHKUserProfile!]

    Вызов с параметрами:

    [!SHKUserProfile? &purchaseTpl=`@FILE:assets/snippets/shk_userprofile/tpl/purchase.tpl`&oneLevelMenu=`true`!]

    На странице оплаты для незарегистрированного пользователя (вывод информации о заказе):

    [!SHKUserProfile? &showOrder=`true`&orderDescTpl=`@FILE:assets/snippets/shk_userprofile/tpl/orderDescNotRegd.tpl`!]

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

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