| Server IP : 213.186.33.4 / Your IP : 216.73.217.131 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/awebpaca/boutiques/app/code/core/Mage/Eav/Block/Adminhtml/Attribute/Edit/Options/ |
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)
*/
/**
* Attribute add/edit form options tab
*
* @category Mage
* @package Mage_Eav
* @author Magento Core Team <core@magentocommerce.com>
*/
abstract class Mage_Eav_Block_Adminhtml_Attribute_Edit_Options_Abstract extends Mage_Adminhtml_Block_Widget
{
public function __construct()
{
parent::__construct();
$this->setTemplate('catalog/product/attribute/options.phtml');
}
/**
* Preparing layout, adding buttons
*
* @return Mage_Eav_Block_Adminhtml_Attribute_Edit_Options_Abstract
*/
protected function _prepareLayout()
{
$this->setChild('delete_button',
$this->getLayout()->createBlock('adminhtml/widget_button')
->setData(array(
'label' => Mage::helper('eav')->__('Delete'),
'class' => 'delete delete-option'
)));
$this->setChild('add_button',
$this->getLayout()->createBlock('adminhtml/widget_button')
->setData(array(
'label' => Mage::helper('eav')->__('Add Option'),
'class' => 'add',
'id' => 'add_new_option_button'
)));
return parent::_prepareLayout();
}
/**
* Retrieve HTML of delete button
*
* @return string
*/
public function getDeleteButtonHtml()
{
return $this->getChildHtml('delete_button');
}
/**
* Retrieve HTML of add button
*
* @return string
*/
public function getAddNewButtonHtml()
{
return $this->getChildHtml('add_button');
}
/**
* Retrieve stores collection with default store
*
* @return Mage_Core_Model_Mysql4_Store_Collection
*/
public function getStores()
{
$stores = $this->getData('stores');
if (is_null($stores)) {
$stores = Mage::getModel('core/store')
->getResourceCollection()
->setLoadDefault(true)
->load();
$this->setData('stores', $stores);
}
return $stores;
}
/**
* Retrieve attribute option values if attribute input type select or multiselect
*
* @return array
*/
public function getOptionValues()
{
$attributeType = $this->getAttributeObject()->getFrontendInput();
$defaultValues = $this->getAttributeObject()->getDefaultValue();
if ($attributeType == 'select' || $attributeType == 'multiselect') {
$defaultValues = explode(',', $defaultValues);
} else {
$defaultValues = array();
}
switch ($attributeType) {
case 'select':
$inputType = 'radio';
break;
case 'multiselect':
$inputType = 'checkbox';
break;
default:
$inputType = '';
break;
}
$values = $this->getData('option_values');
if (is_null($values)) {
$values = array();
$optionCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')
->setAttributeFilter($this->getAttributeObject()->getId())
->setPositionOrder('desc', true)
->load();
foreach ($optionCollection as $option) {
$value = array();
if (in_array($option->getId(), $defaultValues)) {
$value['checked'] = 'checked="checked"';
} else {
$value['checked'] = '';
}
$value['intype'] = $inputType;
$value['id'] = $option->getId();
$value['sort_order'] = $option->getSortOrder();
foreach ($this->getStores() as $store) {
$storeValues = $this->getStoreOptionValues($store->getId());
if (isset($storeValues[$option->getId()])) {
$value['store'.$store->getId()] = htmlspecialchars($storeValues[$option->getId()]);
}
else {
$value['store'.$store->getId()] = '';
}
}
$values[] = new Varien_Object($value);
}
$this->setData('option_values', $values);
}
return $values;
}
/**
* Retrieve frontend labels of attribute for each store
*
* @return array
*/
public function getLabelValues()
{
$values = array();
$values[0] = $this->getAttributeObject()->getFrontend()->getLabel();
// it can be array and cause bug
$frontendLabel = $this->getAttributeObject()->getFrontend()->getLabel();
if (is_array($frontendLabel)) {
$frontendLabel = array_shift($frontendLabel);
}
$storeLabels = $this->getAttributeObject()->getStoreLabels();
foreach ($this->getStores() as $store) {
if ($store->getId() != 0) {
$values[$store->getId()] = isset($storeLabels[$store->getId()]) ? $storeLabels[$store->getId()] : '';
}
}
return $values;
}
/**
* Retrieve attribute option values for given store id
*
* @param integer $storeId
* @return array
*/
public function getStoreOptionValues($storeId)
{
$values = $this->getData('store_option_values_'.$storeId);
if (is_null($values)) {
$values = array();
$valuesCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')
->setAttributeFilter($this->getAttributeObject()->getId())
->setStoreFilter($storeId, false)
->load();
foreach ($valuesCollection as $item) {
$values[$item->getId()] = $item->getValue();
}
$this->setData('store_option_values_'.$storeId, $values);
}
return $values;
}
/**
* Retrieve attribute object from registry
*
* @return Mage_Eav_Model_Entity_Attribute_Abstract
*/
public function getAttributeObject()
{
return Mage::registry('entity_attribute');
}
}