Оглавление

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

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

Параметры

Параметры контроллера авторизации.

Название По умолчанию Описание
&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`.
&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.

Точное значение параметр &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_page_id не пуста — юзер будет перенаправляться на эту страницу, пока не заполнит своё имя.

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

Параметры шаблонов

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

Название По умолчанию Описание
&tplProfile tpl.Office.profile.form Чанк для вывода и редактирования профиля пользователя.
&tplActivate tpl.Office.profile.activate Чанк для оформления письма активации.
&providerTpl tpl.HybridAuth.provider Чанк для вывода ссылки на авторизацию или привязку сервиса HybridAuth к учетной записи.
&activeProviderTpl tpl.HybridAuth.provider.active Чанк для вывода иконки привязанного сервиса HybridAuth.

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

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

Вывести их в форме

<label for="extended.some_field">Какое-то поле</label>
<input name="extended[some_field]" value="[[+extended.some_field]]" id="extended.some_field">

Разрешить его для ввода

/* modParser */
[[!OfficeProfile?
    &profileFields=`username:50,email:50,fullname:50,extended[some_field]`
]]

/* pdoParser */
{$_modx->runSnippet('!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.