magento: добавить attibute к продукту, но не показывать при редактировании продукта - PullRequest
0 голосов
/ 01 декабря 2011

В соответствии с комментариями и ответами Bens я обновил свой сценарий, комментарии указывают на изменения

{Magento 1.4.0.1} в настоящее время у меня есть установочный скрипт:

$installer = $this;
$installer->startSetup();

//commented out to use factory method
//$setup = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup');
$setup = Mage::getResourceModel('catalog/setup','core_setup');    

if(!$setup->getAttribute('catalog_product','attribute_code')){
    $newFields = array(
        'attribute_code' => array(
            'type'              => 'text',
            'label'             => 'Attribute Label',
            //added visible option
            'visible'           => false,
        ),
    );

    $entities = array(
        'catalog_product',
    );

    foreach($newFields as $attributeName => $attributeDefs) {
        foreach ($entities as $entity) {
            $setup->addAttribute($entity, $attributeName, array(
                'type'                          => $attributeDefs['type'],
                'label'                         => $attributeDefs['label'],
                //added visible option
                'visible'                       => $attributeDefs['visible'],
                'class'                         => '',
                'required'                      => false,
            ));
        }
    }
}

$installer->endSetup();

Прекрасно работает! За исключением того, что атрибут отображается в группе атрибутов General при редактировании продукта, и я не хочу, чтобы он вообще отображался (это секретный атрибут ниндзя), я что-то не так делаю? или что-то, что я должен сделать, чтобы Magento знал, что это не должно появляться?

1 Ответ

0 голосов
/ 01 декабря 2011

Используя addAttribute(), вы можете установить 'visible index to false . Using updateAttribute () `, вы должны сделать следующее:

$setup->updateAttribute('catalog_product','attr_code','is_visible',false);

Дайте мне знать, если я ошибаюсь.

...