2013-09-24 7 views
6

I utworzeniu niestandardowej blok na podstawie tego tutoriala http://blog.magikcommerce.com/how-to-show-most-viewed-best-selling-products-in-magento-storeJak załadować Niestandardowe PHP Magento blok wewnątrz pliku szablonu

chciałbym wywołać blok z mojego pliku szablonu home.phtml.

wzywam moje statyczne bloki od:

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

I działa jak czar, oczywiście! ' Ale jak mogę załadować bloki dynamiczne, w moim przypadku, wewnątrz plików szablonów.

Mój plik bestseller.phtml jest:

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

A moja klasa jest:

Mage_Catalog_Block_Product_Bestseller 

Odpowiedz

17

blok ładuje z pliku szablonu jest bardzo złym stylu, ale jest to możliwe.

brudny sposób z pliku szablonu

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

Czyste sposób:
przejdź do pliku xml układ dodać blok jak anyother i odnoszą się do niego z

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

jeżeli jesteś na stronie cms, skorzystaj z sekcji "Uaktualnienia układu Xml" w dziale Projektowanie, np.

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

Perfect! To rozwiązanie działało jak czar! –

2

ten pracował jako z 1.5.1, pozwala również przenieść szablon

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