chamaerops

echo $product['stock_status'] - выводит числа

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

chamaerops    35

Собственно, проблемка в заголовке. В tpl нужно вывести статус товара при остутсвии на складе (типа, "под заказ", "ожидается поступление" и т.д.) 

Вписываю echo $product['stock_status'] - выводит целочисленные значения - 5, 8, 9 и т.д. А нужно вывести соответсвующий текст, который прописан каждому товару.

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


Ссылка на сообщение
Поделиться на другие сайты
Matvei    46
2 минуты назад, chamaerops сказал:

В tpl нужно вывести статус товара при остутсвии на складе (типа, "под заказ", "ожидается поступление" и т.д.) 

в какую именно tpl ? вы в курсе что их там не мало?

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


Ссылка на сообщение
Поделиться на другие сайты
konorws    31
3 минуты назад, chamaerops сказал:

Собственно, проблемка в заголовке. В tpl нужно вывести статус товара при остутсвии на складе (типа, "под заказ", "ожидается поступление" и т.д.) 

Вписываю echo $product['stock_status'] - выводит целочисленные значения - 5, 8, 9 и т.д. А нужно вывести соответсвующий текст, который прописан каждому товару.

Вы сами писали код ???? Есле да то в таблице product колонка stock_status имеет значение ID по которому + в придачу id языка вытягивается название статуса для примера посмотрите в product а еще лучше пользуйтесь функционалом модели catalog/product там уже все готово 

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


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

Да понятно, что немало. 

Ну к примеру, category.tpl . В контроллере соответствующая переменная есть. Но, как оказывается, содержит она не строку, а соответствующее целочисленное значение.

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


Ссылка на сообщение
Поделиться на другие сайты
chamaerops    35
2 минуты назад, konorws сказал:

Вы сами писали код ???? Есле да то в таблице product колонка stock_status имеет значение ID по которому + в придачу id языка вытягивается название статуса для примера посмотрите в product а еще лучше пользуйтесь функционалом модели catalog/product там уже все готово 

Нет, писал не я. Да и эти статусы ж в системе задаются. Я просто пока не очень представляю, как их вытянуть в tpl. 

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


Ссылка на сообщение
Поделиться на другие сайты
konorws    31
6 минут назад, chamaerops сказал:

Нет, писал не я. Да и эти статусы ж в системе задаются. Я просто пока не очень представляю, как их вытянуть в tpl. 

Прежде чем попасть в tpl она обрабатывается в Controller и Model 

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


Ссылка на сообщение
Поделиться на другие сайты
Matvei    46
11 минут назад, chamaerops сказал:

Да понятно, что немало. 

Ну к примеру, category.tpl . В контроллере соответствующая переменная есть. Но, как оказывается, содержит она не строку, а соответствующее целочисленное значение.

	<file path="catalog/controller/product/category.php">
		<operation>
            <search><![CDATA[$data['products'][] = array(]]></search>
            <add position="before"><![CDATA[				$stock = $this->language->get('text_stock') . ' ';
				if ($result['quantity'] <= 0) {
					$stock .= $result['stock_status'];
				} 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');
                }
				]]></add>
        </operation>
		<operation>
            <search><![CDATA['name'        => $result['name'],]]></search>
            <add position="before"><![CDATA[					'stock'       => $stock,]]></add>
        </operation>
	</file>
	<file path="catalog/view/theme/*/template/product/category.tpl">
		<operation>
            <search><![CDATA[<?php if ($product['rating']>=0)  { ?>]]></search>
            <add position="before"><![CDATA[		 <div class="stockcat"><?php echo $product['stock'];?></div>]]></add>
        </operation>
	</file>
catalog/language/russian/russian.php
// Text
$_['text_stock']        = 'Нет в наличии';
$_['text_instock']      = '<span style="color:#fff; background: #00b300 none repeat scroll 0 0;">В наличии</span>';
$_['text_minstock']     = '<span style="color:#fff; background: #00b300 none repeat scroll 0 0;">Мало</span>';

 

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


Ссылка на сообщение
Поделиться на другие сайты
chamaerops    35
2 минуты назад, konorws сказал:

Прежде чем попасть в tpl она обрабатывается в Controller и Model 

Про контроллер то я в курсе. Я оттуда и взял то переменную  $product['stock_status']  полагая, что там уже содержится нужное значение. 

Я в программировании на уровне "со словарем" )) Я ж могу в контроллере category.php обратится к модели product? Насколько я вижу, там все что мне нужно из базы вытягивается.

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


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

Matvei

 

Если делать так, то складские статусы нужно прописать languages. А можно задействовать те, которые есть в базе, и которые, например, можно выставлять в том же Batch Editore. 

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

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


Ссылка на сообщение
Поделиться на другие сайты
Matvei    46
2 минуты назад, chamaerops сказал:
  Показать контент

 

Если делать так, то складские статусы нужно прописать languages. А можно задействовать те, которые есть в базе, и которые, например, можно выставлять в том же Batch Editore. 

catalog/language/russian/russian.php
// Text
$_['text_stock']        = 'Нет в наличии';
$_['text_instock']      = '<span style="color:#fff; background: #00b300 none repeat scroll 0 0;">В наличии</span>';
$_['text_minstock']     = '<span style="color:#fff; background: #00b300 none repeat scroll 0 0;">Мало</span>';

а сюда добавить на англ не судьба? 

catalog/language/english/english.php

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
konorws    31
8 минут назад, chamaerops сказал:

Про контроллер то я в курсе. Я оттуда и взял то переменную  $product['stock_status']  полагая, что там уже содержится нужное значение. 

Я в программировании на уровне "со словарем" )) Я ж могу в контроллере category.php обратится к модели product? Насколько я вижу, там все что мне нужно из базы вытягивается.

да чтоб обратится к модели продукт нужно ее загрузить в контролер есле это еще не зделано но есле это категория тогда это 100% сделано тогда ображаетесь по принципу

$this->model_catalog_product->Нужный_Метод()

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


Ссылка на сообщение
Поделиться на другие сайты
konorws    31
1 минуту назад, Matvei сказал:

catalog/language/russian/russian.php
// Text
$_['text_stock']        = 'Нет в наличии';
$_['text_instock']      = '<span style="color:#fff; background: #00b300 none repeat scroll 0 0;">В наличии</span>';
$_['text_minstock']     = '<span style="color:#fff; background: #00b300 none repeat scroll 0 0;">Мало</span>';

а сюда добавить на англ не судьба? 

catalog/language/english/english.php

 

 

так вы тогда только усуглубляете ситуацию тем что у нас возвращается только параметр stock_status который содержит ID из базы а не key для language как в вашем варианте

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


Ссылка на сообщение
Поделиться на другие сайты
Matvei    46
1 минуту назад, konorws сказал:

так вы тогда только усуглубляете ситуацию тем что у нас возвращается только параметр stock_status который содержит ID из базы а не key для language как в вашем варианте

так пусть выводит как и в товарах

копируя и добавляя с вывода статуса в товарах!
catalog/model/catalog/product.php

 

(SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, 

 

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


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

Matvie

вы не поняли - зачем мне вручную прописывать статусы в языковые файлы, если можно задействовать те, что уже хранятся в базе? При том, что этими статусами я уже могу оперировать в прочем функционале системы.

Метод , который konorws предлагает, более правильный. Спасибо за наводку, такого ответа ждал. Отпишусь, как доведу до ума.

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


Ссылка на сообщение
Поделиться на другие сайты
konorws    31
20 минут назад, chamaerops сказал:

Matvie

вы не поняли - зачем мне вручную прописывать статусы в языковые файлы, если можно задействовать те, что уже хранятся в базе? При том, что этими статусами я уже могу оперировать в прочем функционале системы.

Метод , который konorws предлагает, более правильный. Спасибо за наводку, такого ответа ждал. Отпишусь, как доведу до ума.

Как варинат вы можете розширить функционал модели Products своим методом который будет вам возвращать значение статуса.

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


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

Скажите какая у вас версия движка я вам сейчас напишу метод вы его вставите

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


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

OC 2.1.0.1

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


Ссылка на сообщение
Поделиться на другие сайты
konorws    31
24 минуты назад, chamaerops сказал:

OC 2.1.0.1

ок чуть позже скину

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


Ссылка на сообщение
Поделиться на другие сайты
konorws    31
3 часа назад, chamaerops сказал:

OC 2.1.0.1

public function getStockStatus($status_id){
 $result = $this->db->query('SELECT name AS stock_status FROM '.DB_PREFIX.'stock_status WHERE stock_status_id = "'.(int)$status_id.'" AND language_id = "'.(int)$this->config->get('config_language_id').'"');
 return (($result->num_rows) ? $result->row['stock_status'] : false);
}

 

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


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

Ай, спасибо!! Не сразу додумался, как в контроллер его всунуть (точнее, какой параметр передать) - уже туплю под конец дня. 

Но потом догнал, что туда надо $result['stock_status'] передать - все заработало, как хотел.

Преогромнейшее спасибо :eek:

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


Ссылка на сообщение
Поделиться на другие сайты
konorws    31
39 минут назад, chamaerops сказал:

Ай, спасибо!! Не сразу додумался, как в контроллер его всунуть (точнее, какой параметр передать) - уже туплю под конец дня. 

Но потом догнал, что туда надо $result['stock_status'] передать - все заработало, как хотел.

Преогромнейшее спасибо :eek:

да верно только это в модель нужно всунуть запомните с базой рабюотать только в моделях для того они и созданы

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


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

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

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

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

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

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

Войти

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

Войти


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

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