Профиль

26 октября 2016, 06:23

Этот контроллер предназначен для редактирования профиля пользователя. Учитывая, что ваши пользователи заходят на сайт через email, им нужно будет заполнять свои данные, например Ф.И.О.

Также он позволяет сменить email, с обязательной проверкой.

Для упрощения работы вместе с контроллером поставляется сниппет OfficeProfile, в котором уже прописаны все возможнные параметры вызова.

Параметры сниппета

Название По умолчанию Описание
&tplProfile tpl.Office.profile.form Чанк для вывода и редактирования профиля пользователя.
&tplActivate tpl.Office.profile.activate Чанк для оформления письма активации.
&profileFields все основные поля профиля Список разрешенных для редактирования полей юзера, через запятую. Также можно указать максимальну. длину значений, через двоеточие. Например, &profileFields=`username:25,fullname:50,email`.
&requiredFields username,email,fullname Список обязательных полей при редактировании. Эти поля должны быть заполнены для успешного обновления профиля. Например, &requiredFields=`username,fullname,email`.
&HybridAuth 1 Включить интеграцию с HybridAuth, если он установлен.
&providers Список провайдеров авторизации HybridAuth, через запятую. Все доступные провайдеры находятся тут {core_path}components/hybridauth/model/hybridauth/lib/Providers/. Например, &providers=`Google,Twitter,Facebook`.
&providerTpl tpl.HybridAuth.provider Чанк для вывода ссылки на авторизацию или привязку сервиса HybridAuth к учетной записи.
&activeProviderTpl tpl.HybridAuth.provider.active Чанк для вывода иконки привязанного сервиса HybridAuth.
&avatarParams {"w":200,"h":200,"zc":0,"bg":"ffffff","f":"jpg"} JSON строка с параметрами конвертации аватара при помощи phpThumb. По умолчанию - "{"w":200,"h":200,"zc":0,"bg":"ffffff","f":"jpg"}".
&avatarPath images/users/ Директория для сохранения аватаров пользователей внутри MODX_ASSETS_PATH. По умолчанию - "images/users/".

Точное значение параметр &profileFields по умолчанию:

username:50,email:50,fullname:50,phone:12,mobilephone:12,dob:10,gender,address,country,city,state,zip,fax,photo,comment,website,specifiedpassword,confirmpassword

Системные настройки

Этот контроллер тоже имеет свою системную настройку со стандартным id, которая заполняется при его первом вызове. Также он проверяет другую системную настройку office_profile_required_fields, которая требует заполнение полей профиля.

Если, например, у пользователя не заполнено имя и office_profile_page_id не пуста - юзер будет перенаправляться на эту страницу, пока не заполнит его.

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

Расширенные поля

Контроллер позволяет редактировать расширенные поля профиля пользователя, типа extended.some_field. Для этого вам нужно:

  1. Вывести их в форме
    <label for="extended.some_field">Какое-то поле</label>
    <input name="extended[some_field]" value="[[+extended.some_field]]" id="extended.some_field">
  2. Разрешить его для ввода
    [[!OfficeProfile?
    &profileFields=`username:50,email:50,fullname:50,extended[some_field]`
    ]]

    Обратите внимание, что поле extended - это массив, поэтому при отправке формы оно указывается как extended[some_field], а при выставлении плейсхолдеров как extended.some_field.

Фильтрация

Так как редактирование профиля пользователем позволяет ему сохранять разные данные в БД вашего сайта, которые потом будут выводиться в админке, а возможно, и на сайте - все эти данные принудительно фильтруются.

Правила такие:

  1. Обязательно вырезаются все HTML теги во всех полях, кроме comment.
  2. Все поля, кроме comment, фильтруются регулярным выражения, указанным в системной настройке office_sanitize_pcre.

Предыдущий документ
Авторизация
Следующий документ
История заказов MS2