Автор Тема: Получение произвольной переменной из product.tpl в cart.php  (Прочитано 2042 раз)

07 Октябрь 2015, 17:50:32
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Объявление переменных в классе
/override/classes/Cart.php
public $textklient;
...
if ($this->textklient)
{
 /* ,,,чтото делаем,,, */

Все действия над переменными в контроллере
/override/controllers/front/CartController.php
$this->context->cart->textklient;
Если нужно сохранять информацию из объекта Cart в зависмости от полученной переменной textklient в контроллере CartController, то добавьте метод сhangeInCart($textklient) в класс Cart, как вам советывали выше, и передайте в него переменную textklient.
$this->context->cart->сhangeInCart($textklient);
Cоздание интернет сайтов Webstudio UwK
07 Октябрь 2015, 18:07:56
Ответ #16
  • Старожил
  • ****
  • Сообщений: 380
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо!
Как говорят, одна голова хорошо - а две лучше.
Я что-то затупил что надо в override...  объявлять.. делал на прямую...
Еще раз спасибо, буду пробовать.. Если что вернусь.
07 Октябрь 2015, 18:52:05
Ответ #17
  • Старожил
  • ****
  • Сообщений: 380
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Дело вот в чем, и чего я хочу добиться.
В  Cart.php  есть блог
if ((int)$quantity < $minimal_quantity)
return -1;
$result_add = Db::getInstance()->insert('cart_product', array(
'id_product' => (int)$id_product,
'id_product_attribute' => (int)$id_product_attribute,
'id_cart' => (int)$this->id,
'id_address_delivery' => (int)$id_address_delivery,
'id_shop' => $shop->id,
'quantity' => (int)$quantity,
'date_add' => date('Y-m-d H:i:s'),
'cod' => некие данные
Cod-это мой.   Все … блог работает и все хорошо. Проблем нет записывается в поля базы.

Теперь что хотелось-бы…..
После
if ((int)$quantity < $minimal_quantity)
return -1;
Как пример ставим
if ($textklient=='')
$result_add = Db::getInstance()->insert('cart_product', array(
'id_product' => (int)$id_product,
'id_product_attribute' => (int)$id_product_attribute,
'id_cart' => (int)$this->id,
'id_address_delivery' => (int)$id_address_delivery,
'id_shop' => $shop->id,
'quantity' => (int)$quantity,
'date_add' => date('Y-m-d H:i:s'),
'cod' => тут другие данные
Иначе как есть
$result_add = Db::getInstance()->insert('cart_product', array(
'id_product' => (int)$id_product,
'id_product_attribute' => (int)$id_product_attribute,
'id_cart' => (int)$this->id,
'id_address_delivery' => (int)$id_address_delivery,
'id_shop' => $shop->id,
'quantity' => (int)$quantity,
'date_add' => date('Y-m-d H:i:s'),
'cod' => некие данные
Вот и эту
if ($textklient=='')Мне нужно получить из  product.tpl
<input type="text" name="textklient" id="textklient" class="text"  value="" >
07 Октябрь 2015, 20:20:26
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Все тоже самое что и в предыдущей теме
http://prestashop-forum.ru/index.php/topic,5151.0.html
Нужно передать эту переменную в
function updateQty (.... $textrez)
{

Ничего не изменилось. Получили переменную и передали ее в метод updateQty.
В классе Cart изменили метод updateQty добавили новую переменную.
Перед выполнением запроса
$result_add = Db::getInstance()->insertдобавили сравнение (если нужно, то можете вторую перменную также передать в этот метод).
Cоздание интернет сайтов Webstudio UwK