Перейти к содержанию
gts

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

Рекомендуемые сообщения

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

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

Изменено пользователем gts

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем anboza

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 часов назад, gts сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 часов назад, anboza сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

<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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.