jehzlau,not need xml code,If you make this category Is anchor is No the it automatically call
<catalog_category_default translate="label">
<label>Catalog Category (Non-Anchor)</label>
<reference name="left">
<block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/>
</reference>
.....
which is used for non-anchor category
If want using xml try this
<catalog_category_layered>
<reference name="left">
<remove name="catalog.leftnav" />
<block type="catalog/navigation" name="catalog.leftnav.categories" after="currency" template="catalog/navigation/left.phtml"/>
</reference>
</catalog_category_layered>
Ok so I have found the cause of this problem and it seems to be a problem in core magento.
There is a new _construct method added to Mage_Cms_Block_Block in magento 1.14.2 which contains the following code.
/**
* Initialize cache
*
* @return null
*/
protected function _construct()
{
/*
* setting cache to save the cms block
*/
$this->setCacheTags(array(Mage_Cms_Model_Block::CACHE_TAG));
$this->setCacheLifetime(false);
}
This is effectively turning on caching for cms blocks. No cache key is set so it falls back to the Mage_Core_Block_Abstract::getCacheKeyInfo which uses the name of the block in layout. In this case we aren't actually using a layout xml file to add the block and there is no name set. Magento seems to try and handle this by setting something like ANONYMOUS_78 as the name. However for some reason this doesn't seem to be working 100% hence the duplicates I was seeing.
My solution was to override the Mage_Cms_Block_Block class in my own extension and add a new method to set the cache key explicitly to the block id rather than an assigned value. The class looks like this:
/**
* Override cms/block to add cache key. This started being a problem as of EE 1.14.2 when the _construct
* method was added which turns on caching for cms blocks
*/
class Mysite_Cms_Block_Block extends Mage_Cms_Block_Block
{
/**
* If this block has a block id, use that as the cache key.
*
* @return array
*/
public function getCacheKeyInfo()
{
if ($this->getBlockId()) {
return array(
Mage_Cms_Model_Block::CACHE_TAG,
Mage::app()->getStore()->getId(),
$this->getBlockId(),
(int) Mage::app()->getStore()->isCurrentlySecure()
);
} else {
return parent::getCacheKeyInfo();
}
}
}
This seems to have resolved the issue.
Update:
It looks like this same problem also exists in CE 1.9.2
Best Answer
create local.xml at
app/design/frontend/yourpackage/yourtemplate/layout/
then you need call cms block from using xml