2012-01-24 12 views
5

Próbuję automatycznie ustawić zestawy atrybutów i atrybuty za pomocą skryptu instalacyjnego. Skrypt działa i wszystkie atrybuty są dodawane do zestawów, nie ma problemu z tym ... jednak, gdy patrzę na atrybuty visible_on_front, used_in_product_listing i global nie są ustawione poprawnie. Oto, co mam:Instalator/skrypt instalacyjny modułu Magento

$installer->addAttribute('catalog_product', '<attribute_code>', array(
    'group'   => 'General', 
    'input'   => 'date', 
    'type'   => 'datetime', 
    'label'   => '<some_label>', 
    'backend'  => 'eav/entity_attribute_backend_datetime', 
    'is_global'  => 0, 
    'global'  => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE, 
    'is_visible_on_front'  => 1, 
    'visible_on_front'   => 1, 
    'used_in_product_listing' => 1, 
)); 

Ktoś wie, jak mogę to naprawić, żeby działało?

Odpowiedz

19

Podejście polega na upewnieniu się, że używasz poprawnego obiektu Setup. Domyślny obiekt instalacyjny to Mage_Eav_Model_Entity_Setup, który doda twój atrybut do tabeli eav_attribute, ale nie jest on świadomy dodatkowych pól w catalog_eav_attribute, takich jak used_in_product_listing (lub customer_eav_attribute i jego pola w tym zakresie).

więc dodać to na początku skryptu instalacyjnego:

$installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup'); 
$installer->startSetup(); 

To powinno sprawić, że różnica.

Do Twojej dyspozycji jest Mage_Customer_Model_Entity_Setup, aby uzyskać ten sam efekt dla atrybutów klienta.

+0

THX za to ..! –

+0

jesteś synem Boga. dzięki. – Nikitas

+0

Świetnie, to naprawiło mój problem! Jesteś mężczyzną Jonathan Day. –

Powiązane problemy