Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


gts
 Share

Recommended Posts

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

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

Edited by gts
Link to comment
Share on other sites


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>
Link to comment
Share on other sites


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>

 

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites

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

 

Edited by gts
Link to comment
Share on other sites


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

Link to comment
Share on other sites

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

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

 

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

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

Link to comment
Share on other sites


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

Edited by gts
Link to comment
Share on other sites


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

я вам предлагал, отрабатывать через js. и вопросов меньше и стабильность кода выше ))

увы, я в этом не разбираюсь.

Link to comment
Share on other sites


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

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

<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 текст в диве красного цвета.

 

Edited by anboza
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.