Hi,
if You have to call Product List page or category page with Left Layered Navigation on CMS Page or Custom Module
for Attached text File steps
1. Override Mage_Catalog_Block_Category_View to your local
class Sugarcode_Catalog_Block_Category_View extends Mage_Catalog_Block_Category_View
{
public function getCurrentCategory()
{
if (!$this->hasData('current_category')) {
$category = Mage::registry('current_category');
if (!$category)
{
//get the root category
$id = $this->getCategoryId();
$category = Mage::getModel('catalog/category')->load($id);
}
$this->setData('current_category', $category);
}
return $this->getData('current_category');
}
}
2. Override Sugarcode_Catalog_Block_Layer_View to your local
class Sugarcode_Catalog_Block_Layer_View extends Mage_Catalog_Block_Layer_View
{
protected $categoryId;
protected $fromHomePage = false;
protected function _construct()
{
parent::_construct();
$this->_initBlocks();
}
public function setCategoryId($id)
{
$category = Mage::getModel('catalog/category')->load($id);
if ($category->getId()) {
Mage::getSingleton('catalog/layer')->setCurrentCategory($category);
$this->setData('current_category', $category);
$this->categoryId=$id;
$filterableAttributes = Mage::getSingleton('catalog/layer')->getFilterableAttributes();
$stateBlock = $this->getLayout()->createBlock($this->_stateBlockName)
->setLayer(Mage::getSingleton('catalog/layer'));
$categoryBlock = $this->getLayout()->createBlock($this->_categoryBlockName)
->setLayer(Mage::getSingleton('catalog/layer'))
->init();
$this->setChild('layer_state', $stateBlock);
$this->setChild('category_filter', $categoryBlock);
$filterableAttributes = $this->_getFilterableAttributes();
foreach ($filterableAttributes as $attribute) {
if ($attribute->getAttributeCode() == 'price') {
$filterBlockName = $this->_priceFilterBlockName;
} elseif ($attribute->getBackendType() == 'decimal') {
$filterBlockName = $this->_decimalFilterBlockName;
} else {
$filterBlockName = $this->_attributeFilterBlockName;
}
$this->setChild($attribute->getAttributeCode() . '_filter',
$this->getLayout()->createBlock($filterBlockName)
->setLayer(Mage::getSingleton('catalog/layer'))
->setAttributeModel($attribute)
->init());
}
Mage::getSingleton('catalog/layer')->apply();
}
}
/**
* Prepare child blocks
*
* @return Mage_Catalog_Block_Layer_View
*/
public function _prepareLayout()
{
//parent::_prepareLayout();
if (!Mage::registry('current_category'))
{
$this->fromHomePage = true;
$category = Mage::getModel('catalog/category')
->setStoreId(Mage::app()->getStore()->getId())
->load($this->categoryId);
if (!Mage::helper('catalog/category')->canShow($category))
{
return false;
}
Mage::getSingleton('catalog/session')->setLastVisitedCategoryId($category->getId());
Mage::register('current_category', $category);
Mage::getSingleton('catalog/layer')->setCurrentCategory($category);
}
$stateBlock = $this->getLayout()->createBlock($this->_stateBlockName)
->setLayer($this->getLayer());
$categoryBlock = $this->getLayout()->createBlock($this->_categoryBlockName)
->setLayer($this->getLayer())
->init();
$this->setChild('layer_state', $stateBlock);
$this->setChild('category_filter', $categoryBlock);
$filterableAttributes = $this->_getFilterableAttributes();
foreach ($filterableAttributes as $attribute) {
if ($attribute->getAttributeCode() == 'price') {
$filterBlockName = $this->_priceFilterBlockName;
} elseif ($attribute->getBackendType() == 'decimal') {
$filterBlockName = $this->_decimalFilterBlockName;
} else {
$filterBlockName = $this->_attributeFilterBlockName;
}
$this->setChild($attribute->getAttributeCode() . '_filter',
$this->getLayout()->createBlock($filterBlockName)
->setLayer($this->getLayer())
->setAttributeModel($attribute)
->init());
}
$this->getLayer()->apply();
return parent::_prepareLayout();
}
}
3. In CMS design->custom XMl
make
Custom Layout:- 2 columns with left bar
XML add below code
<reference name="left">
<block type="catalog/layer_view" name="catalog.leftnav33" after="-" template="catalog/layer/view.phtml">
<action method="setCategoryId"><category_id>3</category_id></action>
</block>
</reference>
<reference name="content">
<block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml" >
<block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
<!-- <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/su.phtml</template></action> -->
<action method="setCategoryId"><category_id>3</category_id></action>
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
</block>
<action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
</block>
</reference>
Note :- 3 in XML Set You category Id
For More got to here
http://www.magentocommerce.com/boards/viewthread/308574/