Magento: размещение блока на пользовательском шаблоне - PullRequest
0 голосов
/ 08 августа 2010

Мы создаем пользовательскую страницу, на которой мы создаем что-то из мастера продукта, и последний шаг, мы хотим добавить страницу продукта, на самом деле это блок catalog/product_view.Очевидно, что мы можем создать блок и установить его на странице с помощью метода renderview, но проблема, с которой мы сталкиваемся, заключается в том, что он является единственным блоком и ни одним из его дочерних элементов, а поскольку view.phtml извлекает тонну блоков getChildHtmlничего не работает.

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

Страница, которую мы пытаемся поместить на нее, является страницей категории, использующей пользовательский шаблон, где мы делаем много PHP в файле шаблона для выполнения мастера.

1 Ответ

0 голосов
/ 14 августа 2010

Вы пробовали что-то подобное?

//save the product in the registry so the block knows which product to display
$product = Mage::getModel('catalog/product')->load($productId);
Mage::register('product', $product);

//get the block from the layout and render it to html
$Block = Mage::getSingleton('core/layout');
$product_view = $Block->createBlock('catalog/product_view');
$product_view->setTemplate('catalog/product/view.phtml');
$product_view->toHtml();

У меня был частичный успех с этим кодом (отображается часть блока просмотра продукта, а затем появляется ошибка). Надеюсь, это укажет вам правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...