we want to display an entire category of products, we need to load up the
category display block and render it. This will load the products and push the data
through the associated template file.
//code snipped
$className = Mage::getConfig()
->getBlockClassName(’catalog/product_list’);
$block = new $className();
$className = Mage::getConfig()
->getBlockClassName(’core/template’);
$toolbar = new $className();
$block->setChild(’toolbar’, $toolbar);
$block->setCategoryId(3);
$block->setTemplate(’catalog/product/list.phtml’);
echo $block->renderView();
You might think that we would be using the category view block for this task, but
we’re not. The product list block is the component which does the actual printing of
the products. The category view block does too much work preparing the rest of the
page and is too integrated intoMagento to cleanly use outside ofMagento’s code.
The reason that we make a core/template type block and call it “toolbar” is because
the template file for the product list wants to show the output from a block
called toolbar. If we set the real toolbar (type catalog/product_list_toolbar) then
we start unraveling a whole lot of Magento dependencies, as the toolbar requires a
product collection. This is the simplest, quickest way to render a category of products
“outside”Magento.
Comments
Post a Comment