Jump to content
gts

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

Recommended Posts

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

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

Edited by gts

Share this post


Link to post
Share on other sites

Каждому статусу присвоить класс и через css задать цвет

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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>

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
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>

 

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

специально для ТС , прямо модулем

тык

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
11 минут назад, anboza сказал:

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

 

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

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

Share this post


Link to post
Share on other sites

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

Edited by anboza

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

проверяйте код php. там собака зарыта.

Share this post


Link to post
Share on other sites
13 часов назад, gts сказал:

был синим цветом.

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

Share this post


Link to post
Share on other sites
9 часов назад, anboza сказал:

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

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.