Меню
RSS
Серия 21: Умный фильтр и ответы на вопросы
 
Серия 21: Умный фильтр и ответы на вопросы

Выводим и включаем умный фильтр в каталоге. И ответы на вопросы из комментариев из предыдущих серий.
 
Добрый день, Михаил!

Не знаю куда написать, решил написать сюда.

В карточке товара выводиться список Свойств:

Код
<? foreach ($arResult["DISPLAY_PROPERTIES"] as $pid => $arProperty): ?>
    <li>
        <strong><?= $arProperty["NAME"] ?>:</strong>
        <span><? echo $arProperty["DISPLAY_VALUE"]; ?></span>
        <div class="clb"></div>
    </li>
<? endforeach ?> 

Вопрос можно ли как-то одно из свойств отключить? Чтобы оно не отображалось в карточке товара, чтобы его вывести в другом месте карточки.

Например, есть свойство Артикул, и он уже выводится выше:

Код
<? if ($arResult["DISPLAY_PROPERTIES"]['ATT_BARCADE'])?>
<?=$arResult['DISPLAY_PROPERTIES']['ATT_BARCADE']['NAME']?>:
<?echo $arResult['DISPLAY_PROPERTIES']['ATT_BARCADE']['DISPLAY_VALUE'];?> 
 
Цитата
Андрей Колчанов написал:
Добрый день, Михаил!

Не знаю куда написать, решил написать сюда.

В карточке товара выводиться список Свойств:
Код
 <? foreach ($arResult["DISPLAY_PROPERTIES"] as $pid => $arProperty): ?>
    <li>
        <strong><?= $arProperty["NAME"] ?>:</strong>
        <span><? echo $arProperty["DISPLAY_VALUE"]; ?></span>
        <div class="clb"></div>
    </li>
<? endforeach ?> 
 

Вопрос можно ли как-то одно из свойств отключить? Чтобы оно не отображалось в карточке товара, чтобы его вывести в другом месте карточки.

Например, есть свойство Артикул, и он уже выводится выше:
Код
 <? if ($arResult["DISPLAY_PROPERTIES"]['ATT_BARCADE'])?>
<?=$arResult['DISPLAY_PROPERTIES']['ATT_BARCADE']['NAME']?>:
<?echo $arResult['DISPLAY_PROPERTIES']['ATT_BARCADE']['DISPLAY_VALUE'];?> 
 
Попробуйте отключить его в выводе компонента (в его настройках), что бы совсем пропало из вывода
А верхний вывод, смените DISPLAY_PROPERTIES на просто PROPERTIES

DISPLAY_PROPERTIES - как раз и отвечает на условие, что-то вроде "Если свойство выбрано для вывода- то показывать"
 
Если просто заменяю DISPLAY_PROPERTIES на просто PROPERTIES

Код
<? if ($arResult["PROPERTIES"]['ATT_BARCADE'])?>
 <?=$arResult['DISPLAY_PROPERTIES']['ATT_BARCADE']['NAME']?>:
    <?echo $arResult['DISPLAY_PROPERTIES']['ATT_BARCADE']['DISPLAY_VALUE'];?>
 

и НЕ отключаю его в выводе компонента,
то сверху выводится только "Артикул:"
самого артикль нет.

Пришлось вывод сделать так:

Код
Артикул: <? echo $arResult["PROPERTIES"]["ATT_BARCADE"]["~VALUE"];?> 
и отключаю его в выводе компонента.
Так заработало!!! Спасибо!
 
Михаил, помогите пожалуйста:
Делаю вывод с условием:
Код
<? if ($arResult["PROPERTIES"]["ATT_NOTE"]) {?>
 <h3><?=$arResult["PROPERTIES"]["ATT_NOTE"]["NAME"]?>:</h3>
 <div class="note_text">
 <?=htmlspecialcharsBack($arResult["PROPERTIES"]["ATT_NOTE"]["VALUE"]["TEXT"])?>
 </div>
<?}?> 
А условие не работает, т.е. всегда выводиться даже когда значение свойство не указано.

А если включаю его в выводе компонента и меняю DISPLAY_PROPERTIES , то работает.
но а мне надо чтобы работало с PROPERTIES  :)
 
Цитата
Андрей Колчанов написал:
Михаил, помогите пожалуйста:
Делаю вывод с условием:
Код
 <? if ($arResult["PROPERTIES"]["ATT_NOTE"]) {?>
 <h3><?=$arResult["PROPERTIES"]["ATT_NOTE"]["NAME"]?>:</h3>
 <div class="note_text">
 <?=htmlspecialcharsBack($arResult["PROPERTIES"]["ATT_NOTE"]["VALUE"]["TEXT"])?>
 </div>
<?}?> 
 
А условие не работает, т.е. всегда выводиться даже когда значение свойство не указано.

А если включаю его в выводе компонента и меняю DISPLAY_PROPERTIES , то работает.
но а мне надо чтобы работало с PROPERTIES  
Код
<?if (strlen($arResult['PROPERTIES']['ATT_NOTE']['~VALUE']) !== 0 {?>
КОД ИЛИ ЧТО УГОДНО
<?}?>
 
Цитата
Михаил Базаров пишет:
Код
 <?if (strlen($arResult['PROPERTIES']['ATT_NOTE']['~VALUE']) !== 0 {?>
КОД ИЛИ ЧТО УГОДНО
<?}?> 
ООО, отлично спасибо, теперь заработало!
 
Здравствуйте, Михаил.

Извиняюсь, что беспокою по пустякам..

У  меня  возникла  проблема  ,  описанная вами в Видео № 15 - создание
торговых  предложений...
 Там  ,  при создании HIGHLOAD инфоблока типа
"Справочник",  если  значение не картинка , а некий текст или цифровое
значение  (у вас в видео значение памяти 32 Гб и 128Гб) то на карточке
товара  (да  и в разделе)  не выводится значение, а просто окошко "нет
фото" (скриншот прилагаю) .  Вы  обещали  рассказаать как решить эту проблему позже... но
судя по тому , что видео уже закончилось продолжения мы не узнаем...(

У  меня  огромная  просьба: не могли бы вы рассказать как , все таки ,
вывести значение , а не фото .

Зараннее благодарен, Спасибо за ваши видео/ Очень нужен ваш ответ.
 
Цитата
Алексей написал:
Здравствуйте, Михаил.

Извиняюсь, что беспокою по пустякам..

У  меня  возникла  проблема  ,  описанная вами в Видео № 15 - создание
торговых  предложений...
 Там  ,  при создании HIGHLOAD инфоблока типа
"Справочник",  если  значение не картинка , а некий текст или цифровое
значение  (у вас в видео значение памяти 32 Гб и 128Гб) то на карточке
товара  (да  и в разделе)  не выводится значение, а просто окошко "нет
фото" (скриншот прилагаю) .  Вы  обещали  рассказаать как решить эту проблему позже... но
судя по тому , что видео уже закончилось продолжения мы не узнаем...(

У  меня  огромная  просьба: не могли бы вы рассказать как , все таки ,
вывести значение , а не фото .

Зараннее благодарен, Спасибо за ваши видео/ Очень нужен ваш ответ.
Да, видимо забыл про это. Расскажу в продолжениях.
Там все просто, на самом деле. Найдите участок в шаблоне, который выводит эту информацию. Там текстовое значение содержится в теге  <i> В его titile
Что-то вроде (переменную пишу по памяти)
<i title="<?=$PropTitle?>">

Эту переменную просто и вынесете вместо вывода картинки.
 
Остатки по складам я вывел так:
В файле \local\templates\bxstore\components\bitrix\catalog\simple\bi­trix\catalog.element\.default\template.php вставил код, сразу после "В наличии"
Код
<?$APPLICATION->IncludeComponent(
 "bitrix:catalog.store.amount",
 "",
 Array(
 "STORES" => array("10", "12"),
 "ELEMENT_ID" => $arResult['ID'],
 "ELEMENT_CODE" => "",
 "OFFER_ID" => "",
 "STORE_PATH" => "/store/#store_id#",
 "CACHE_TYPE" => "A",
 "CACHE_TIME" => "36000",
 "USER_FIELDS" => array("",""),
 "FIELDS" => array("TITLE","ADDRESS","PHONE","SCHEDULE",""),
 "SHOW_EMPTY_STORE" => "Y",
 "USE_MIN_AMOUNT" => "N",
 "SHOW_GENERAL_STORE_INFORMATION" => "N",
 "MIN_AMOUNT" => "0"
 )
);?>
 
Ну и далее стилизовал вот таким способом, в файле style.scss в этой же папке

Код
.bx_storege {
  hr {
    margin: 0 20px 0 0;
 }
  #c_store_amount {
    padding-left: 20px;
 border-bottom: 1px solid $gray2;
 margin-right: 30px;
 li {
      padding-bottom: 5px;
 }
  }
}
 
 
Большое спасибо за уроки, Михаил! Очень информативно, полезно и интересно. С нетерпением жду продолжения, и надеюсь что энтузиазм не угаснет.
Как видно, на bxstore уже работает новый функционал (например, клик на сердечко для добавления в избранное) и изменился дизайн умного фильтра. Эти изменения будут выложены в доступ для ознакомления?
 
Добрый день, Михаил. Можно ли вставить умный фильтр в корень каталога? Есть общий каталог, который отображает все товары, в нем необходимо вставить умный фильтр. Говорят, что нет такой возможности в битриксе. А Какие есть варианты реализации такой задачи?
 
Цитата
menicheka@gmail.com написал:
Добрый день, Михаил. Можно ли вставить умный фильтр в корень каталога? Есть общий каталог, который отображает все товары, в нем необходимо вставить умный фильтр. Говорят, что нет такой возможности в битриксе. А Какие есть варианты реализации такой задачи?
А кто говорит, что нет такой возможности)?
Делается очень просто: скопируйте вызов умного фильтра из sections.php и в section.php, до вызова catalog.section
И все  ;)

Для полного понимания, это вам поможет (не совсем, ответ на тему, но суть та же) https://camouf.ru/blog-note/2502/
 
Цитата
Михаил Базаров написал:
Цитата
   menicheka@gmail.com написал:
Добрый день, Михаил. Можно ли вставить умный фильтр в корень каталога? Есть общий каталог, который отображает все товары, в нем необходимо вставить умный фильтр. Говорят, что нет такой возможности в битриксе. А Какие есть варианты реализации такой задачи?
А кто говорит, что нет такой возможности)?
Делается очень просто: скопируйте вызов умного фильтра из sections.php и в section.php, до вызова catalog.section
И все  

Для полного понимания, это вам поможет (не совсем, ответ на тему, но суть та же)  https://camouf.ru/blog-note/2502/
Отлично!
Тогда у меня следующий вопрос, а можно сделать разные фильтры? т.е. на полный каталог один фильтр, а на группы товаров другой?
 
Цитата
menicheka@gmail.com написал:
Цитата
Михаил Базаров написал:
 
Цитата
    menicheka@gmail.com  написал:
Добрый день, Михаил. Можно ли вставить умный фильтр в корень каталога? Есть общий каталог, который отображает все товары, в нем необходимо вставить умный фильтр. Говорят, что нет такой возможности в битриксе. А Какие есть варианты реализации такой задачи?
 А кто говорит, что нет такой возможности)?
Делается очень просто: скопируйте вызов умного фильтра из sections.php и в section.php, до вызова catalog.section
И все  

Для полного понимания, это вам поможет (не совсем, ответ на тему, но суть та же)   https://camouf.ru/blog-note/2502/  
Отлично!
Тогда у меня следующий вопрос, а можно сделать разные фильтры? т.е. на полный каталог один фильтр, а на группы товаров другой?
В плане дизайна разные? Да, просто создайте два шаблона и вставте настройках вызова фильтра, в
section.php и sections.php
 
Цитата
Михаил Базаров написал:
Цитата
   menicheka@gmail.com написал:
 
Цитата
Михаил Базаров  написал:
 
Цитата
     menicheka@gmail.com   написал:
Добрый день, Михаил. Можно ли вставить умный фильтр в корень каталога? Есть общий каталог, который отображает все товары, в нем необходимо вставить умный фильтр. Говорят, что нет такой возможности в битриксе. А Какие есть варианты реализации такой задачи?
  А кто говорит, что нет такой возможности)?
Делается очень просто: скопируйте вызов умного фильтра из sections.php и в section.php, до вызова catalog.section
И все  

Для полного понимания, это вам поможет (не совсем, ответ на тему, но суть та же)    https://camouf.ru/blog-note/2502/  
 Отлично!
Тогда у меня следующий вопрос, а можно сделать разные фильтры? т.е. на полный каталог один фильтр, а на группы товаров другой?
В плане дизайна разные? Да, просто создайте два шаблона и вставте настройках вызова фильтра, в
section.php и sections.php
Благодарю, буду пробовать :)
 
Михаил, добрый день.
В Умном фильтре алгоритм фильтрации производится след. образом: есть у нас СВ1, СВ2, СВ3 - при выборе СВ1 - происходит фильтрация значений СВ2 и СВ3, если же мы выбираем значение из СВ2 - то фильтр накладывается на СВ1 и СВ3, выбор значения СВ3 - влияет на СВ1 и СВ2. Есть ли возможность управлять данным алгоритмом? если например, нужно убрать влияние на первое свойство? Выбираю я СВ3 - меняются только СВ2, а СВ1 всегда показываются полными и доступными для отображения?
 
Добрый день Михаил. У меня есть проблемы с Вашей заготовкой, может подскажите как их решить.

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

Во вторых пагинация не выводится.

И в третих список сравнения не работает.
 
Здравствуйте Михаил!
Как сделать многоязычность на сайте?

Зараннее благодарен. Спасибо за ваши видеоуроки. Очень нужен ваш ответ.
Изменено: Михаил Базаров - 29.01.2022 16:49:31
 
Можно запустить второй (третий- сколько нужно языковых версий) сайт, через многосайтовость
Подробнее тут https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=103&LESSON_ID=287
Изменено: Михаил Базаров - 29.01.2022 16:48:53
 
Добрый день Михаил! Можно ли как то создать условие "если фильтр задан" в catalog.section? Если пользователь не выбрал ни одно значение в фильтре, то не выводить товары, если выбрал, то выводить с учетом диапазона этого свойства или свойств. Например, если пользователь выбрал ширину 500, то выводить товары с шириной от 450 до 550. Только один инпут использовать, не диапазон "от - до". Что-то на подобие мастера подбора похожих товаров. Спасибо:)  
 
Добрый вечер Михаил.
Пользуюсь Вашими шпаргалками каждый день, уже не просто в закладках сайт лежит а закрепленная страница на всех группах вкладок)))  :D
Брал Ваш умный фильтр что бы внедрить в каталог, но столкнулся с проблемкой

Если начинаю фильтровать в разделах (т.е. я был в главном разделе недвижимость, там все работает корректно, спустился на раздел ниже и вот так фильтр себя начал вести)
подскажите куда смотреть что бы привязать ползунок к подвижному элементу?
Смотрел полный ролик на boosty но там не затронулся этот вопрос
Я еще студент, и в js вроде бы нашел кусок кода отвечающий за ползунки. Но не смог дать им ума... Помогите пожалуйста, 2й день не сплю камни летят в мою сторону))
Изменено: Михаил Базаров - 16.07.2024 08:27:03
 
Скрин фильтра, код полностью ваш максимум что менял так это css
 
Сейчас негде проверить, но установка этих ползунков прямо в template.php кусочек кода должен быть.
Может быть в моем фильтре что-то в нем сломано.

Сравните со штатным шаблоном (и есть ли эта проблема вообще в штатном шаблоне)
дерите из него этот кусочек кода
 
Спасибо, сейчас проверю :)  
 
Да к сожалению ползунки и в  штатном шаблонен работают так
 
Штатный имел ввиду не мой, а битриксовый шаблон фильтра по умолчанию.
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки
 

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

XML в формате Commerce ML-2, города России и Мира, для выгрузки в инфоблок Битрикс

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

Обновление цен и остатков из текстового файла, в каталоге 1C-Битрикс.

Задача: прочитать txt-файл с ценами и остатками, который выгружает программа учета по FTP, и обновить эти данные в катал...

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

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

Дать пользователю возможность быстро отредактировать материал

На одном из разрабатываемых сайтов, пользователи формируют его контент. После регистрации, становится доступен персональ...

Получить все поля раздела, включая пользовательские, в section.php

Если нужно получить какие-то данные о текущем разделе, которых нет в изначальном массиве, можно воспользоваться методом ...

Вывести производителей на сайте с отбором его товаров из каталога

Достаточно частая задачка для каталога или интернет-магазина: вывести список производителей с подробными описаниями, а т...

Фиксированная корзина с обновлением, без перезагрузки страницы.

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

Если предложение SKU в корзине, поменять кнопку добавления на "В корзине"

Данная заметка является дополнением к ранее опубликованной: Если товар в корзине, поменять значение input на "В корзине"...

Ускорение работы сайта на 1С-Битрикс

Данная статья написана специально под видеоролик (приложен в конце статьи), опубликованный на моем ВКVideo канал...