Помечаем новинки лейблом в каталоге битрикс

Просмотров: 12113 | Комментариев: 28

Достаточно часто, при разработке каталога товаров или интернет-магазина на системе управления Битрикс, встает задача как-то пометить новинки или спецпредложения. Как правило, это делается с помощью небольших лейблов которые вешаются на конкретный товар в списке всех товаров. Сделать это достаточно просто, и, возможно, не расскажу ничего нового. Однако, быть может, кому-то сгодится.

Для данной заметки есть дополнение Автоматически помечаем новинки лейблом в каталоге битрикс

Для начала идем в настройки инфоблока нашего торгового каталога и создаем новое свойство "Новинка" с типом список и атрибутом NEWPRODUCT

Лейбл новинка на товаре битрикс

Затем переходим в настройки этого свойства и задаем ему вид "Флажки" с одним значением Y-Да

Лейбл новинка на товаре битрикс

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

Лейбл новинка на товаре битрикс

Рисуем лейбл, здесь уже как душе угодно

Лейбл новинка на товаре битрикс

Идем по пути /bitrix/templates/ШАБЛОН_ВАШЕГО_САЙТА/compnents/bitrix/catalog/ШАБЛОН_ВАШЕГО_КАТАЛОГА/bitrix/catalog.section/.default/ создаем здесь папку images и кидаем в него картинку лейбла. По этому же пути открываем файлы template.php и style.css

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

<?if ($arElement["DISPLAY_PROPERTIES"]['NEWPRODUCT']){?>
<div class="novinko"></div>
<?}?>  

А в style.css, соответственно, стилевое оформление лейбла, с нашим фоновым рисунком

.novinko {
     position: relative;
     float: right;
     width: 42px;
     height: 27px;
     margin: 0px 0px -29px 0px;
     background: url('images/new.png') no-repeat;
     z-index: 100;
}

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

Лейбл новинка на товаре битрикс

У товаров будет появляться наш лейбл

Лейбл новинка на товаре битрикс

Все ровно тоже самое можно проделывать с любыми "пометками" на товарах или новостях. Успехов.


А как сделать так чтобы новинкой был помечен элемент на определенный срок, а потом лейбл снимался бы автоматом !?
Михаил
Цитата
Дмитрий пишет:
А как сделать так чтобы новинкой был помечен элемент на определенный срок, а потом лейбл снимался бы автоматом !?
Это сложнее, нужно через API получить дату добавления элемента (или свойства Новинка) и деактивировать его по истечению срока.
Михаил,

А для какой версии Битрикс актуальна Ваша инструкция?
Пытаюсь применить ее на 14.5.1, в котором несколько отличается путь: /bitrix/templates/eshop_adapt_/components/bitrix/catalog.section/template1/...

И могли бы Вы посоветовать в какое именно место в template.php необходимо вставить код?

Спасибо.
Михаил
Цитата
Сергей пишет:
Михаил,

А для какой версии Битрикс актуальна Ваша инструкция?
Пытаюсь применить ее на 14.5.1, в котором несколько отличается путь: /bitrix/templates/eshop_adapt_/components/bitrix/catalog.section/template1/...

И могли бы Вы посоветовать в какое именно место в template.php необходимо вставить код?

Спасибо.
Актуально для любой версии, в Вашем случае так понимаю пытаетесь проделать это с шаблоном компанента "Разделы каталога", там нужно открывать для редактирования вывод топа товаров
Добрый день.
А как "подсветить" категорию (раздел) каталога, в которой есть новинки? Или просто категорию с определенным ID?
Цитата
Михаил Базаров пишет:
Цитата
Дмитрий пишет:
А как сделать так чтобы новинкой был помечен элемент на определенный срок, а потом лейбл снимался бы автоматом !?
Это сложнее, нужно через API получить дату добавления элемента (или свойства Новинка) и деактивировать его по истечению срока.
Михаил, а это возможно
Цитата
Александр пишет:
Цитата
Михаил Базаров пишет:
Цитата
Дмитрий пишет:
А как сделать так чтобы новинкой был помечен элемент на определенный срок, а потом лейбл снимался бы автоматом !?
Это сложнее, нужно через API получить дату добавления элемента (или свойства Новинка) и деактивировать его по истечению срока
Цитата
Михаил Базаров пишет:
Цитата
Дмитрий пишет:
А как сделать так чтобы новинкой был помечен элемент на определенный срок, а потом лейбл снимался бы автоматом !?
Это сложнее, нужно через API получить дату добавления элемента (или свойства Новинка) и деактивировать его по истечению срока.
Прошу прощения, а возможно настроить период активности новинки за отдельную плату?
Доброго времени суток!

Сделал все как описано. Появилась лэйба. Но вместе с ней, при наведении на товар, появляется надпись с названием свойства, с пометкой "да" в самом низу. Как избавиться от этого, не подскажите?  
Михаил
Цитата
Владислав пишет:
Доброго времени суток!

Сделал все как описано. Появилась лэйба. Но вместе с ней, при наведении на товар, появляется надпись с названием свойства, с пометкой "да" в самом низу. Как избавиться от этого, не подскажите?
Удалить кусок стандартного кода который выводит свойства
Добрый день сделал как описано тут, но у меня ничего не появилось....
Михаил
Цитата
Гость сайта пишет:
Добрый день сделал как описано тут, но у меня ничего не появилось....
Видимо что-то сделали не так
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Добрый день сделал как описано тут, но у меня ничего не появилось....
Видимо что-то сделали не так
Ну не знаю делал все по инструкции)
Цитата
Гость сайта пишет:
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Добрый день сделал как описано тут, но у меня ничего не появилось....
Видимо что-то сделали не так
Ну не знаю делал все по инструкции)
а Влияет версия битрикс?
<? if ($arItem[" а не <?if ($arElement чтобы выводилась картинка в разделах
Михаил
Цитата
adelopod пишет:
<? if ($arItem[" а не <?if ($arElement чтобы выводилась картинка в разделах
Смотря где. В компоненте каталога arElement
Добрый день, Михаил! Я вас прекрасно понимаю, что вы очень заняты в данный момент, но может уделите 5 минут вашего времени? Дело в том, что я самоучка и иногда возникают различные вопросы. Интернет весь прошарил и не нашел решения. В данный момент занимаюсь созданием интернет магазина pceramics.ru. Очень много полезной информации для себя узнал благодаря вашим урокам. Тут у меня возник вопрос: Как пометить раздел лейблом "Новинка" и т.д.? Есть идея использовать "UF_" (Да/Нет), но как это реализовать мозгов не хватает, а может быть если более простой способ?  
Цитата
Владислав пишет:
Доброго времени суток!

Сделал все как описано. Появилась лэйба. Но вместе с ней, при наведении на товар, появляется надпись с названием свойства, с пометкой "да" в самом низу. Как избавиться от этого, не подскажите?
Попробуйте,  в публичной части при включенном режиме редактирования, в настройках компонента внести это свойство в "не выводить свойство"  
Здравствуйте! Не могу понять как сделать лейб. Путь отличается от вашего

/bitrix/templates/mm/components/bitrix/catalog.section/catalog/template

Нужно по этому же пути создать папку images и кидать в него картинку лейбла? И по этому же пути открывать файлы template.php и style.css и прописывать коды?
Михаил
Цитата
Анатолий пишет:
Здравствуйте! Не могу понять как сделать лейб. Путь отличается от вашего

/bitrix/templates/mm/components/bitrix/catalog.section/catalog/template

Нужно по этому же пути создать папку images и кидать в него картинку лейбла? И по этому же пути открывать файлы template.php и style.css и прописывать коды?
Да. Вообще картинки можете сложить куда угодно, главное из файла стилей правильно путь до них впишите
Цитата
Михаил Базаров пишет:
Да. Вообще картинки можете сложить куда угодно, главное из файла стилей правильно путь до них впишите
Ясно. Спасибо попробую
Здравствуйте.
Спасибо, отличный урок, все описано доходчиво.
Как можно реализовать вывод иконки, если свойство имеет несколько параметров - А, В, С. Свойство выгружается из 1с. Т.е используется не флаг а с выпадающего список.  Значения в 1с проставляются, и если значение = А то поставить флаг.
Спасибо.
Цитата
Михаил Базаров пишет:
Цитата
adelopod пишет:
<? if ($arItem[" а не <?if ($arElement чтобы выводилась картинка в разделах
Смотря где. В компоненте каталога arElement
Я выводил в разделе каталога, в анонсе, помог именно $arItem
Как аналогичное провернуть в карточке товара?
Михаил
Цитата
Станислав пишет:
Как аналогичное провернуть в карточке товара?
Поменять $arElement на $arResult
Здравствуйте михаил. Сделал все как показано. Лейбл не выводится. если поставить <div class="novinko"></div> вручную выводится.
Скажите пожалуйста есть ли альтернатива $arElement["DISPLAY_PROPERTIES"]['NEWPRODUCT']?
Думаю может у меня свойство гдето в другом месте хранится. или если есть функция вывода всех переменных чтобы я оттуда поискал то что мне надо. Дело в том что если я просто делаю echo $arElement["DISPLAY_PROPERTIES"] тоже ничего не выводит.
Спасибо
Михаил
Цитата
Vaqif написал:
Здравствуйте михаил. Сделал все как показано. Лейбл не выводится. если поставить <div class="novinko"></div> вручную выводится.
Скажите пожалуйста есть ли альтернатива $arElement["DISPLAY_PROPERTIES"]['NEWPRODUCT']?
Думаю может у меня свойство гдето в другом месте хранится. или если есть функция вывода всех переменных чтобы я оттуда поискал то что мне надо. Дело в том что если я просто делаю echo $arElement["DISPLAY_PROPERTIES"] тоже ничего не выводит.
Спасибо
Код
<?
echo "<pre>";
print_r($arElement);
echo "</pre>";
?>
Vlad
Спасибо за подсказку, реально помогло и работает, скажу всем остальным, у меня 16 версия битрикса и сработало только arItem, если у кого-то и после этого не отображается, то ищите глюк в стилях, возможно надо поменять позиционирование на absolute, у меня сработало :) А Михаилу спасибо!

Кроме создания сайтов, я так же веду блог с заметками о вебразработке, записываю бесплатные видеоуроки и содержу форум, на котором можно задавать вопросы и просто общаться. Заметки, преимущественно - это короткие или подробные рецепты, по реализации часто требуемого функционала- в рамках разработки сайтов на 1С-Битрикс

Показать еще