[英]Magento: placing block on custom template
我們正在創建一個自定義頁面,在其中創建產品向導,最后一步,我們要拉入產品頁面,實際上是catalog/product_view
塊。 顯然,我們可以使用renderview
方法創建該塊並將其設置在頁面中,但是我們遇到的問題是它只有那個塊而沒有它的所有子塊,並且由於view.phtml
了大量的getChildHtml
塊,因此沒有任何效果。
我認為必須有一種方法將產品視圖塊及其所有子級放置在自定義非產品頁面中。 不必創建每個子塊及其子塊,是否可以通過編程方式提取xml文件中的所有塊(例如catalog.xml
的catalog_product_view
句柄)並將其放置在另一頁上?
我們試圖放在其上的頁面是使用自定義模板的類別頁面,在該頁面中,我們在模板文件中做了很多PHP操作以創建向導。
你嘗試過這樣的事情嗎?
//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();
我在此代碼上取得了部分成功(顯示了產品視圖塊的一部分,然后出現錯誤)。 希望它將為您指明正確的方向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.