I'm using Magento 1.9.2.2 and I'm trying to create a module which show a product list. Bellow my current code which doesn't render the block. I hope someone can put me in the right direction how to fix this.
app/etc/modules/Envato_All.xml
<?xml version="1.0"?>
<config>
<modules>
<Envato_Recentproducts>
<active>true</active>
<codePool>local</codePool>
</Envato_Recentproducts>
</modules>
</config>
app/code/local/Envato/Recentproducts/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Envato_Recentproducts>
<version>1.0</version>
</Envato_Recentproducts>
</modules>
<global>
<blocks>
<recentproducts>
<class>Envato_Recentproducts_Block</class>
</recentproducts>
</blocks>
<models>
<recentproducts>
<class>Envato_Recentproducts_Model</class>
</recentproducts>
</models>
</global>
</config>
app/code/local/Envato/Recentproducts/Model/Recentproducts.php
<?php
class Envato_Recentproducts_Model_Recentproducts extends Mage_Core_Model_Abstract
{
public function getRecentProduct()
{
$products = Mage::getModel("catalog/product")
->getCollection()
->addAttributeToSelect('*')
->setOrder('entity_id', 'DESC')
->setPageSize(5);
return $products;
}
}
app/code/local/Envato/Recentproducts/Block/Recentproducts.php
<?php
class Envato_Recentproducts_Block_Recentproducts extends Mage_Core_Block_Template
{
public function getRecentProducts()
{
// call model to fetch data
$arr_products = array();
$products = Mage::getModel("recentproducts/recentproducts")->getRecentProducts();
foreach ($products as $product) {
$arr_products[] = array(
'id' => $product->getId(),
'name' => $product->getName(),
'url' => $product->getProductUrl(),
);
}
return $arr_products;
}
}
app/design/frontend/default/default/template/recentproducts/recentproducts.phtml
<?php
$products = $this->getRecentProducts();
?>
<div id="product_list">
<h1>Recent Products</h1>
<?php if (is_array($products) && count($products)) { ?>
<?php foreach($products as $product) { ?>
<div>
<a href="<?php echo $product['url'] ?>"><?php echo $product['name'] ?></a>
</div>
<?php } ?>
<?php } ?>
</div>
Used block
{{block type="recentproducts/recentproducts" name="recentproducts_recentproducts" template="recentproducts/recentproducts.phtml"}}