00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Mage 00022 * @package Mage_Sitemap 00023 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 /** 00028 * Sitemap cms page collection model 00029 * 00030 * @category Mage 00031 * @package Mage_Sitemap 00032 * @author Magento Core Team <core@magentocommerce.com> 00033 */ 00034 class Mage_Sitemap_Model_Mysql4_Cms_Page extends Mage_Core_Model_Mysql4_Abstract 00035 { 00036 /** 00037 * Init resource model (catalog/category) 00038 */ 00039 protected function _construct() 00040 { 00041 $this->_init('cms/page', 'page_id'); 00042 } 00043 00044 /** 00045 * Retrieve cms page collection array 00046 * 00047 * @return array 00048 */ 00049 public function getCollection($storeId) 00050 { 00051 $pages = array(); 00052 00053 $select = $this->_getWriteAdapter()->select() 00054 ->from(array('main_table' => $this->getMainTable()), array($this->getIdFieldName(), 'identifier AS url')) 00055 ->join( 00056 array('store_table' => $this->getTable('cms/page_store')), 00057 'main_table.page_id=store_table.page_id', 00058 array() 00059 ) 00060 ->where('main_table.is_active=1') 00061 ->where('store_table.store_id IN(?)', array(0, $storeId)); 00062 $query = $this->_getWriteAdapter()->query($select); 00063 while ($row = $query->fetch()) { 00064 if ($row['url'] == Mage_Cms_Model_Page::NOROUTE_PAGE_ID) { 00065 continue; 00066 } 00067 $page = $this->_prepareObject($row); 00068 $pages[$page->getId()] = $page; 00069 } 00070 00071 return $pages; 00072 } 00073 00074 /** 00075 * Prepare page object 00076 * 00077 * @param array $data 00078 * @return Varien_Object 00079 */ 00080 protected function _prepareObject(array $data) 00081 { 00082 $object = new Varien_Object(); 00083 $object->setId($data[$this->getIdFieldName()]); 00084 $object->setUrl($data['url']); 00085 00086 return $object; 00087 } 00088 00089 }