Ubah cakupan atribut

8

Ekstensi membuat tab tambahan di menu kategori saya. Dengan kode ini:

$setup->addAttribute('catalog_category', 'menutopdescription1', array(
    'group'         => 'General',
    'input'         => 'textarea',
    'type'          => 'text',
    'label'         => 'Topmenu description',
    'backend'       => '',
    'visible'       => 1,
    'required'      => 0,
    'is_wysiwyg_enabled' => 1,
    'visible_on_front' => 1,
    'note'=>'Category description for top menu dropdown',
    'is_html_allowed_on_front' => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));

Ini menghasilkan lingkup global. Sekarang saya ingin mengubahnya ke "situs web". Jadi saya dapat dengan mudah menerjemahkannya ke situs web saya yang lain.

Atribut ini tidak terlihat dalam daftar atribut Magento, jadi saya harus membuat perubahan dalam database. Kunci mana yang harus saya ubah?

Ronny
sumber

Jawaban:

16

Buat skrip pemutakhiran dengan kode ini:

$setup->updateAttribute('catalog_category', 'menutopdescription1', 'is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE);

$ setup adalah turunan dari Mage_Catalog_Model_Resource_Setup atau Mage_Eav_Model_Entity_Setup.

Jika Anda ingin mengubah db langsung (saya tidak merekomendasikan hal) Anda perlu mengubah lapangan is_globaluntuk 2dari meja catalog_eav_attributeuntuk catatan dengan id yang sama dengan atribut Anda memiliki di eav_attributemeja.

Marius
sumber
Anda dapat mengganti 'catalog_category'denganMage_Catalog_Model_Category::ENTITY
Dan
@Dan. Saya akan Jika saya bisa tetapi saya tidak mau. : D. sekarang serius ... itu akan berhasil juga. terima kasih
Marius
Cuplikan di atas tidak berfungsi untuk saya. Sebaliknya yang harus saya lakukan adalah:$installer->updateAttribute('Mage_Catalog_Model_Category::ENTITY', 'menutopdescription1', 'is_global', '0');
Louis B.
2
@LouisBataillard Saya sudah mengedit jawabannya (menunggu persetujuan). 'global' digunakan selama pembuatan atribut, yang dilewatkan melalui metode _prepareValues ​​(). Dan dimodifikasi menjadi 'is_global'. Mengapa pengembang melakukan ini, saya tidak tahu (saya merasa bingung untuk mengubah cara kami merujuk hal yang sama). 'is_global' adalah "atribut" atribut yang sebenarnya. Dan ini adalah kunci yang ingin kita rujuk selama pembaruan atribut.
Darren Felton
Bagaimana jika saya harus mengubah ruang lingkup ke situs web Globle instaed di DB?
Ketan Borada