0byt3m1n1
Path:
/
data
/
applications
/
aps
/
magento
/
1.1.3-2
/
standard
/
htdocs
/
app
/
code
/
core
/
Mage
/
Catalog
/
Model
/
[
Home
]
File: Config.php
<?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. * * @category Mage * @package Mage_Catalog * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ class Mage_Catalog_Model_Config extends Mage_Eav_Model_Config { protected $_attributeSetsById; protected $_attributeSetsByName; protected $_attributeGroupsById; protected $_attributeGroupsByName; protected $_productTypesById; const XML_PATH_PRODUCT_COLLECTION_ATTRIBUTES = 'frontend/product/collection/attributes'; public function loadAttributeSets() { if ($this->_attributeSetsById) { return $this; } $attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_set_collection') ->load(); $this->_attributeSetsById = array(); $this->_attributeSetsByName = array(); foreach ($attributeSetCollection as $id=>$attributeSet) { $entityTypeId = $attributeSet->getEntityTypeId(); $name = $attributeSet->getAttributeSetName(); $this->_attributeSetsById[$entityTypeId][$id] = $name; $this->_attributeSetsByName[$entityTypeId][strtolower($name)] = $id; } return $this; } public function getAttributeSetName($entityTypeId, $id) { if (!is_numeric($id)) { return $id; } $this->loadAttributeSets(); if (!is_numeric($entityTypeId)) { $entityTypeId = $this->getEntityType($entityTypeId)->getId(); } return isset($this->_attributeSetsById[$entityTypeId][$id]) ? $this->_attributeSetsById[$entityTypeId][$id] : false; } public function getAttributeSetId($entityTypeId, $name) { if (is_numeric($name)) { return $name; } $this->loadAttributeSets(); if (!is_numeric($entityTypeId)) { $entityTypeId = $this->getEntityType($entityTypeId)->getId(); } $name = strtolower($name); return isset($this->_attributeSetsByName[$entityTypeId][$name]) ? $this->_attributeSetsByName[$entityTypeId][$name] : false; } public function loadAttributeGroups() { if ($this->_attributeGroupsById) { return $this; } $attributeSetCollection = Mage::getResourceModel('eav/entity_attribute_group_collection') ->load(); $this->_attributeGroupsById = array(); $this->_attributeGroupsByName = array(); foreach ($attributeSetCollection as $id=>$attributeGroup) { $attributeSetId = $attributeGroup->getAttributeSetId(); $name = $attributeGroup->getAttributeGroupName(); $this->_attributeGroupsById[$attributeSetId][$id] = $name; $this->_attributeGroupsByName[$attributeSetId][strtolower($name)] = $id; } return $this; } public function getAttributeGroupName($attributeSetId, $id) { if (!is_numeric($id)) { return $id; } $this->loadAttributeGroups(); if (!is_numeric($attributeSetId)) { $attributeSetId = $this->getAttributeSetId($attributeSetId); } return isset($this->_attributeGroupsById[$attributeSetId][$id]) ? $this->_attributeGroupsById[$attributeSetId][$id] : false; } public function getAttributeGroupId($attributeSetId, $name) { if (is_numeric($name)) { return $name; } $this->loadAttributeGroups(); if (!is_numeric($attributeSetId)) { $attributeSetId = $this->getAttributeSetId($attributeSetId); } $name = strtolower($name); return isset($this->_attributeGroupsById[$attributeSetId][$name]) ? $this->_attributeGroupsById[$attributeSetId][$name] : false; } public function loadProductTypes() { if ($this->_productTypesById) { return $this; } /* $productTypeCollection = Mage::getResourceModel('catalog/product_type_collection') ->load(); */ $productTypeCollection = Mage::getModel('catalog/product_type') ->getOptionArray(); $this->_productTypesById = array(); $this->_productTypesByName = array(); foreach ($productTypeCollection as $id=>$type) { //$name = $type->getCode(); $name = $type; $this->_productTypesById[$id] = $name; $this->_productTypesByName[strtolower($name)] = $id; } return $this; } public function getProductTypeId($name) { if (is_numeric($name)) { return $name; } $this->loadProductTypes(); $name = strtolower($name); return isset($this->_productTypesByName[$name]) ? $this->_productTypesByName[$name] : false; } public function getProductTypeName($id) { if (!is_numeric($id)) { return $id; } $this->loadProductTypes(); return isset($this->_productTypesById[$id]) ? $this->_productTypesById[$id] : false; } public function getSourceOptionId($source, $value) { foreach ($source->getAllOptions() as $option) { if (strcasecmp($option['label'], $value)==0 || $option['value'] == $value) { return $option['value']; } } return null; } /** * Load product attributes from config file * * @return array */ public function getProductAttributes() { $attributes = Mage::getConfig()->getNode(self::XML_PATH_PRODUCT_COLLECTION_ATTRIBUTES)->asArray(); return array_keys($attributes); } }