Overview

Packages

  • currencysymbol
  • MAbout
  • Mage
    • Admin
    • Adminhtml
    • AdminNotification
    • Api
    • Api2
    • Authorizenet
    • Backup
    • Bundle
    • Captcha
    • Catalog
    • CatalogIndex
    • CatalogInventory
    • CatalogRule
    • CatalogSearch
    • Centinel
    • Checkout
    • Cms
    • Compiler
    • Connect
    • Contacts
    • Core
    • Cron
    • CurrencySymbol
    • Customer
    • Dataflow
    • Directory
    • DirtectPost
    • Downloadable
    • Eav
    • GiftMessage
    • GoogleAnalytics
    • GoogleBase
    • GoogleCheckout
    • ImportExport
    • Index
    • Install
    • Log
    • Media
    • Newsletter
    • Oauth
    • Page
    • PageCache
    • Paygate
    • Payment
    • Paypal
    • PaypalUk
    • Persistent
    • Poll
    • ProductAlert
    • Rating
    • Reports
    • Review
    • Rss
    • Rule
    • Sales
    • SalesRule
    • Sedfriend
    • Sendfriend
    • Shipping
    • Sitemap
    • Tag
    • Tax
    • Usa
    • Weee
    • Widget
    • Wishlist
    • XmlConnect
  • None
  • Phoenix
    • Moneybookers
  • PHP
  • Zend
    • Date
    • Mime
    • XmlRpc

Classes

  • Mage_Catalog_Model_Entity_Product_Attribute_Design_Options_Container
  • Mage_Catalog_Model_Product_Attribute_Source_Inputtype
  • Mage_Eav_Block_Adminhtml_Attribute_Edit_Js
  • Mage_Eav_Block_Adminhtml_Attribute_Edit_Main_Abstract
  • Mage_Eav_Block_Adminhtml_Attribute_Edit_Options_Abstract
  • Mage_Eav_Helper_Data
  • Mage_Eav_Model_Adminhtml_System_Config_Source_Inputtype
  • Mage_Eav_Model_Adminhtml_System_Config_Source_Inputtype_Validator
  • Mage_Eav_Model_Attribute
  • Mage_Eav_Model_Attribute_Data
  • Mage_Eav_Model_Attribute_Data_Abstract
  • Mage_Eav_Model_Attribute_Data_Boolean
  • Mage_Eav_Model_Attribute_Data_Date
  • Mage_Eav_Model_Attribute_Data_File
  • Mage_Eav_Model_Attribute_Data_Hidden
  • Mage_Eav_Model_Attribute_Data_Image
  • Mage_Eav_Model_Attribute_Data_Multiline
  • Mage_Eav_Model_Attribute_Data_Multiselect
  • Mage_Eav_Model_Attribute_Data_Select
  • Mage_Eav_Model_Attribute_Data_Text
  • Mage_Eav_Model_Attribute_Data_Textarea
  • Mage_Eav_Model_Config
  • Mage_Eav_Model_Convert_Adapter_Entity
  • Mage_Eav_Model_Convert_Adapter_Grid
  • Mage_Eav_Model_Convert_Parser_Abstract
  • Mage_Eav_Model_Entity
  • Mage_Eav_Model_Entity_Abstract
  • Mage_Eav_Model_Entity_Attribute
  • Mage_Eav_Model_Entity_Attribute_Abstract
  • Mage_Eav_Model_Entity_Attribute_Backend_Abstract
  • Mage_Eav_Model_Entity_Attribute_Backend_Array
  • Mage_Eav_Model_Entity_Attribute_Backend_Datetime
  • Mage_Eav_Model_Entity_Attribute_Backend_Default
  • Mage_Eav_Model_Entity_Attribute_Backend_Increment
  • Mage_Eav_Model_Entity_Attribute_Backend_Serialized
  • Mage_Eav_Model_Entity_Attribute_Backend_Store
  • Mage_Eav_Model_Entity_Attribute_Backend_Time_Created
  • Mage_Eav_Model_Entity_Attribute_Backend_Time_Updated
  • Mage_Eav_Model_Entity_Attribute_Frontend_Abstract
  • Mage_Eav_Model_Entity_Attribute_Frontend_Datetime
  • Mage_Eav_Model_Entity_Attribute_Frontend_Default
  • Mage_Eav_Model_Entity_Attribute_Group
  • Mage_Eav_Model_Entity_Attribute_Option
  • Mage_Eav_Model_Entity_Attribute_Set
  • Mage_Eav_Model_Entity_Attribute_Source_Abstract
  • Mage_Eav_Model_Entity_Attribute_Source_Boolean
  • Mage_Eav_Model_Entity_Attribute_Source_Config
  • Mage_Eav_Model_Entity_Attribute_Source_Store
  • Mage_Eav_Model_Entity_Attribute_Source_Table
  • Mage_Eav_Model_Entity_Collection
  • Mage_Eav_Model_Entity_Collection_Abstract
  • Mage_Eav_Model_Entity_Increment_Abstract
  • Mage_Eav_Model_Entity_Increment_Alphanum
  • Mage_Eav_Model_Entity_Increment_Numeric
  • Mage_Eav_Model_Entity_Setup
  • Mage_Eav_Model_Entity_Store
  • Mage_Eav_Model_Entity_Type
  • Mage_Eav_Model_Form
  • Mage_Eav_Model_Form_Element
  • Mage_Eav_Model_Form_Fieldset
  • Mage_Eav_Model_Form_Type
  • Mage_Eav_Model_Mysql4_Config
  • Mage_Eav_Model_Mysql4_Entity_Attribute
  • Mage_Eav_Model_Mysql4_Entity_Attribute_Collection
  • Mage_Eav_Model_Mysql4_Entity_Attribute_Group
  • Mage_Eav_Model_Mysql4_Entity_Attribute_Group_Collection
  • Mage_Eav_Model_Mysql4_Entity_Attribute_Option
  • Mage_Eav_Model_Mysql4_Entity_Attribute_Option_Collection
  • Mage_Eav_Model_Mysql4_Entity_Attribute_Set
  • Mage_Eav_Model_Mysql4_Entity_Attribute_Set_Collection
  • Mage_Eav_Model_Mysql4_Entity_Store
  • Mage_Eav_Model_Mysql4_Entity_Type
  • Mage_Eav_Model_Mysql4_Entity_Type_Collection
  • Mage_Eav_Model_Mysql4_Form_Element
  • Mage_Eav_Model_Mysql4_Form_Element_Collection
  • Mage_Eav_Model_Mysql4_Form_Fieldset
  • Mage_Eav_Model_Mysql4_Form_Fieldset_Collection
  • Mage_Eav_Model_Mysql4_Form_Type
  • Mage_Eav_Model_Mysql4_Form_Type_Collection
  • Mage_Eav_Model_Resource_Attribute
  • Mage_Eav_Model_Resource_Attribute_Collection
  • Mage_Eav_Model_Resource_Config
  • Mage_Eav_Model_Resource_Entity_Attribute
  • Mage_Eav_Model_Resource_Entity_Attribute_Collection
  • Mage_Eav_Model_Resource_Entity_Attribute_Group
  • Mage_Eav_Model_Resource_Entity_Attribute_Group_Collection
  • Mage_Eav_Model_Resource_Entity_Attribute_Option
  • Mage_Eav_Model_Resource_Entity_Attribute_Option_Collection
  • Mage_Eav_Model_Resource_Entity_Attribute_Set
  • Mage_Eav_Model_Resource_Entity_Attribute_Set_Collection
  • Mage_Eav_Model_Resource_Entity_Store
  • Mage_Eav_Model_Resource_Entity_Type
  • Mage_Eav_Model_Resource_Entity_Type_Collection
  • Mage_Eav_Model_Resource_Form_Attribute
  • Mage_Eav_Model_Resource_Form_Attribute_Collection
  • Mage_Eav_Model_Resource_Form_Element
  • Mage_Eav_Model_Resource_Form_Element_Collection
  • Mage_Eav_Model_Resource_Form_Fieldset
  • Mage_Eav_Model_Resource_Form_Fieldset_Collection
  • Mage_Eav_Model_Resource_Form_Type
  • Mage_Eav_Model_Resource_Form_Type_Collection
  • Mage_Eav_Model_Resource_Helper_Mysql4

Interfaces

  • Mage_Eav_Model_Entity_Attribute_Backend_Interface
  • Mage_Eav_Model_Entity_Attribute_Frontend_Interface
  • Mage_Eav_Model_Entity_Attribute_Interface
  • Mage_Eav_Model_Entity_Attribute_Source_Interface
  • Mage_Eav_Model_Entity_Increment_Interface
  • Mage_Eav_Model_Entity_Interface

Exceptions

  • Mage_Eav_Exception
  • Mage_Eav_Model_Entity_Attribute_Exception
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Magento
  4:  *
  5:  * NOTICE OF LICENSE
  6:  *
  7:  * This source file is subject to the Open Software License (OSL 3.0)
  8:  * that is bundled with this package in the file LICENSE.txt.
  9:  * It is also available through the world-wide-web at this URL:
 10:  * http://opensource.org/licenses/osl-3.0.php
 11:  * If you did not receive a copy of the license and are unable to
 12:  * obtain it through the world-wide-web, please send an email
 13:  * to license@magentocommerce.com so we can send you a copy immediately.
 14:  *
 15:  * DISCLAIMER
 16:  *
 17:  * Do not edit or add to this file if you wish to upgrade Magento to newer
 18:  * versions in the future. If you wish to customize Magento for your
 19:  * needs please refer to http://www.magentocommerce.com for more information.
 20:  *
 21:  * @category    Mage
 22:  * @package     Mage_Eav
 23:  * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
 24:  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 25:  */
 26: 
 27: 
 28: /**
 29:  * Eav attribute set model
 30:  *
 31:  * @method Mage_Eav_Model_Resource_Entity_Attribute_Set _getResource()
 32:  * @method Mage_Eav_Model_Resource_Entity_Attribute_Set getResource()
 33:  * @method int getEntityTypeId()
 34:  * @method Mage_Eav_Model_Entity_Attribute_Set setEntityTypeId(int $value)
 35:  * @method string getAttributeSetName()
 36:  * @method Mage_Eav_Model_Entity_Attribute_Set setAttributeSetName(string $value)
 37:  * @method int getSortOrder()
 38:  * @method Mage_Eav_Model_Entity_Attribute_Set setSortOrder(int $value)
 39:  *
 40:  * @category    Mage
 41:  * @package     Mage_Eav
 42:  * @author      Magento Core Team <core@magentocommerce.com>
 43:  */
 44: class Mage_Eav_Model_Entity_Attribute_Set extends Mage_Core_Model_Abstract
 45: {
 46:     /**
 47:      * Prefix of model events names
 48:      * @var string
 49:      */
 50:     protected $_eventPrefix = 'eav_entity_attribute_set';
 51: 
 52:     /**
 53:      * Initialize resource model
 54:      *
 55:      */
 56:     protected function _construct()
 57:     {
 58:         $this->_init('eav/entity_attribute_set');
 59:     }
 60: 
 61:     /**
 62:      * Init attribute set from skeleton (another attribute set)
 63:      *
 64:      * @param int $skeletonId
 65:      * @return Mage_Eav_Model_Entity_Attribute_Set
 66:      */
 67:     public function initFromSkeleton($skeletonId)
 68:     {
 69:         $groups = Mage::getModel('eav/entity_attribute_group')
 70:             ->getResourceCollection()
 71:             ->setAttributeSetFilter($skeletonId)
 72:             ->load();
 73: 
 74:         $newGroups = array();
 75:         foreach ($groups as $group) {
 76:             $newGroup = clone $group;
 77:             $newGroup->setId(null)
 78:                 ->setAttributeSetId($this->getId())
 79:                 ->setDefaultId($group->getDefaultId());
 80: 
 81:             $groupAttributesCollection = Mage::getModel('eav/entity_attribute')
 82:                 ->getResourceCollection()
 83:                 ->setAttributeGroupFilter($group->getId())
 84:                 ->load();
 85: 
 86:             $newAttributes = array();
 87:             foreach ($groupAttributesCollection as $attribute) {
 88:                 $newAttribute = Mage::getModel('eav/entity_attribute')
 89:                     ->setId($attribute->getId())
 90:                     //->setAttributeGroupId($newGroup->getId())
 91:                     ->setAttributeSetId($this->getId())
 92:                     ->setEntityTypeId($this->getEntityTypeId())
 93:                     ->setSortOrder($attribute->getSortOrder());
 94:                 $newAttributes[] = $newAttribute;
 95:             }
 96:             $newGroup->setAttributes($newAttributes);
 97:             $newGroups[] = $newGroup;
 98:         }
 99:         $this->setGroups($newGroups);
100: 
101:         return $this;
102:     }
103: 
104:     /**
105:      * Collect data for save
106:      *
107:      * @param array $data
108:      * @return Mage_Eav_Model_Entity_Attribute_Set
109:      */
110:     public function organizeData($data)
111:     {
112:         $modelGroupArray = array();
113:         $modelAttributeArray = array();
114:         $attributeIds = array();
115:         if ($data['attributes']) {
116:             $ids = array();
117:             foreach ($data['attributes'] as $attribute) {
118:                 $ids[] = $attribute[0];
119:             }
120:             $attributeIds = Mage::getResourceSingleton('eav/entity_attribute')
121:                 ->getValidAttributeIds($ids);
122:         }
123:         if( $data['groups'] ) {
124:             foreach ($data['groups'] as $group) {
125:                 $modelGroup = Mage::getModel('eav/entity_attribute_group');
126:                 $modelGroup->setId(is_numeric($group[0]) && $group[0] > 0 ? $group[0] : null)
127:                     ->setAttributeGroupName($group[1])
128:                     ->setAttributeSetId($this->getId())
129:                     ->setSortOrder($group[2]);
130: 
131:                 if( $data['attributes'] ) {
132:                     foreach( $data['attributes'] as $attribute ) {
133:                         if( $attribute[1] == $group[0] && in_array($attribute[0], $attributeIds) ) {
134:                             $modelAttribute = Mage::getModel('eav/entity_attribute');
135:                             $modelAttribute->setId($attribute[0])
136:                                 ->setAttributeGroupId($attribute[1])
137:                                 ->setAttributeSetId($this->getId())
138:                                 ->setEntityTypeId($this->getEntityTypeId())
139:                                 ->setSortOrder($attribute[2]);
140:                             $modelAttributeArray[] = $modelAttribute;
141:                         }
142:                     }
143:                     $modelGroup->setAttributes($modelAttributeArray);
144:                     $modelAttributeArray = array();
145:                 }
146:                 $modelGroupArray[] = $modelGroup;
147:             }
148:             $this->setGroups($modelGroupArray);
149:         }
150: 
151: 
152:         if( $data['not_attributes'] ) {
153:             $modelAttributeArray = array();
154:             foreach( $data['not_attributes'] as $attributeId ) {
155:                 $modelAttribute = Mage::getModel('eav/entity_attribute');
156: 
157:                 $modelAttribute->setEntityAttributeId($attributeId);
158:                 $modelAttributeArray[] = $modelAttribute;
159:             }
160:             $this->setRemoveAttributes($modelAttributeArray);
161:         }
162: 
163:         if( $data['removeGroups'] ) {
164:             $modelGroupArray = array();
165:             foreach( $data['removeGroups'] as $groupId ) {
166:                 $modelGroup = Mage::getModel('eav/entity_attribute_group');
167:                 $modelGroup->setId($groupId);
168: 
169:                 $modelGroupArray[] = $modelGroup;
170:             }
171:             $this->setRemoveGroups($modelGroupArray);
172:         }
173:         $this->setAttributeSetName($data['attribute_set_name'])
174:             ->setEntityTypeId($this->getEntityTypeId());
175: 
176:         return $this;
177:     }
178: 
179:     /**
180:      * Validate attribute set name
181:      *
182:      * @param string $name
183:      * @throws Mage_Eav_Exception
184:      * @return bool
185:      */
186:     public function validate()
187:     {
188:         if (!$this->_getResource()->validate($this, $this->getAttributeSetName())) {
189:             throw Mage::exception('Mage_Eav',
190:                 Mage::helper('eav')->__('Attribute set with the "%s" name already exists.', $this->getAttributeSetName())
191:             );
192:         }
193: 
194:         return true;
195:     }
196: 
197:     /**
198:      * Add set info to attributes
199:      *
200:      * @param string|Mage_Eav_Model_Entity_Type $entityType
201:      * @param array $attributes
202:      * @param int $setId
203:      * @return Mage_Eav_Model_Entity_Attribute_Set
204:      */
205:     public function addSetInfo($entityType, array $attributes, $setId = null)
206:     {
207:         $attributeIds   = array();
208:         $config         = Mage::getSingleton('eav/config');
209:         $entityType     = $config->getEntityType($entityType);
210:         foreach ($attributes as $attribute) {
211:             $attribute = $config->getAttribute($entityType, $attribute);
212:             if ($setId && is_array($attribute->getAttributeSetInfo($setId))) {
213:                 continue;
214:             }
215:             if (!$attribute->getAttributeId()) {
216:                 continue;
217:             }
218:             $attributeIds[] = $attribute->getAttributeId();
219:         }
220: 
221:         if ($attributeIds) {
222:             $setInfo = $this->_getResource()
223:                 ->getSetInfo($attributeIds, $setId);
224: 
225:             foreach ($attributes as $attribute) {
226:                 $attribute = $config->getAttribute($entityType, $attribute);
227:                 if (!$attribute->getAttributeId()) {
228:                     continue;
229:                 }
230:                 if (!in_array($attribute->getAttributeId(), $attributeIds)) {
231:                     continue;
232:                 }
233:                 if (is_numeric($setId)) {
234:                     $attributeSetInfo = $attribute->getAttributeSetInfo();
235:                     if (!is_array($attributeSetInfo)) {
236:                         $attributeSetInfo = array();
237:                     }
238:                     if (isset($setInfo[$attribute->getAttributeId()][$setId])) {
239:                         $attributeSetInfo[$setId] = $setInfo[$attribute->getAttributeId()][$setId];
240:                     }
241:                     $attribute->setAttributeSetInfo($attributeSetInfo);
242:                 } else {
243:                     if (isset($setInfo[$attribute->getAttributeId()])) {
244:                         $attribute->setAttributeSetInfo($setInfo[$attribute->getAttributeId()]);
245:                     }
246:                     else {
247:                         $attribute->setAttributeSetInfo(array());
248:                     }
249:                 }
250:             }
251:         }
252: 
253:         return $this;
254:     }
255: 
256:     /**
257:      * Return default Group Id for current or defined Attribute Set
258:      *
259:      * @param int $setId
260:      * @return int|null
261:      */
262:     public function getDefaultGroupId($setId = null)
263:     {
264:         if ($setId === null) {
265:             $setId = $this->getId();
266:         }
267:         if ($setId) {
268:             $groupId = $this->_getResource()->getDefaultGroupId($setId);
269:         } else {
270:             $groupId = null;
271:         }
272:         return $groupId;
273:     }
274: }
275: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0