2012-11-09 7 views
5

Próbuję programowo dodać atrybut niestandardowy do skryptu aktualizacji modułu. Skrypt działa poprawnie i tworzy nowy atrybut (tj. Pojawia się na liście administratorów Magento w obszarze Katalog-> Atrybuty-> Zarządzaj atrybutami po uruchomieniu skryptu).Widoczność nowego atrybutu utworzonego przez skrypt aktualizacyjny Magento

Początkowo używałem klasę Mage_Eav_Model_Entity_Setup (zgodnie z zaleceniami here i ani „widoczny”, ani pola „apply_to” były ustawione zgodnie z przeznaczeniem („widoczny” zawsze był fałszywy i „stosuje się do” pozostał jako „All produkcie typy”zamiast korzystania z listy dostarczonej w skrypcie).

Potem znalazłem this, który wyjaśnił, że powinienem użyć Mage_Catalog_Model_Resource_Setup zamiast, i że ma stały problem z«apply_to».

Ale nadal mogę atrybut 'visible' atrybutu "visible" jest ustawiony na true .Jeśli ktokolwiek ma jakieś pomysły, dlaczego atrybut "visible" wciąż nie jest ustawiony tak jak on ld Byłbym bardzo wdzięczny za wiadomość, dzięki!

Oto mój uaktualnienia kod skryptu:

$updater = $this;  // $this is class Mage_Eav_Model_Entity_Setup 
$updater->startSetup(); 
$updater->addAttribute('catalog_product', 'my_test_attribute', array(
    'label'    => 'My Test Attribute', 
    'type'    => 'int', 
    'input'    => 'select', 
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
    'apply_to'   => 'simple,configurable', 
    'group'    => 'General', 
    'visible'   => true, 
    'required'   => true, 
    'user_defined'  => true,   
)); 
$updater->endSetup(); 

Używam Magento 1.7.0.1 w WAMP na Windows 7.

+0

Czy możesz wyjaśnić czym jest "atrybut" widoczny "atrybut"? –

+1

Tim, przez "ustawienie widocznego atrybutu na true" mam na myśli to, że na liście administratorów Magento w katalogu-> Atrybuty-> Zarządzaj atrybutami kolumna "Widoczny" powinna być ustawiona na "Tak" dla nowego atrybutu. –

+0

To "Mage_Catalog_Model_Resource_Setup" sprawiło, że oszalałem! Dzięki! –

Odpowiedz

1

Rozwiązałem to teraz - potrzebowałem ustawić atrybut "visible_on_front", a nie tylko "widoczny". tj. dodałem tę linię do powyższego skryptu i teraz działa:

'visible_on_front' => true, 
0

Ten atrybut nie jest logiczna, jest liczbą całkowitą. Więc ustawiłeś 1 = prawda 0 = fałsz;

+0

Dziękuję za odpowiedź, ale użycie 1 i 0 nie ma znaczenia. –

Powiązane problemy