Меню
RSS
Смена вида карточек товаров в catalog.section с иммитацией AJAX
 
Смена вида карточек товаров в catalog.section с иммитацией AJAX

Смену вида карточек товаров, в разделе каталога, можно реализовать с помощью сессии. Просто6 записывая в нее нужный вида шаблона или режима отображения.
 
С сесcией можно работать и без API битрикс, просто используя
$_SESSION
Код
session_start();
$_SESSION['LIST_PRODUCT_ROW_VARIANTS'] = $_POST['LIST_PRODUCT_ROW_VARIANTS'];
exit();

Так же, этот способ можно использовать и для сортировки товаров:
По новизне, алфавиту, свойствам и так далее.
Таким же образом записываем в сессию параметры и направление SORT для каталога
Изменено: Михаил Базаров - 09.10.2022 00:02:10
 
Спасибо помогли, вопрос такой, а как бы ещё оставить активной подсвеченой, иконку с текущеим отображением товара?
 
В js
Код
$('.catalog_sort_panel_view button').click(function () {
    var viewVariant = $(this).data('view');

    // Удалить класс "active" у всех кнопок
    $('.catalog_sort_panel_view button').removeClass('active');

    // Добавить класс "active" к выбранной кнопке
    $(this).addClass('active');

    $.post('/local/ajax/view_catalog.php', {
        LIST_PRODUCT_ROW_VARIANTS: viewVariant,
    }, function (data) {
        location.reload();
    });
});

Для кнопок, переносим код получения сессии до них и
Код
<?php
$session = \Bitrix\Main\Application::getInstance()->getSession();

if ($session->has('LIST_PRODUCT_ROW_VARIANTS')) {
    $LIST_PRODUCT_ROW_VARIANTS = $session['LIST_PRODUCT_ROW_VARIANTS'];
}

if (empty($LIST_PRODUCT_ROW_VARIANTS)) {
    $LIST_PRODUCT_ROW_VARIANTS = "[{'VARIANT':'3','BIG_DATA':false}]";
}

// Получите значение выбранной вьюхи
$selectedView = json_decode($LIST_PRODUCT_ROW_VARIANTS, true)[0]['VARIANT'];
?>

<div class="catalog_sort_panel_view">
    <button data-view="grid" <?php echo $selectedView === 'grid' ? 'class="active"' : '' ?>>
        <i class="fa fa-th"></i>
    </button>
    <button data-view="list" <?php echo $selectedView === 'list' ? 'class="active"' : '' ?>>
        <i class="fa fa-list"></i>
    </button>
</div>

Ну и стилизуем выбранные кнопки через их class="active" (будет у выбранного варианта)
Изменено: Михаил Базаров - 21.09.2023 10:30:30
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Если пользователь авторизован то... API Битрикс

Достаточно часто, при создании сайта на битрикс нужно вывести в шаблон или компонент, некую информацию, доступную только...

Проверка на наличие элементов, текущего пользователя, в заданном инфоблоке.

Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно воспользоваться API: CUser и CIB...

Основные функции вывода в шаблонах Битрикс

Знаю, что все их знают. Но иногда не бывает лишним собрать все самое используемое в одну кучку. Ведь у каждого бывают мо...

Вывести список всех пользователей с необходимой информацией

Если нужно, на какой-либо странице сайта, вывести всех пользователей из группы "Зарегистирированные пользователи", прост...

Информация о заказах и содержимое корзины текущего пользователя.

В процессе разработки сайта могут понадобиться рецепты приведенные ниже. Использовать можно как угодно и где угодно, я л...

Вывести товары в каталоге перебрав их по свойству и разделив на секции.

Задача: В каталоге, у товаров, есть свойство типа список с названием "Тип изделия" и кодом "TIP_IZDELIYA&...

Добавить свойство в административную форму заказа

Задача, кастомизировать административную форму заказа: добавить свойство заказа в шапку формы, в виде картинки. На сайте...

Создание PWA для сайта на 1С-Битрикс

Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего на 1С-Битрикс, данная заметка ...

Моментальная фильтрация на AJAX в умном фильтре 1С-Битрикс

При штатной установке, интернет-магазина на 1С Битрикс, умный фильтр по товарам, показывает колличество найденных товаро...