Використовуємо для користувача поля на сайті під керуванням 1с-бітрікс

Мої замітки призначені в основному для початківців веб-майстрів. Незважаючи на це, досвідчені розробники також знайдуть тут що-небудь цікаве для себе.

У своєму блозі я збираюся публікувати статті про сучасні веб-технологіях (HTML5. CSS3 та інших). Якщо в процесі роботи над проектами я відкриваю для себе «свіже» рішення будь-якої задачі, я записую сюди інформацію про це, що дозволяє мені при необхідності застосовувати отримані знання в майбутньому.

Сподіваюся інформація буде корисна для відвідувачів.

Спочатку додам нове призначене для користувача поле в розділ Інфоблоки. Тип поля - рядок. В системі підтримуються різні типи користувальницьких полів. Наприклад, ціле число, дата / час, файл, список і інші. Для своїх дослідів я вибрав інфоблок «Новини». У доданому поле я буду зберігати якесь значення, поле назву «UF_MY_FIELD».

Взагалі додати нове призначене для користувача поле можна в розділі налаштувань адміністративної частини сайту: Установки → Установки продукту → Користувальницькі поля. але правильніше буде це зробити на закладці «Доп. властивості »будь-якого розділу певного Інфоблоки, в разі якщо поле додається розділу.

Використовуємо для користувача поля на сайті під керуванням 1с-бітрікс

Тепер заповню одне з полів у розділу з ID рівним 5 - «Виставки» (інфоблок «Новини»). Значення цього поля буде «Test». Далі я покажу, як вивести значення цього поля на сторінці сайту, наприклад, в компоненті «Список розділів каталогу» (bitrix: catalog.section.list).

Спочатку створимо в корені сайту нову сторінку з ім'ям test.php. Розмістимо на ній компонент bitrix: catalog.section.list і зробимо настройки.

Використовуємо для користувача поля на сайті під керуванням 1с-бітрікс

Далі скопіюємо шаблон компонента в папку нашого шаблону сайту. Назвемо новий шаблон "test_fields". Створимо в папці «нового» шаблону файл result_modifier.php. У ньому ми будемо «обходити» масив $ arResult і додавати в нього дані з користувацьких полів розділів, якщо вони не порожні. У файлі буде міститися наступний код:

Для перевірки можна вивести змінений масив за допомогою print_r ().

У коді використовується функція CAllUserTypeManager :: GetUserFields (). вона повертає масив з інформацією про значення призначеного для користувача поля.

CAllUserTypeManager :: GetUserFields (
string entityID,
int ElemID,
string fieldName)

Тепер, коли значення призначеного для користувача поля знаходиться в масиві $ arResult. можна вивести його в шаблоні компонента. Наприклад, я виведу значення елемента масиву $ arSection [ "UF_MY_FIELD"] після назви розділу. Для цього змінимо код в шаблоні компонента:

І отримаємо результат:

Використовуємо для користувача поля на сайті під керуванням 1с-бітрікс

Незважаючи на те, що показаний в статті приклад не особливо корисний, проте, він показує як можна отримати доступ до значення користувальницьких полів в шаблоні компонента.