2013-09-24 93 views
6

tôi đã tạo ra một khối tùy chỉnh dựa trên hướng dẫn này http://blog.magikcommerce.com/how-to-show-most-viewed-best-selling-products-in-magento-storeLàm thế nào để tải một tuỳ chỉnh PHP Magento Khối bên trong một tập tin mẫu

Tôi muốn gọi Chặn từ home.phtml mẫu tập tin của tôi.

tôi gọi khối tĩnh của tôi từ:

<?php 
$helper = Mage::helper('cms'); 
$source = Mage::getModel('cms/block')->load('my-block'); 
$processor = $helper->getPageTemplateProcessor(); 
$html = $processor->filter($source->getContent()); 
echo $html; 
?> 

Và nó hoạt động như một nét duyên dáng, tất nhiên! ' Nhưng làm cách nào tôi có thể tải các khối động, trong trường hợp của tôi, bên trong các tệp mẫu.

tập tin bestseller.phtml của tôi là:

app/design/frontend/default/default/template/catalog/product/bestseller.phtml 

Và lớp học của tôi là:

Mage_Catalog_Block_Product_Bestseller 

Trả lời

17

tải khối từ một tập tin mẫu là một phong cách rất xấu, nhưng nó có thể.

cách bẩn từ một tập tin mẫu

echo $this->getLayout()->createBlock('catalog/product_bestseller')->toHtml(); 

Cách sạch:
đi đến tập tin xml bố trí của bạn thêm khối như anyother và đề cập đến nó với

echo $this->getChildHtml('product_bestseller'); 

nếu bạn đang ở trang cms sử dụng phần "Bố cục Xml Cập nhật" trong Thiết kế như

<reference name="content"> 
    <block type="catalog/product_bestseller" name="product_bestseller" /> 
</reference> 
+0

Perfect! Giải pháp này hoạt động như một sự quyến rũ! –

2

này làm việc như của 1.5.1, cũng cho phép bạn chuyển nơi ở mẫu

$block = $this->getLayout() 
     ->createBlock('catalog/product_bestseller','product_bestseller', 
         array('template' => 'pathTo/template.phtml')); 
echo $block->setBlockId('whatever')->toHtml();