Просмотрено 709 раз | Комментариев 10

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

Для вывода умного фильтра в боковой панели:
1) Добавляем включаемую область в боковую панель шаблона сайта.

2) В шаблоне умного фильтра, обворачиваем вывод form в такой код
<?$this->SetViewTarget("left_area");?>
<form name="<?echo $arResult["FILTER_NAME"]."_form"?>
.....
</form>
<?$this->EndViewTarget("left_area");?>

3) Во включаемую область вставляем код <?$APPLICATION->ShowViewContent("left_area")?>

Скачать дополнительные файлы, можно по ссылке ниже

Скачать дополнительные файлы

Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей Быстрая регистрация или вход через социальную сеть:
Андрей Колчанов
Добрый день, Михаил!

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

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

Код
<? 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 уже работает новый функционал (например, клик на сердечко для добавления в избранное) и изменился дизайн умного фильтра. Эти изменения будут выложены в доступ для ознакомления?
Страницы: 1 2 След.

Интернет-магазин техники:

В этом разделе видеоурок по разработке полноценного магазина электронной техники. Находится в текущем производстве.
В процессе создания сайта реализуется сайт с:
  • Полная версия сайта для декстопных устройств.
  • Мобильное приложение для AppStore и GooglePlay
  • Мобильная версия сайта (без приложения)
  • Развитие сайта до информационного ресурса
Подписывайтесь на youtube канал, что-бы быть в курсе

Сохранить и поделиться: