Jump to main content Jump to doc navigation

Что такое пользовательские поля?

Login сохраняет пользовательские («Extended») поля через extended-поле профиля пользователя Revolution. MODX хранит данные в JSON-объекте, который можно получить в любой момент.

Login делает это через свойство &useExtended в сниппетах Register, UpdateProfile и Profile. По умолчанию включено.

Использование

Добавьте поле в формы Register и UpdateProfile. Сниппеты проверят POST-поля, которых нет в таблице User, и сохранят их как extended. При Profile поля развернутся в плейсхолдеры. Пример фрагмента формы Register:

[[!Register? &submitVar=`go`]]
...
<label>Favorite Color:
<span class="error">[[+error.color]]</span>
<input type="text" name="color:required" value="[[+color]]" />
</label>
...
<input type="submit" name="go" value="Register!" />

Поле color сохранится в extended. На custom-поля работают валидаторы, например :required в этом примере.

Login не сохранит поле из &submitVar. Здесь go не попадёт в extended, потому что передано в &submitVar.

Вывод через Profile:

[[!Profile]]

<p>[[+username]]'s Favorite Color: [[+color]]</p>

То же в форме UpdateProfile:

[[!UpdateProfile]]
...
<label>Favorite Color:
<span class="error">[[+error.color]]</span>
<input type="text" name="color:required" value="[[+color]]" />
</label>

Прямое создание и заполнение контейнеров атрибутов

  <input type="hidden" name="january[Spaces]" value="" />
  <input type="hidden" name="january[Tables]" value="" />
  <input type="hidden" name="january[Chairs]" value="" />
  <input type="hidden" name="january[NeedsElectric]" value="" />
  <input type="hidden" name="january[Misc]" value="" />

Исключение полей из сохранения в extended

У Register и UpdateProfile есть свойство excludeExtended со списком имён полей через запятую. Пример для полей nospam и customProp:

[[!Register? &excludeExtended=`nospam,customProp`]]

В менеджере

Extended-поля можно редактировать в менеджере: пользователь, вкладка «Extended Fields». Если добавляете поля там, включите их в формы UpdateProfile и/или Register.

Если extended-поле в контейнере, например test -> boo:

Доступ через точечную нотацию:

[[!Profile]]

Value of nested attribute: [[+test.below]]

... выведет boo!.

См. также

  1. Login.Login
  2. Login.Profile
  3. Login.UpdateProfile
  4. Login.Register
    1. Register.Example Form 1
  5. Login.ConfirmRegister
  6. Login.ForgotPassword
  7. Login.ResetPassword
  8. Login.ChangePassword
  9. Login.Tutorials
    1. Login.Basic Setup
    2. Login.Extended User Profiles
    3. Login.Request Membership
    4. Login.User Profiles
    5. Login.Using Custom Fields
  10. Login.Using Pre and Post Hooks

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • deJaya
  • JT Skaggs
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$204 per month—let's make that $500!

Learn more