*/ class Mage_GoogleBase_Model_Attribute extends Mage_Core_Model_Abstract { /** * Default ignored attribute codes * * @var array */ protected $_ignoredAttributeCodes = array( 'custom_design','custom_design_from','custom_design_to','custom_layout_update', 'gift_message_available','news_from_date','news_to_date','options_container', 'price_view','sku_type' ); /** * Default ignored attribute types * * @var array */ protected $_ignoredAttributeTypes = array('hidden', 'media_image', 'image', 'gallery'); protected function _construct() { $this->_init('googlebase/attribute'); } public function getAllowedAttributes($setId) { $attributes = Mage::getModel('catalog/product')->getResource() ->loadAllAttributes() ->getSortedAttributes($setId); $result = array(); foreach ($attributes as $attribute) { /* @var $attribute Mage_Catalog_Model_Resource_Eav_Attribute */ if ($attribute->isInSet($setId) && $this->_isAllowedAttribute($attribute)) { $list[$attribute->getAttributeId()] = $attribute; $titles[$attribute->getAttributeId()] = $attribute->getFrontendLabel(); } } asort($titles); $result = array(); foreach ($titles as $attributeId => $label) { $result[$attributeId] = $list[$attributeId]; } return $result; } /** * Check if attribute allowed * * @param Mage_Eav_Model_Entity_Attribute_Abstract $attribute * @param array $attributes * @return boolean */ protected function _isAllowedAttribute($attribute) { return !in_array($attribute->getFrontendInput(), $this->_ignoredAttributeTypes) && !in_array($attribute->getAttributeCode(), $this->_ignoredAttributeCodes) && $attribute->getFrontendLabel() != ""; } /** * Return Google Base Attribute Type By Product Attribute * * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute * @return string Google Base Attribute Type */ public function getGbaseAttributeType($attribute) { $typesMapping = array( // 'date' => 'dateTime', 'price' => 'floatUnit', 'decimal' => 'numberUnit', ); if (isset($typesMapping[$attribute->getFrontendInput()])) { return $typesMapping[$attribute->getFrontendInput()]; } elseif (isset($typesMapping[$attribute->getBackendType()])) { return $typesMapping[$attribute->getBackendType()]; } else { return Mage_GoogleBase_Model_Service_Item::DEFAULT_ATTRIBUTE_TYPE; } } }