Дата публикации
3 Ноября 2019
Дата изменения
5 Июля 2020
Уникальных просмотров
2.324

Оглавление

Этот контроллер предназначен для редактирования профиля пользователя. Учитывая, что ваши пользователи заходят на сайт через 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.

Благодарность автору

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

Один из самых популярных способов поблагодарить автора, воспользоваться сервисом Яндекс.Деньги.

Время работы: 0,1258 s
Время запросов: 0,1258 s
Количество запросов: 27
Источник: cache