| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/a/w/e/awebpaca/boutiques/app/code/core/Mage/Eav/Model/Entity/Attribute/ |
Upload File : |
<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@magentocommerce.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magentocommerce.com for more information.
*
* @category Mage
* @package Mage_Eav
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
/**
* Eav attribute set model
*
* @category Mage
* @package Mage_Eav
* @author Magento Core Team <core@magentocommerce.com>
*/
class Mage_Eav_Model_Entity_Attribute_Set extends Mage_Core_Model_Abstract
{
/**
* Initialize resource model
*
*/
protected function _construct()
{
$this->_init('eav/entity_attribute_set');
}
/**
* Init attribute set from skeleton (another attribute set)
*
* @param int $skeletonId
* @return Mage_Eav_Model_Entity_Attribute_Set
*/
public function initFromSkeleton($skeletonId)
{
$groups = Mage::getModel('eav/entity_attribute_group')
->getResourceCollection()
->setAttributeSetFilter($skeletonId)
->load();
$newGroups = array();
foreach( $groups as $group ) {
$newGroup = clone $group;
$newGroup->setId(null)
->setAttributeSetId($this->getId())
->setDefaultId($group->getDefaultId());
$groupAttributesCollection = Mage::getModel('eav/entity_attribute')
->getResourceCollection()
->setAttributeGroupFilter($group->getId())
->load();
$newAttributes = array();
foreach( $groupAttributesCollection as $attribute ) {
$newAttribute = Mage::getModel('eav/entity_attribute')
->setId($attribute->getId())
//->setAttributeGroupId($newGroup->getId())
->setAttributeSetId($this->getId())
->setEntityTypeId($this->getEntityTypeId())
->setSortOrder($attribute->getSortOrder());
$newAttributes[] = $newAttribute;
}
$newGroup->setAttributes($newAttributes);
$newGroups[] = $newGroup;
}
$this->setGroups($newGroups);
return $this;
}
/**
* Collect data for save
*
* @param array $data
*/
public function organizeData($data)
{
$modelGroupArray = array();
$modelAttributeArray = array();
$attributeIds = array();
if ($data['attributes']) {
$ids = array();
foreach ($data['attributes'] as $attribute) {
$ids[] = $attribute[0];
}
$attributeIds = Mage::getResourceSingleton('eav/entity_attribute')
->getValidAttributeIds($ids);
}
if( $data['groups'] ) {
foreach( $data['groups'] as $group ) {
$modelGroup = Mage::getModel('eav/entity_attribute_group');
$modelGroup->setId(is_numeric($group[0]) && $group[0] > 0 ? $group[0] : null)
->setAttributeGroupName($group[1])
->setAttributeSetId($this->getId())
->setSortOrder($group[2]);
if( $data['attributes'] ) {
foreach( $data['attributes'] as $attribute ) {
if( $attribute[1] == $group[0] && in_array($attribute[0], $attributeIds) ) {
$modelAttribute = Mage::getModel('eav/entity_attribute');
$modelAttribute->setId($attribute[0])
->setAttributeGroupId($attribute[1])
->setAttributeSetId($this->getId())
->setEntityTypeId($this->getEntityTypeId())
->setSortOrder($attribute[2]);
$modelAttributeArray[] = $modelAttribute;
}
}
$modelGroup->setAttributes($modelAttributeArray);
$modelAttributeArray = array();
}
$modelGroupArray[] = $modelGroup;
}
$this->setGroups($modelGroupArray);
}
if( $data['not_attributes'] ) {
$modelAttributeArray = array();
foreach( $data['not_attributes'] as $attributeId ) {
$modelAttribute = Mage::getModel('eav/entity_attribute');
$modelAttribute->setEntityAttributeId($attributeId);
$modelAttributeArray[] = $modelAttribute;
}
$this->setRemoveAttributes($modelAttributeArray);
}
if( $data['removeGroups'] ) {
$modelGroupArray = array();
foreach( $data['removeGroups'] as $groupId ) {
$modelGroup = Mage::getModel('eav/entity_attribute_group');
$modelGroup->setId($groupId);
$modelGroupArray[] = $modelGroup;
}
$this->setRemoveGroups($modelGroupArray);
}
$this->setAttributeSetName($data['attribute_set_name'])
->setEntityTypeId($this->getEntityTypeId());
}
/**
* Validate attribute set name
*
* @param string $name
* @throws Mage_Core_Exception
* @return bool
*/
public function validate()
{
if (!$this->_getResource()->validate($this, $this->getAttributeSetName())) {
Mage::throwException(
Mage::helper('eav')->__('Attribute set with the "%s" name already exists.', $this->getAttributeSetName())
);
}
return true;
}
/**
* Add set info to attributes
*
* @param string|Mage_Eav_Model_Entity_Type $entityType
* @param array $attributes
* @param int $setId
* @return Mage_Eav_Model_Entity_Attribute_Set
*/
public function addSetInfo($entityType, array $attributes, $setId = null)
{
$attributeIds = array();
$config = Mage::getSingleton('eav/config');
$entityType = $config->getEntityType($entityType);
foreach ($attributes as $attribute) {
$attribute = $config->getAttribute($entityType, $attribute);
if ($setId && is_array($attribute->getAttributeSetInfo($setId))) {
continue;
}
if (!$attribute->getAttributeId()) {
continue;
}
$attributeIds[] = $attribute->getAttributeId();
}
if ($attributeIds) {
$setInfo = $this->_getResource()
->getSetInfo($attributeIds, $setId);
foreach ($attributes as $attribute) {
$attribute = $config->getAttribute($entityType, $attribute);
if (!$attribute->getAttributeId()) {
continue;
}
if (!in_array($attribute->getAttributeId(), $attributeIds)) {
continue;
}
if (is_numeric($setId)) {
$attributeSetInfo = $attribute->getAttributeSetInfo();
if (!is_array($attributeSetInfo)) {
$attributeSetInfo = array();
}
if (isset($setInfo[$attribute->getAttributeId()][$setId])) {
$attributeSetInfo[$setId] = $setInfo[$attribute->getAttributeId()][$setId];
}
$attribute->setAttributeSetInfo($attributeSetInfo);
}
else {
if (isset($setInfo[$attribute->getAttributeId()])) {
$attribute->setAttributeSetInfo($setInfo[$attribute->getAttributeId()]);
}
else {
$attribute->setAttributeSetInfo(array());
}
}
}
}
return $this;
}
}