• Битрикс умный фильтр AJAX мгновенная фильтрация?

    @PetrPo
    Могу супер примитивный вариант скинуть, который сам накидал вчера. Скопировал просто комплексный компонент catalog и почти все удалил оттуда, так что там очень мало параметров в компоненте, но для минимальной работы мне хватило. Сравнишь файл .parameters.php с битриксовым каталогом если другие параметры нужны будут.
    ссылка

    1. Закинешь в /bitrix/components/
    2. Папка petrpo - это типа как пространство имен, можешь заменить на свое какое-нибудь, название компонента там catalog - можешь по-другому назвать.
    3. Внутри компонента шаблон .default в файле template.php подключаются фильтр + section (bootstrap_v4), можешь туда же свою сортировку поставить, шаблон не кешируется, так что проблем не будет
    4. Потом в публичной части изменить страницу в визуальном редакторе и joxi.ru/nAyWBZetgONoEm
    ставишь компонент, настраиваешь и радуешься.
  • Как сделат что бы Bitrix искал по свойству инфоблока типа Файл/Множественный?

    @PetrPo
    Вот эту строку
    $arFile = CFile::GetFileArray($arRes['PROPERTY_FILE_VALUE']);

    надо изменить
    $arFile = CFile::GetFileArray($arRes['PROPERTY_DOCUMENTS_VALUE']);

    и переиндексацию сделай
  • Как сделат что бы Bitrix искал по свойству инфоблока типа Файл/Множественный?

    @PetrPo
    А вообще лучше файл грузить с названиями на латинице, в настройках свойства есть галка "Выводить поле для описания значения" в нем уже указывать название на кириллице.
    Тогда, конечно, свой шаблон поправишь что-бы DESCRIPTION файла выводился и в моем обработчике вместо ORIGINAL_NAME также DESCRIPTION запишешь
  • Битрикс умный фильтр AJAX мгновенная фильтрация?

    @PetrPo
    Как-то я не задумывался о комплексном компоненте на главной. Точно могу сказать, что с url-ми проблемы будут.
    Велосипед строить в твоем случае все равно придется, раз стандартно не работает. Просто раз уж столько функционала закладываешь - фильтр, сортировка, вывод элементов и т.д. напиши свой компонент. На текущий момент он у тебя будет даже проще чем комплексный.

    Это решит несколько проблем:
    - настройка параметров будет происходить в одном месте, а не так что поменял тип цены в catalog.section, надо менять в smart.filter
    - сможешь оставить/добавить только те параметры, которые тебе нужны. Например сможешь сделать multiselect с выбором полей для сортировки, ну тут уже на что фантазии хватит...
    - ну и проблема с ajax решится, в первом комменте я писал что ни у фильтра, ни у section нет параметра AJAX_MODE. Он есть у комплексного компонента, то есть когда он магически обновляется, обновляются и компоненты внутри него, вот тебе такую же хрень надо сделать
  • Битрикс умный фильтр AJAX мгновенная фильтрация?

    @PetrPo
    Ты все продолжаешь свой велосипед собирать))

    Как можно задебажить? Что может не так работать?

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

    Но могу объяснить почему не фильтруется. А не фильтруется потому что ты велосипед делаешь, видишь какой замкнутый круг получился)). Люди, так сказать с опытом, бывает е.утся с этим битриксовым ajax-ом не в силах понять, а ты решил от простой сортировки сразу к магии битрикса перейти.

    Ладно, если по существу и на пальцах, когда ставишь параметр AJAX_MODE => 'Y', к примеру у smart.filter, то при ajax-запросе обновляется этот самый smat.filter, компонент catalog.section понятия не имеет о том, что ты обновил фильтр.
    Если чуть глубже, когда ты ставишь этот флаг, создается не только экземпляр класса CBitrixComponent, а еще и CComponentAjax - вот тут и происходит магия битриксовых костылей.

    Думаю вариантов решения несколько, но на мой взгляд самый нормальный - это тебе понять почему в комплексном компоненте каталога фильтр + section работают нормально, а когда ты их отдельно ставишь - не работает. Подсказка: файл section.php в комплексном компоненте - ни у фильтра, ни у section нет параметра AJAX_MODE.
  • Битрикс,умный фильтр,5 колонок, реально?

    @PetrPo
    Ну да, че-то я не понятно написал. Это часть строки)) вот полностью
    <div class="smart-filter <?=($bColumns ? 'smart--filter--columns__'.$columnsCount : '');?> mb-4 <?=$templateData["TEMPLATE_CLASS"]?> <?if ($arParams["FILTER_VIEW_MODE"] == "HORIZONTAL") echo "smart-filter-horizontal"?>">
  • Битрикс,умный фильтр,5 колонок, реально?

    @PetrPo
    в template.php обертка всего фильтра
  • Битрикс,умный фильтр,5 колонок, реально?

    @PetrPo
    И старайся в исключительных ситуациях использовать !important
  • Битрикс,умный фильтр,5 колонок, реально?

    @PetrPo
    Не стоит просто для класса .col-md-4 стили прописывать, если вдруг на странице в других блоках этот класс будет, сломаешь верстку, добавь родительский селектор .smart-filter .col-md-4

    Про параметр. я бы сделал так:

    1. В файле .parameters.php шаблона добавляешь параметр
    if($arCurrentValues["FILTER_VIEW_MODE"] == 'horizontal') {
    	$arTemplateParameters['COLUMNS'] = array(
    		'PARENT' => 'VISUAL',
    		'NAME' => 'Количество колонок', // выносишь в lang
    		'TYPE' => 'LIST',
    		'VALUES' => array(
    			'2' => 2,
    			'3' => 3,
    			'4' => 4,
    			'5' => 5,
    		),
    		'DEFAULT' => '5',
    	);
    }

    В начале поставил проверку
    $arCurrentValues["FILTER_VIEW_MODE"] == 'horizontal'
    так как для вертикального отображения этот параметр не нужен, а параметр FILTER_VIEW_MODE имеет флаг REFRESH, то при смене этого параметра, твой параметр будет появляться и исчезать соответственно.

    2. В template.php я бы убрал
    <div class="<?if ($arParams["FILTER_VIEW_MODE"] == "HORIZONTAL"):?>col-sm-6 col-md-4<?else:?>col-12<?endif?> mb-2 smart-filter-parameters-box bx-active">

    заменил бы на
    <div class="<?if ($arParams["FILTER_VIEW_MODE"] != "HORIZONTAL"):?>col-12<?endif?> mb-2 smart-filter-parameters-box bx-active">

    --- будешь делать, учти что пункт 2 надо в 2-х местах менять, во втором еще проверка есть перед bx-active ее надо оставить

    3. В самом верху template.php что-то типа
    $bColumns = $arParams['FILTER_VIEW_MODE'] == 'HORIZONTAL' && isset($arParams['COLUMNS']) && intval($arParams['COLUMNS']) ? true : false;
    $columnsCount = isset($arParams['COLUMNS']) && intval($arParams['COLUMNS']) ? $arParams['COLUMNS'] : 5;

    добавить к
    <div class="smart-filter <?=($bColumns ? 'smart--filter--columns__'.$columnsCount : '');?>

    4. Ну и стили в style.css примерно, но тут уже по вкусу
    @media (min-width: 992px) {
    	.smart--filter--columns__5 .smart-filter-parameters-box{width:20%;flex:0 0 20%;}
    	.smart--filter--columns__4 .smart-filter-parameters-box{width:25%;flex:0 0 25%;}
    	.smart--filter--columns__3 .smart-filter-parameters-box{width:33.33333333%;flex:0 0 33.33333333%;}
    	.smart--filter--columns__2 .smart-filter-parameters-box{width:50%;flex:0 0 50%;}
    }
    
    @media (min-width: 768px)  and (max-width: 991px) {
    	.smart-filter .smart-filter-parameters-box{width:33.33333333%;flex:0 0 33.33333333%;}
    	.smart--filter--columns__2 .smart-filter-parameters-box{width:50%;flex:0 0 50%;}
    }
    
    @media (min-width: 576px) and (max-width: 767px) {
    	.smart-filter .smart-filter-parameters-box{width:100%;flex:0 0 100%;}
    }
  • Как сделать выпадающие разделы товаров при клике на категорию?

    @PetrPo
    Выложи пример html на codepen без php. Как ты хочешь чтобы тебе с js помогли, если визуально ничего не видно
  • Битрикс,умный фильтр,5 колонок, реально?

    @PetrPo
    С параметром, что-то типа такого получится joxi.ru/ZrJ7N1EiwaxbMm
  • Где в Битриксе находится html главной страницы?

    @PetrPo
    Напиши get_class($theme->Template()); поймешь что за класс, явно из модуля решения. Дальше ищешь этот класс.
    Это решение ???
    Если да, ориентир /bitrix/modules/unisoftmedia.styleshop
    Если модуль норм написан папка lib, а в ней по имени класса ищи, в классе метод requireTemplate, ну а дальше вероятно там твой клад, в виде пути к include файлу
  • Как правильно добавить свое поле "input" в форум (отзывы) на сайте CMS 1с Битрикс?

    @PetrPo
    Добавлю, что описанная инструкция вычислена эмперическим путем))
  • Как сделать, чтобы меню не закрывалось?

    @PetrPo
    Мысль понятна. Ну решать тебе, могу только сказать, что я ни разу не встречался с такой проблемой, чтобы у кого-то не работал сбор статистики и отслеживание целей
  • Как правильно добавить свое поле "input" в форум (отзывы) на сайте CMS 1с Битрикс?

    @PetrPo
    Весьма нетривиальная задача. На уровне одного администрирования не решить.
    Могу направление подсказать, как сделал бы я...

    1. Создать пользовательские поля
    2. Кастомнуть шаблон каталога (добавить в параметры выбор пользовательских полей для выбранного форума) и шаблон отзыва, где добавить вывод выбранных полей
    3. Написать событие onBeforeMessageAdd, где перед созданием отзыва передать эти самые поля
  • Как автоматически транслировать любой готовый алгоритм с любого ЯП на любой другой ЯП без ущерба для скорости работы алгоритма?

    @PetrPo
    Если я правильно понял, то почему же не используют... Например React Redux как раз использует одно хранилище (store) для всего приложения
  • Как сделать, чтобы меню не закрывалось?

    @PetrPo
    Ты наверное путаешь со stopImmediatePropagation?