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

Вывод наличия в списке товара

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

Помогите разобраться с кодом.

Код взят с сайта unemployed. Автор темы не хочет отвечать.

Для начала добавим в языковой файл наши три статуса.
Открываем:
/catalog/language/russian/product/product.php

Находим строки:

$_['text_stock'] = 'Наличие:';
$_['text_instock'] = 'В наличии';

и добавляем:

$_['text_outstock'] = 'Нет в наличии';
$_['text_minstock'] = 'Заканчивается';

Теперь, если вы захотите поменять надпись «Заканчивается», на «Остался последний!» вам надо всего лишь зайти в языковой файл и заменить нужную строку.

 

Основные изменения:

Открываем для редактирования:
/catalog/controller/product/category.php

Почти в самом верху подтягиваем наш языковой файл.
После строк:

<?php
class ControllerProductCategory extends Controller {
    public function index() {
 
        $this->language->load('product/category');

Вставляем:

$this->language->load('product/product');

 

Где-то в районе 240-250 строк после строки:

$rating = false;
}

вставляем этот код:

if ($result['quantity'] <= 0) {
$stock = $this->language->get('text_outstock');
} elseif ($this->config->get('config_stock_display')) {
$stock = $result['quantity'];
} elseif ($result['quantity'] >= 1 AND $result['quantity'] <= 3) {
    $stock = $this->language->get('text_minstock');
} else {
    $stock = $this->language->get('text_instock');
}

 

и последний штрих, где-то в районе 270 строки, между строк:

'thumb' => $image,
'name' => $result['name'],
'description' => utf8_truncate(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 200, ' …', true),
'price' => $price,

вставляем строку:

'stock' => $stock,

 

Вывод результата в списке товара:

И непосредственно сам вывод нужной информации на сайте.
Открываем:
/catalog/view/theme/ваша_тема/template/product/category.tpl

Я предлагаю разместить информацию о наличии сразу под ценой.
Для этого, находим строки:

<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
<?php if ($product['tax']) { ?>
<br />
<span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
<?php } ?>
</div>

и перед последним /div вставляем:

<br /><?php echo $product['stock']; ?>

 

Делаем красиво:

А тем кто хотят, чтоб это было ещё и красиво, можем назначить уникальный стиль для надписей.

В последнее наше изменение, вставляем не просто строчку

<br /><?php echo $product['stock']; ?>

а вот такую:

<span class="stock"><br /><?php echo $product['stock']; ?></span>

Заходим в:
/catalog/view/theme/ваша_тема/stylesheet/stylesheet.css

Находим строчку:

.product-list .price-tax {
    font-size: 12px;
    font-weight: normal;
    color: #BBBBBB;
}

и вставляем после неё:

.product-list .stock {
    font-size: 13px;
    font-weight: normal;
}

или подгоняем под свой стиль.

А вот чтоб надписи были разного цвета, возвращаемся в наш языковой файл:
/catalog/language/russian/product/product.php

и уже известные нам строки

$_['text_stock'] = 'Наличие:';
$_['text_instock'] = 'В наличии';
$_['text_outstock'] = 'Нет в наличии';
$_['text_minstock'] = 'Заканчивается';

меняем на что-то типа такого:

$_['text_stock'] = 'Наличие:';
$_['text_instock'] = '<font style="color: green;"><b>В наличии</b></font>';
$_['text_outstock'] = '<font style="color: #f00;">Нет в наличии</font>';
$_['text_minstock'] = '<font style="color: green;">Заканчивается</font>';

должно было получиться вот это:

nalichiesp_2830689_19201568.png

 

Но у меня вместо: наличие, в наличии, Заканчивается выводиться цифровое значение остатка.

Вот что у меня ссылка

Что делать, как изменить?

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


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

попробуйте убрать вот эту строку
 

} elseif ($this->config->get('config_stock_display')) {
$stock = $result['quantity'];

И это раздел для 2.0, а у вас 156

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

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


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

И это раздел для 2.0, а у вас 156

 

Это я понял когда разместил тему((

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

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

×

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

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