Отримати значення поля користувача можна за допомогою методуGetListвідповідного класу.

Значення поля користувача для користувачаможна отримати таким чином:

Щоб отриматизначення поля користувача певного користувача, тип поля - рядок, необхідно скористатися методом GetList класуCUser. При цьому як четвертий аргумент даному методу необхідно передати масив з ключемSELECT, значеннями якого є список кодів властивостей, які необхідно отримати.

Якщо тип поля користувача список, то для отримання значення (або значень, якщо можливий множинний вибір) поточного користувача потрібно скористатися методом GetList класуCUserFieldEnum.

Якщо необхідноотримати список всіх значень поля користувача об'єкта USER типу список, то слід скористатися наступним кодом:

Длявибору значення поля користувача у розділуінформаційного блоку можна скористатися методом CIBlockSection:GetList:

Отриманнязначення поля користувача типу файл конкретного розділуінфоблоку:

Так як поля користувача можна використовувати не тільки з розділами інформаційного блоку, але і з будь-якими іншими сутностями, то длявибору значень по ідентифікатору сутностівикористовується класCUserTypeManager. Примірник цього класу вже знаходиться в глобальній змінній $USER_FIELD_MANAGER .

В результаті ми отримаємо масив містить у собі всю інформацію про поле та його значення для конкретного об'єкта.

Використання властивостей користувача на прикладі додаткових полів у передплаті

Завдання: передплатником буде вказуватися підлога, і в залежності від цьоговибору в листі розсилки вона або він отримає "Шановна" або "Шановний" як звернення.

У рішенні використовується демо-дистрибутив з налаштованим функціоналом розсилки. Для використання описаного функціоналу на ваших проектах необхідно провести роботи:

Рішення. Задамо ідентифікатор сутності, до якої будуть прив'язуватися значення додаткових властивостей:MY_SUBSCRIPTION. Як унікальний ідентифікатор об'єктів цієї сутності виступатимутьb_subscription.ID.

На сторінці поля користувача ( Налаштування > Налаштування продукту > Користувальницькі поля ) відкриємо форму створення нового поля.

  • Тип даних- Список
  • Об'єкт- MY_SUBSCRIPTION
  • Код поля- UF_GENDER

Інші поля не заповнюємо, натискаємо кнопкуЗастосувати.

На вкладціСписокзадаємо можливі значення:ЖіночийтаЧоловічий. Застосовуємо внесені зміни.

Кастомізація компонента subscribe.edit

Після копіювання компонента у свій простір імен замінюємо дзвінок на сторінці /personal/subscribe/subscr_edit.php на шлях до копійованого компонента.

Для виведення значення властивостей підписки у файліcomponent.phpпісля

додаємо читання значень із бази даних

У файліsetting.phpшаблону виводимо приблизно таке:

Для збереження значень у базі даних у файліcomponent.phpпісля рядків додаємо код встановлення значень властивостей

Для повноти дій цього поля в адміністративній частині вказуємо:

Створіть нову передплату (або відредагуйте існуючу) та вкажіть підлогу передплатника.

Тепер треба зробити так, щоб #GENDER_HELLO# замінюватиметься наШановна/Шановнийзалежно від статі. Створюємо обробник події BeforePostingSendMail: