[Office] Версия 1.3.2 вложенные extended поля
Представляю вам новую версию Office, компонента для работы с пользователями на сайте.
Очень много вопросов возникает с extended полями, которые в этой версии были расширены, так что я решил написать максимально понятные примеры по их использованию.

Итак, все неразрешённые поля в профиле пользователя запрещены для заполнения. Они просто обнуляются при обработке формы, поэтому, первым делом, вам нужно разрешить extended в параметре &profileFields:
Там же вам нужно указывать и все остальные поля, которые вы разрешаете менять своим пользователям:
Если вы хотите ограничить максимальную длину значения, нужно указать число через двоеточие:
Обратите внимание, что ограничение длины для поля extended влияет на все его вложенные поля. Кстати, вот как их нужно добавлять в форму:
То есть, name у поля ввода должен быть массивом HTML формы:
Финальный штрих — вы можете указать все возможные вложенные поля с индивидуальными ограничениями длины:
И даже требовать их обязательного заполнения:
Все вложенные поля проходят проверку на нехорошие символы. Из них вырезаются HTML теги, скрипты и прочие попытки порчи вашего сайта.
Новая версия уже доступна в репозитории, можно обновляться.
Очень много вопросов возникает с extended полями, которые в этой версии были расширены, так что я решил написать максимально понятные примеры по их использованию.

Итак, все неразрешённые поля в профиле пользователя запрещены для заполнения. Они просто обнуляются при обработке формы, поэтому, первым делом, вам нужно разрешить extended в параметре &profileFields:
[[!OfficeProfile?
&profileFields=`extended`
]]Там же вам нужно указывать и все остальные поля, которые вы разрешаете менять своим пользователям:
[[!OfficeProfile?
&profileFields=`extended,username,fullname,email`
]]Если вы хотите ограничить максимальную длину значения, нужно указать число через двоеточие:
[[!OfficeProfile?
&profileFields=`extended:50,username:30,fullname:100,email`
]]Обратите внимание, что ограничение длины для поля extended влияет на все его вложенные поля. Кстати, вот как их нужно добавлять в форму:
<div class="form-group">
<label class="col-sm-2 control-label">Название поля</label>
<div class="col-sm-10">
<input type="text" name="extended[field][nested]" value="[[+extended.field.nested]]" class="form-control" />
<p class="help-block message"></p>
</div>
</div>То есть, name у поля ввода должен быть массивом HTML формы:
name="extended[field][nested]"А значение, которое подставится при загрузке формы — строка-плейсхолдер MODX:value="[[+extended.field.nested]]"Финальный штрих — вы можете указать все возможные вложенные поля с индивидуальными ограничениями длины:
[[!OfficeProfile?
&profileFields=`extended[field][nested:50],extended[field][nested2:10],extended[field2]`
]]И даже требовать их обязательного заполнения:
[[!OfficeProfile?
&profileFields=`extended[field][nested:50],extended[field][nested2:10],extended[field2]`
&requiredFields=`extended[field][nested],extended[field][nested2],extended[field2]`
]]Все вложенные поля проходят проверку на нехорошие символы. Из них вырезаются HTML теги, скрипты и прочие попытки порчи вашего сайта.
Новая версия уже доступна в репозитории, можно обновляться.
Комментарии: 27
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Чекбоксы в этой версии не сохраняются по умолчанию? В смысле мне не удалять отдельный плагин на сохранение чекбоксов?
Но я, что-то в этом сомневаюсь.
Просто думал вдруг ты добавил что-то типа плагина, который решает эту проблему, чтобы не дублировать мой.
А extended-поля пользователя — это действительно крутая тема, безграничный простор для фантазии на все случаи жизни. Поэтому и вопросы возникают…
То есть, что проверять, если я не знаю, что должно быть в форме? Пустые чекбоксы-то не отправляются, их как-бы и нет на стороне сервера.
Так что, без плагина пока никак.
Особенно удобно на фоне старых версий, когда вложенные доп. поля было невозможно подключать в office и все приходилось валить в одну кучу.
//Прямо бум какой-то на апдейты office в последнее время.
А бум, действительно имеет место быть:
Закрыл исходники → выросли продажи → больше запросов в поддержке → больше обновлений.
Вот так закрытие исходников улучшило качество дополнений. Парадокс.
Не совсем понял что за nested?
Это для элементов с множественными значениями типа чекбоксов?
nested — это «вложенный», по-английски.
О чём и анонс.
Обновляйся и проверяй.
Тогда в name запишется массив.
Например, если выбрали первый и третий, то массив будет такой:
Хочу вывести 2 чекбокса в личном кабинете на странице профиля через extendedfields:
В вызове сниппета добавил эти поля (extended[smsyes],extended[mailyes]).
Как сохранять значения отмеченных чекбоксов? (т.е. запоминать отмечена галочка или нет).
Пробовал также через скрытое поле:
После нажатия кнопки «Сохранить» value в скрытом инпуте меняется на «да», но после перезагрузки страницы — снова value=«extended[smsyes]»… что-то я делаю не так, но что именно не могу понять (
И еще, как потом вывести эти же чекбоксы на странице регистрации?
Office предназначен для быстрой регистрации.
Если ест возможность верните на общий доступ
Хотя это наглость, конечно, просить исходники платных компонентов у автора, чтобы их не покупать. Уж хотя бы не озвучивайте, что платить не планируете.
Забил группу полей extended, все нормально отрабатывает в фронте, но при открытии пользователя в админке,
страница не грузится с профилем — консоль показала следующее, что с этим делать?