Я не умею программировать, но и программисту платить не хочу. Что мне делать?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Мика Рух
  • Группа: Пользователь
  • Сообщений: 68
  • Регистрация: 22.11.2011

03.05.2012 12:24

Подскажите пожалуйста, как вывести через xml и php блок товаров.
То есть, это:
{{block type="catalog/product_list" category_id="3" column_count="4" template="catalog/product/listgiftwrap.phtml"}}

только другим методом.


Я пробую выводить так:
<block type="catalog/product_list" name="listgiftwrap" template="catalog/product/listgiftwrap.phtml"/>

И в нужном файле phtml:
<?php echo $this->getChildHtml('listgiftwrap') ?>


Но ничего не выводит...

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

03.05.2012 12:26

Каков класс переменной $this?

#3 Мика Рух
  • Группа: Пользователь
  • Сообщений: 68
  • Регистрация: 22.11.2011

03.05.2012 12:28

$_product = $this->getProduct();


#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

03.05.2012 12:29

Какова связь между вопросом и ответом?

#5 Мика Рух
  • Группа: Пользователь
  • Сообщений: 68
  • Регистрация: 22.11.2011

03.05.2012 12:37

На странице view.phtml подключается блок addto.phtml. И вот в этом блоке (addto.phtml) пытаюсь вывести лист товаров (product_list).

Так понимаю, в $_product попадает массив атрибутов выбранного товара со страницы товара.

А как же вывести список других товаров?

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

03.05.2012 12:39

Каков класс переменной $this?

#7 Мика Рух
  • Группа: Пользователь
  • Сообщений: 68
  • Регистрация: 22.11.2011

04.05.2012 10:05

Через print_r вывести $this не удается, как в моем шаблоне, так и в base/default - выводит пустую страницу.


$_product = $this->getProduct();

А класс у $this->getProduct() - Mage_Catalog_Model_Product

#8 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

04.05.2012 11:21

Если вы не знаете, как узнать класс объекта $this - вам рано заниматься программированием задач данного уровня.

#9 Мика Рух
  • Группа: Пользователь
  • Сообщений: 68
  • Регистрация: 22.11.2011

04.05.2012 11:37

Тогда подскажите, пожалуйста, как еще можно узнат класс объекта $this.
Заранее спасибо!

#10 Мика Рух
  • Группа: Пользователь
  • Сообщений: 68
  • Регистрация: 22.11.2011

04.05.2012 17:12

С помощью get_class() теперь известно класс $this - Mage_Catalog_Block_Product_View

#11 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

04.05.2012 17:26

Является ли блок listgiftwrap непосредственным дочерним блоком для блока класса Mage_Catalog_Block_Product_View?

#12 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

04.05.2012 17:49

Поясню: именно это является необходимым условием работоспособности getChildHtml.

#13 Мика Рух
  • Группа: Пользователь
  • Сообщений: 68
  • Регистрация: 22.11.2011

10.05.2012 14:33

Нет, блок listgiftwrap (каталог, list) не является дочерним блоком для блока с классом Mage_Catalog_Block_Product_View.

В listgiftwrap класс Mage_Catalog_Block_Product_List

А как-то иначе, не используя getChildHtml можно вывести блок каталога продуктов в карточке продукта?

#14 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

10.05.2012 14:35

Magento и в стандартной комплектации способна выводить на карточке товара наборы других товаров: сопутствующих, например.
Посмотрите, как устроены такие стандартные модули.

Поделиться темой: