Галереи

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Галереи», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Галереи

Тут может не хватать некоторых данных — дополним в ближайшее время

  • нужны правки под стандарт написания

Галерея создаётся с использованием стандартных нод-картинок и карточки. В манифесте блока укажите расширение landing_gallery_cards.

'assets' => array(
    'ext' => array('landing_gallery_cards'),
),

В разметке обозначьте контейнер классом .js-gallery-cards, внутри него добавьте необходимое количество нод . Каждому изображению добавьте атрибут data-fancybox=»gallery». Этот служебный параметр может иметь любое значение, кроме пустого.

Галерея имеет только одну версию изображения, а не миниатюру и полную, как обычно. Поэтому используйте картинки достаточного размера или масштабируйте их средствами браузера (ограничивать ширину/высоту). Скрипт галереи обернёт каждую картинку в ссылку и по клику будет открывать изображение, указанное в src.

Опционально допускается атрибут data-link-classes=»d-block g-pos-rel».

Оба класса добавляются к ссылке-обёртке вокруг изображения, они необходимы для вёрстки.

Галереи могут совмещаться с другими возможностями. Например, картинки могут быть карточками, чтобы клиент добавлял столько, сколько нужно. Или же это может быть слайдер, каждая из картинок которого может открываться в большом размере. Примеры можно увидеть в наших стандартных блоках.

Предупреждение
При совмещении галереи и карусели (слайдера) нужно инициализировать ассеты в определённом порядке: сначала карусель, затем — галерею! Другие ассеты, при их наличии, могут идти в любой последовательности. Смотри код ниже.

'assets' => [
    'ext' => ['landing_carousel', 'landing_gallery_cards'],
],

Практический пример и готовый код на PHP

<div class="landing-block g-pt-80 g-pb-80">
    <div class="container">
        <div class="js-gallery-cards row">
            <div class="landing-block-node-card js-animation slideInUp text-center col-lg-3 col-md-4 col-sm-6 g-mb-30">
                <div class="g-pos-rel d-inline-block">
                    <img class="landing-block-node-card-img h-100 g-width-auto g-max-width-100x g-max-height-350 g-max-height-500--md"
                        src="https://cdn.bitrix24.site/bitrix/images/landing/business/270x481/img1.jpg"
                        data-fancybox="gallery"
                        data-link-classes="d-block g-pos-rel" alt=""/>
                </div>
            </div>

            <div class="landing-block-node-card js-animation slideInUp text-center col-lg-3 col-md-4 col-sm-6 g-mb-30">
                <div class="g-pos-rel d-inline-block">
                    <img class="landing-block-node-card-img h-100 g-width-auto g-max-width-100x g-max-height-350 g-max-height-500--md"
                        src="https://cdn.bitrix24.site/bitrix/images/landing/business/270x481/img2.jpg"
                        data-fancybox="gallery"
                        data-link-classes="d-block g-pos-rel" alt=""/>
                </div>
            </div>

            <div class="landing-block-node-card js-animation slideInUp text-center col-lg-3 col-md-4 col-sm-6 g-mb-30">
                <div class="g-pos-rel d-inline-block">
                    <img class="landing-block-node-card-img h-100 g-width-auto g-max-width-100x g-max-height-350 g-max-height-500--md"
                        src="https://cdn.bitrix24.site/bitrix/images/landing/business/270x481/img3.jpg"
                        data-fancybox="gallery"
                        data-link-classes="d-block g-pos-rel" alt=""/>
                </div>
            </div>

            <div class="landing-block-node-card js-animation slideInUp text-center col-lg-3 col-md-4 col-sm-6 g-mb-30">
                <div class="g-pos-rel d-inline-block">
                    <img class="landing-block-node-card-img h-100 g-width-auto g-max-width-100x g-max-height-350 g-max-height-500--md"
                        src="https://cdn.bitrix24.site/bitrix/images/landing/business/270x481/img4.jpg"
                        data-fancybox="gallery"
                        data-link-classes="d-block g-pos-rel" alt=""/>
                </div>
            </div>

        </div>
    </div>
</div>

💡 Экспертное мнение и рекомендации

Практические рекомендации:

  • При написании кастомных компонентов для «Галереи» всегда разделяйте бизнес-логику и представление (шаблон).
  • Используйте отладку SQL-запросов через конструкцию $wpdb->last_query или стандартный трекер Битрикса, чтобы контролировать нагрузку.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Добавить лид через веб-формуДобавить лид через веб-форму

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Добавить лид через веб-форму». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции. Добавить

Получить список служб доставки sale.delivery.getlistПолучить список служб доставки sale.delivery.getlist

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить список служб доставки sale.delivery.getlist», проанализируем лучшие практики

Обновить комментарий crm.timeline.comment.updateОбновить комментарий crm.timeline.comment.update

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Обновить комментарий crm.timeline.comment.update», разберем архитектурные особенности и предоставим