Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Цвет статуса товара на странице категории


gts

Recommended Posts

Всем привет. Сделал вывод статуса товара на странице категории. Подскажите, как сделать чтобы товар со статусом "В наличии" был зеленого цвета, "Нет в наличии" - красного, "На заказ" синего цвета?

232018-08-24_14-34-55.jpg

Змінено користувачем gts
Надіслати
Поділитися на інших сайтах


30 минут назад, max1985 сказал:

зависит от того как Вы выводили эту надпись... Код вывода напишите

ocStore 2.3.0.2.3

/catalog/controller/product/category.php

добавил после 229 строчки

'price'       => $price, 

код

'stock_status' => $result['stock_status'],

И в шаблоне /catalog/view/theme/default/template/product/category.tpl

<div class="stock_status"><?php echo $product['stock_status']; ?></div>
Надіслати
Поділитися на інших сайтах


1 час назад, anboza сказал:

проверяйте состояние  $stock >= 0  js скриптом, в зависимости от резщультата, меняйте css блока вывода. 

дешево и сердито ))

это не совсем то решение. у меня получилось в карточке товара сделать цвет в зависимости от статуса следующим кодом, но для страницы категории не получается

<li><?php echo $text_stock; ?><?php if ($stock == " На заказ"){echo '<span style="color:blue;">'.$stock.'</span>';}?>
            <?php if ($stock == "В наличи"){echo '<span style="color:green;">'.$stock.'</span>';}?>
            <?php if ($stock == "Нет в наличии"){echo '<span style="color:red;">'.$stock.'</span>';}?></li>

 

Надіслати
Поділитися на інших сайтах


в чем проблема, вывести $product['stock'], в категории? тема эта несколько раз поднималась на форуме, куча решений.

а потом, этот самый $product['stock'] проверяйте. 

как именно проверять - это дело хозяйское. мне больше нравится такие проверки, делать через js, вам через php...на вкус и цвет, фломастеры разные ))

Надіслати
Поділитися на інших сайтах

1 час назад, anboza сказал:

в чем проблема, вывести $product['stock'], в категории? тема эта несколько раз поднималась на форуме, куча решений.

а потом, этот самый $product['stock'] проверяйте. 

как именно проверять - это дело хозяйское. мне больше нравится такие проверки, делать через js, вам через php...на вкус и цвет, фломастеры разные ))

 

вывел, теперь другой вопрос возник. в css для .stock_status прописан цвет и размер шрифта, но эти настройки не действуют.

}
.stock-status {
    color: green;
    font-size: 15px;
    line-height: 1.55em;
}

сайт http://at7.ru/index.php?route=product/category&path=59_61

 

Змінено користувачем gts
Надіслати
Поділитися на інших сайтах


23 минуты назад, gts сказал:

вывел, теперь другой вопрос возник. в css для .stock_status прописан цвет и размер шрифта, но эти настройки не действуют.


}
.stock-status {
    color: green;
    font-size: 15px;
    line-height: 1.55em;
}

сайт http://at7.ru/index.php?route=product/category&path=59_61

 

я не вижу на сайте, обновите модификаторы. похоже что кеш просто не обновился

css.jpg

Надіслати
Поділитися на інших сайтах

11 минут назад, anboza сказал:

я не вижу на сайте, обновите модификаторы. похоже что кеш просто не обновился

 

обновил, но все по-прежнему. в css в самом низу настройки для .stock-status 

http://at7.ru/catalog/view/theme/default/stylesheet/stylesheet.css

Надіслати
Поділитися на інших сайтах


15 часов назад, anboza сказал:

у вас в одном случае "-", а в другом "_"

Да, Вы правы, поменял и все получилось, спасибо что помогаете. Вопрос решил на 90%, осталось разобраться как сделать чтобы статус "на заказ" был синим цветом.

Сейчас  в /catalog/controller/product/category.php выведен stock_status

'stock_status' => $result['stock_status'],

И в шаблоне /catalog/view/theme/default/template/product/category.tpl

<div class="stock_status"><?php echo $product['stock_status']; ?>
<?php if ($stock_status == "На заказ"){echo '<span style="color:blue;">'.$stock_status.'</span>';}?>
<?php if ($stock_status == "В наличии"){echo '<span style="color:green;">'.$stock_status.'</span>';}?>
<?php if ($stock_status == "Нет в наличии"){echo '<span style="color:red;">'.$stock_status.'</span>';}?></div>

На что получаю следующую ошибку:

Undefined variable: stock_status in /home/b/b91652qw/at7.ru/public_html/system/storage/modification/catalog/view/theme/default/template/product/category.tpl

Т.е насколько я понял, какой-то модификатор (модуль) мешает

http://at7.ru/index.php?route=product/category&path=59_61

Змінено користувачем gts
Надіслати
Поділитися на інших сайтах


исходя из вашего кода, вот примерный скрипт.

только проверьте синтаксис, писано на коленке.

<script type="text/javascript">
var a=<?php echo $product['stock_status']; ?>;

if (a == "На заказ") {
document.getElementById("ваш див").style.background ='red';

 
} elseif (a == "В наличии"){

document.getElementById("ваш див").style.background ='green';

  
} elseif (a == "Нет в наличии"){

document.getElementById("ваш див").style.background ='blue';

  
}

</script>

но я бы на вашем месте, все же выводил $product['stock'] и сравнивал не со строкой, а со значением. Так оно как-то правильнее )) Опять же, появляется гибкость. Мало ли, вдруг вы захотите выделять цветом, когда кол-во товара, приближается к нулю....

тогда скрипт будет выглядеть так:

 

 

 

<script type="text/javascript">
var a=$product['stock'];

if (a > 5) {
document.getElementById("ваш див").style.background ='green';

 
} elseif (a<= 5){

document.getElementById("ваш див").style.background ='yellow';

  
} elseif (a <= 0){

document.getElementById("ваш див").style.background ='red';

  
}

</script>


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

Т.е. if a >5 текст в диве красного цвета.

 

Змінено користувачем anboza
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.