Skip to content
Office
Office
Универсальный личный кабинет покупателя
  1. Компоненты
  2. Office
  3. Контроллеры
  4. Профиль

Профиль ​

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

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

НазваниеПо умолчаниюОписание
&tplProfiletpl.Office.profile.formЧанк для вывода и редактирования профиля пользователя.
&tplActivatetpl.Office.profile.activateЧанк для оформления письма активации.
&profileFieldsвсе основные поля профиляСписок разрешенных для редактирования полей юзера, через запятую. Также можно указать максимальную длину значений, через двоеточие. Например, &profileFields=`username:25,fullname:50,email` .
&requiredFieldsusername,email,fullnameСписок обязательных полей при редактировании. Эти поля должны быть заполнены для успешного обновления профиля. Например, &requiredFields=`username,fullname,email` .
&HybridAuth1Включить интеграцию с HybridAuth, если он установлен.
&providersСписок провайдеров авторизации HybridAuth, через запятую. Все доступные провайдеры находятся тут {core_path}components/hybridauth/model/hybridauth/lib/Providers/. Например, &providers=`Google,Twitter,Facebook` .
&providerTpltpl.HybridAuth.providerЧанк для вывода ссылки на авторизацию или привязку сервиса HybridAuth к учетной записи.
&activeProviderTpltpl.HybridAuth.provider.activeЧанк для вывода иконки привязанного сервиса HybridAuth.
&avatarParams{"w":200,"h":200,"zc":0,"bg":"ffffff","f":"jpg"}JSON строка с параметрами конвертации аватара при помощи phpThumb.
&avatarPathimages/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, пользователь принудительно будет отправлен заполнять свой профиль, и пока не заполнит все требуемые поля - оттуда не выйдет.

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

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

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

    modx
    <label for="extended.some_field">Какое-то поле</label>
    <input name="extended[some_field]" value="[[+extended.some_field]]" id="extended.some_field">
  2. Разрешить его для ввода

    modx
    [[!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.