Перейти к содержимому


Фотография
- - - - -

Список товаров в корзине - добавить пару полей


Лучший Ответ demfi , 03 February 2016 - 07:13

Итак, я пока использую такое решение, если не верное, подскажите как упростить (в _table.php):

$cartItems = $cart->getItems();
$id_item = $cartItems[$itemKey]["item_id"];

$app = App::getInstance('zoo');
$item2 = $app->table->item->get($id_item); 
$element = $item2->getElement('0f323eff-bd99-4012-b843-1280bab5b42f'); // element id получаем так 
$data = (array)$element->data(); // получаем данные
echo '<span class="jbzoo-info-tara">'.$data[0]['value'].'</span>'; // смотрим что там хранится
Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 8

#1 demfi

demfi

Отправлено 01 February 2016 - 13:29

В шаблоне тизер и фулл могу добавить важные поля товара, а вот в саму корзину (Список товаров в корзине), например, после строки Артикул никак не могу найти где это сделать.


Сообщение отредактировал demfi: 01 February 2016 - 13:31

  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 01 February 2016 - 13:35

после строки Артикул никак не могу найти где это сделать.

В этом месте автоматически отображаются модификаторы. Добавить данные в шаблон можно только в ручную используя API. Сами шаблоны находится в папке:

\media\zoo\applications\jbuniversal\templates\ШАБЛОН\renderer\basket

  • 0
Изображение
 

#3 demfi

demfi

Отправлено 02 February 2016 - 07:04

Спасибо.

 

в _table.php добавил код (строка 65):

$app = App::getInstance('zoo');
$item = $app->table->item->get('41'); // берем материал id=41
$element = $item->getElement('0f323eff-bd99-4012-b843-1280bab5b42f'); // element id получаем так 
$data = (array)$element->data(); // получаем данные
echo '<span class="jbzoo-info-tara">'.$data[0]['value'].'</span>'; // смотрим что там хранится

Теперь всё вывел как хотел, но осталось понять как вместо get('41') получить id каждого товара в корзине ?


Сообщение отредактировал demfi: 02 February 2016 - 07:05

  • 0

#4 demfi

demfi

Отправлено 02 February 2016 - 10:38

Полагаю, что инициировать лишний раз $app = App::getInstance('zoo'); тоже нет смысла, т.к. в саму корзину передается id товара в виде html кода.


Сообщение отредактировал demfi: 02 February 2016 - 10:38

  • 0

#5 SmetDenis

SmetDenis

Отправлено 02 February 2016 - 14:05

В запуске строки "$app = App::getInstance('zoo');" нет ничего плохого. Просто вернется уже созданный объект.

Если находитесь в _table.php то вам должен быть доступен массив $this->items
Там можно будет найти всю информацию о товаре.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 demfi

demfi

Отправлено 03 February 2016 - 06:29

var_dump($this->items);

возвращает NULL

 

Подскажите как добраться до id?


  • 0

#7 demfi

demfi

Отправлено 03 February 2016 - 06:49

Мне надо не в модуле корзины, а в компоненте: index.php?option=com_zoo&controller=basket&task=index&Itemid=101&nc=9006


  • 0

#8 demfi

demfi

Отправлено 03 February 2016 - 07:13   Лучший Ответ

Итак, я пока использую такое решение, если не верное, подскажите как упростить (в _table.php):

$cartItems = $cart->getItems();
$id_item = $cartItems[$itemKey]["item_id"];

$app = App::getInstance('zoo');
$item2 = $app->table->item->get($id_item); 
$element = $item2->getElement('0f323eff-bd99-4012-b843-1280bab5b42f'); // element id получаем так 
$data = (array)$element->data(); // получаем данные
echo '<span class="jbzoo-info-tara">'.$data[0]['value'].'</span>'; // смотрим что там хранится

  • 0

#9 SmetDenis

SmetDenis

Отправлено 04 February 2016 - 09:20

var_dump($this->items);
возвращает NULL

Верно, потому что $this - это не объект вида, там все выполняется в другом контексте (долго рассказывать причину).
$view->items
По сути у вас решение правильное, можно считать это полностью развернутым вариантом.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!