In Magento 1.8, I'm looking to overwrite a function from Sitemap/Module/Resource/Cms/Page.php
, the getCollection($storeId)
function to remove specific pages from the generated sitemap.
But something isn't working.
In local/Extender/Sitemap/etc/config.xml
I have:
<?xml version="1.0"?>
<config>
<modules>
<Extender_Sitemap>
<version>1.0.1</version>
</Extender_Sitemap>
</modules>
<global>
<modules>
<sitemap_resource>
<rewrite>
<sitemap_cms_page>Extender_Sitemap_Model_Resource_Cms_Page</sitemap_cms_page>
</rewrite>
</sitemap_resource>
</modules>
</global>
</config>
My getCollection()
function is in local/Extender/Sitemap/Model/Resource/Cms/Page.php
:
class Extender_Sitemap_Model_Resource_Cms_Page extends Mage_Core_Model_Resource_Db_Abstract
{
public function getCollection($storeId)
{
$pages = array();
$select = $this->_getWriteAdapter()->select()
->from(array('main_table' => $this->getMainTable()), array($this->getIdFieldName(), 'identifier AS url'))
->join(
array('store_table' => $this->getTable('cms/page_store')),
'main_table.page_id=store_table.page_id',
array()
)
->where('main_table.identifier NOT IN (?)', array('homepage'))
->where('main_table.is_active=1')
->where('store_table.store_id IN(?)', array(0, $storeId));
$query = $this->_getWriteAdapter()->query($select);
while ($row = $query->fetch()) {
if ($row['url'] == Mage_Cms_Model_Page::NOROUTE_PAGE_ID) {
continue;
}
$page = $this->_prepareObject($row);
$pages[$page->getId()] = $page;
}
return $pages;
}
}
I activated the module in etc/modules/Extender_All.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Extender_Sitemap>
<active>true</active>
<codePool>local</codePool>
</Extender_Sitemap>
</modules>
</config>
I also have the following empty pages:
In local/Extender/Sitemap/Model/Sitemap.php
:
class Extender_Sitemap_Model_Sitemap extends Mage_Core_Model_Abstract
{
}
In local/Extender/Sitemap/Model/Resource/Sitemap.php
:
class Extender_Sitemap_Model_Resource_Sitemap extends Mage_Core_Model_Resource_Db_Abstract
{
}