Розробка сайту музею на 1С-Бітрікс
Сайт музею балансує між двома функціями: представництво колекції в цифровому просторі і комерційна площадка з продажу квитків. На 1С-Бітрікс обидві задачі вирішуються штатними модулями — iblock для каталогізації, sale для квитків — з доробками під специфіку закладів культури.
Каталог колекцій та експозицій
Фондова колекція музею може нараховувати тисячі і десятки тисяч одиниць зберігання. Структура інфоблоку Collections проектується з урахуванням музейних стандартів опису:
- PROPERTY_INVENTORY_NUM — інвентарний номер
-
PROPERTY_AUTHOR — автор/майстер (прив'язка до інфоблоку
Persons) - PROPERTY_DATING — датування (рядок — «XV століття», «1890-і», «ок. 1650 р.»)
- PROPERTY_TECHNIQUE — техніка/матеріал (множинний довідник)
- PROPERTY_DIMENSIONS — розміри (рядок — «120×80 см, полотно»)
- PROPERTY_COLLECTION — належність до колекції (прив'язка)
-
PROPERTY_HALL — зал експозиції (прив'язка до інфоблоку
Halls) - PROPERTY_HI_RES_PHOTO — фото високої роздільної здатності (файл)
- PROPERTY_AUDIO_GUIDE — аудіоописання (файл MP3)
Для фотографій налаштовується модуль обробки зображень: при завантаженні генеруються 4 варіанти — превью 300px для списків, середнє 800px для карточки, крупне 2000px для зуму і watermarked-версія для захисту від несанкціонованого використання. Watermark накладається через обробник OnFileSave.
Пошук по колекції реалізується через модуль search з фасетними фільтрами: по епосі, техніці, автору, залу. Для повнотекстового пошуку підключається Elasticsearch через кастомний SearchProvider — штатний пошук Бітрікс не справляється з обсягами музейних описів.
Онлайн-продаж квитків
Модуль sale адаптується під квиткову специфіку. Квиток — це товар у каталозі з властивостями:
| Властивість товара | Призначення |
|---|---|
| Тип квитка | Дорослий / Дитячий / Пільговий / Сімейний |
| Експозиція | Постійна / Тимчасова виставка «N» |
| Сеанс | Дата + часовий слот (10:00–12:00, 12:00–14:00...) |
| Ліміт | Максимум відвідувачів на сеанс |
Ліміт відвідувачів — критична функція. При кожному продажу обробник OnSaleOrderAdd зменшує лічильник доступних місць для сеансу. Коли залишок досягає нуля, слот автоматично приховується з віджета вибору. Лічильник зберігається в окремому HL-блоці SessionSlots, а не у властивості товара — це виключає проблеми з конкурентним доступом при одночасних покупках. Для гарантії атомарності використовується UPDATE ... SET count = count - 1 WHERE count > 0 на рівні SQL.
Пільгові категорії (пенсіонери, студенти, інваліди, багатодітні) налаштовуються через правила кошика модуля sale. При виборі пільгової категорії покупець завантажує скан документа — поле у формі замовлення через ORDER_PROP типу «Файл». Менеджер верифікує документ перед підтвердженням.
Віртуальні екскурсії та онлайн-колекції
Це спрямування перетворює сайт музею з вітрини квиткової каси в самостійну культурну платформу. Розберімо технічну реалізацію.
360° панорами залів. Зйомка виконується сферичною камерою (Insta360, Ricoh Theta). Результат — еквірівносторонні проекції у форматі JPEG або TIFF розширенням 8K–12K. На сайті панорами відображаються через JavaScript-бібліотеку Pannellum (open source, без ліцензійних відрахувань) або Marzipano.
Панорами зберігаються в інфоблоці VirtualTours. Кожен елемент — один зал або фрагмент експозиції:
- PROPERTY_PANO_IMAGE — файл панорами
- PROPERTY_HOTSPOTS — JSON з координатами точок інтересу (yaw, pitch, type, target)
- PROPERTY_LINKED_PANO — пов'язані панорами (переходи між залами)
- PROPERTY_AUDIO_TRACK — фонове аудіосупровід
Hotspots бувають трьох типів:
-
info — при кліку відкривається карточка експоната (підтягується з інфоблоку
Collections) - scene — перехід в інший зал (інша панорама)
- audio — запуск аудіогіда для конкретного експоната
Редагування hotspots реалізується через кастомний адміністративний інтерфейс: менеджер відкриває панораму в адміні, кликає на точку і заповнює властивості. Координати yaw/pitch обчислюються з позиції кліку. Ніякого ручного введення градусів.
Аудіогіди. MP3-файли прив'язані до експонатів. При натиску на hotspot або на карточку експоната запускається HTML5 Audio Player з візуалізацією прогресу. Аудіогіди завантажуються через адміністративний інтерфейс з автоматичною конвертацією у формат AAC для економії трафіку (через FFmpeg на сервері, виклик з агента).
Онлайн-колекція з зумом. Для детального розгляду експонатів підключається OpenSeadragon — переглядач зображень з технологією Deep Zoom. Вихідне фото високої роздільної здатності (50–100 Мп для живопису) нарізається на тайли утилітою vips dzsave. Користувач масштабує зображення плавно, завантажуються лише видимі тайли — сторінка не зависає навіть на мобільних пристроях.
Тайли зберігаються на окремому домені cdn.museum-site.ru або в S3-сумісному сховищі. Модуль CDN Бітрікс налаштовується на раздачу статики з цього домену.
Афіша заходів
Інфоблок Events містить лекції, майстер-класи, концерти, ночі музеїв. Властивості:
- Дата і час початку/кінця (два властивості типу «Дата/час»)
- Вікове обмеження (список: 0+, 6+, 12+, 16+, 18+)
- Вартість (число, 0 = безплатно)
- Прив'язка до виставки (якщо захід у рамках виставки)
- Реєстрація (так/ні + ліміт учасників)
Вивід на головній — компонент bitrix:news.list з фільтром >=DATE_ACTIVE_FROM за поточною датою і сортування за датою. Пройдені заходи автоматично йдуть в архів, але залишаються доступні за прямою посиланням — для SEO і для історії.
Для афіші генерується iCal-файл (формат .ics), який відвідувач може додати в Google Calendar або Apple Calendar одним кліком.
Доступність (WCAG 2.1)
Музеї як державні установи зобов'язані забезпечувати доступність сайту для людей з обмеженими можливостями. Вимоги WCAG 2.1 рівня AA:
- Контрастність тексту — співвідношення не менше 4.5:1 (перевіряється axe-core при складанні)
- Навігація з клавіатури — всі інтерактивні елементи доступні через Tab, фокус візуально виділен
-
alt-тексти — для кожного експоната обов'язкове поле в інфоблоці, без нього елемент не проходить валідацію при збереженні (обробник
OnBeforeIBlockElementUpdate) -
Режим підвищеної контрастності — перемикач в шапці, клас
high-contrastна<body>, альтернативна кольорова схема через CSS-змінні -
Масштабування тексту — верстка в
rem, базовийfont-sizeзмінюється перемикачем -
Субтитри — для відеоматеріалів обов'язковий трек
<track kind="captions">
Schema.org та SEO
Для музею застосовується розмітка типу Museum з вкладеними об'єктами:
-
Museum— основна карточка з адресою, часами роботи, контактами -
ExhibitionEvent— для тимчасових виставок -
Event— для заходів афіші -
CreativeWork— для окремих експонатів в онлайн-колекції -
Offer— для квитків з ціною і доступністю
Розмітка генерується автоматично через JsonLd-компонент, який збирає дані з інфоблоків і формує JSON-LD-блок у <head> сторінки. Шаблон розмітки налаштовується в адміністративному розділі — маркетолог може додати поля без участі розробника.







