Профиль
Параметры и описание контроллера профиль в компоненте Office
Оглавление
Этот контроллер предназначен для редактирования профиля пользователя. Учитывая, что ваши пользователи заходят на сайт через 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
.
Фильтрация
Так как редактирование профиля пользователем позволяет ему сохранять разные данные в БД вашего сайта, которые потом будут выводиться в админке, а возможно, и на сайте — все эти данные принудительно фильтруются.
Правила такие:
- Обязательно вырезаются все HTML теги во всех полях, кроме comment.
- Все поля, кроме comment, фильтруются регулярным выражения, указанным в системной настройке office_sanitize_pcre.
Время запросов: 0,1258 s
Количество запросов: 27
Источник: cache