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.