Получить значение атрибута пользовательской категории


Я создал пользовательский атрибут категории, используя этот учебник http://gauss-development.com/blog/tutorials/adding-custom-category-attributes-magento /.

<?php
$installer = $this;
$installer->startSetup();
$attribute  = array(
    'type'          =>  'text',
    'label'         =>  'Extra Title',
    'input'         =>  'text',
    'global'        =>  Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'visible'       =>  true,
    'required'      =>  false,
    'user_defined'  =>  true,
    'default'       =>  "",
    'group'         =>  "General Information"
);
$installer->addAttribute('catalog_category', 'cat_extra_title', $attribute);
$installer->endSetup();
?>

Я проверил, что атрибут обычно хранится в таблице eav_attribute, но я не могу получить его значение.

$category = Mage::registry('current_category');
if ($category){
   $value = $category->getData('cat_extra_title'); //value is empty
}

Есть идеи?

Author: Baby in Magento, 2016-05-04

3 answers

После тестирования многих возможных решений это было единственное, которое сработало для меня:

$cat_extra_title = Mage::getModel('catalog/category')->load($category->getId())->getData('cat_extra_title');
 3
Author: zekia, 2016-05-05 07:00:10

При добавлении нового атрибута для Категории или Продукта нам нужно поместить этот атрибут в Набор атрибутов и группу атрибутов. Таким образом, ваш код должен выглядеть следующим образом:

$installer->addAttribute('catalog_category', 'cat_extra_title', array(
    'type'              => 'text',
    'label'             => 'Extra Title',
    'input'             => 'text',
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'required'          => false,
    'default'           => '',
    'user_defined'  =>  true,
    'default'       =>  "",
));
$entityTypeId     = $installer->getEntityTypeId('catalog_category');
$attributeSetId   = $installer->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
$installer->addAttributeToGroup(
    $entityTypeId,
    $attributeSetId,
    $attributeGroupId,
    'cat_extra_title'
);
 1
Author: Neklo.com, 2016-05-05 07:10:06

Сегодня я столкнулся с той же проблемой. Я создал новый пользовательский атрибут категории (int/select), и я бы попробовал это в list.phtml и получил пустое значение:

$value = Mage::registry('current_category')->getData('my_custom_Attribute');

Однако это было решено путем переиндексации catalog_category_flat; с n98:

n98-magerun.phar index:reindex catalog_category_flat

Теперь тот же код выдает значение , пока значение существует для категории (если значение пустое/НУЛЕВОЕ, то, конечно, оно все равно будет выдавать НУЛЕВОЕ значение).

 1
Author: Aaron Mannino, 2019-05-10 00:01:20