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_GoogleBase 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 * GoogleBase Attributes collection 00029 * 00030 * @category Mage 00031 * @package Mage_GoogleBase 00032 * @author Magento Core Team <core@magentocommerce.com> 00033 */ 00034 class Mage_GoogleBase_Model_Mysql4_Attribute_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract 00035 { 00036 /** 00037 * Whether to join attribute_set_id to attributes or not 00038 */ 00039 protected $_joinAttributeSetFlag = true; 00040 00041 00042 protected function _construct() 00043 { 00044 $this->_init('googlebase/attribute'); 00045 } 00046 00047 public function addAttributeSetFilter($attributeSetId, $targetCountry) 00048 { 00049 if (!$this->getJoinAttributeSetFlag()) { 00050 return $this; 00051 } 00052 $this->getSelect()->where('attribute_set_id = ?', $attributeSetId); 00053 $this->getSelect()->where('target_country = ?', $targetCountry); 00054 return $this; 00055 } 00056 00057 public function addTypeFilter($type_id) 00058 { 00059 $this->getSelect()->where('main_table.type_id = ?', $type_id); 00060 return $this; 00061 } 00062 00063 public function load($printQuery = false, $logQuery = false) 00064 { 00065 if ($this->isLoaded()) { 00066 return $this; 00067 } 00068 if ($this->getJoinAttributeSetFlag()) { 00069 $this->_joinAttributeSet(); 00070 } 00071 parent::load($printQuery, $logQuery); 00072 return $this; 00073 } 00074 00075 protected function _joinAttributeSet() 00076 { 00077 $this->getSelect() 00078 ->joinInner( 00079 array('types'=>$this->getTable('googlebase/types')), 00080 'main_table.type_id=types.type_id', 00081 array('attribute_set_id' => 'types.attribute_set_id', 'target_country' => 'types.target_country')); 00082 return $this; 00083 } 00084 00085 public function getJoinAttributeSetFlag() 00086 { 00087 return $this->_joinAttributeSetFlag; 00088 } 00089 00090 public function setJoinAttributeSetFlag($flag) 00091 { 00092 return $this->_joinAttributeSetFlag = (bool)$flag; 00093 } 00094 }