Modificare l'ambito di un attributo
-
16-10-2019 - |
Domanda
Un estensione ha creato una scheda in più nel mio menu di categoria. Con questo codice:
$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,
));
Il risultato è una portata globale. Ora vorrei cambiarlo in "sito web". Così posso facilmente tradurlo per i miei altri siti web.
Questo attributo non è visibile nella lista di attributi di Magento, quindi devo fare i cambiamenti nel database. Quale chiave devo cambiare?
Soluzione
Creare uno script di aggiornamento con questo codice:
$setup->updateAttribute('catalog_category', 'menutopdescription1', 'is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE);
$ setup è un esempio di Mage_Catalog_Model_Resource_Setup o Mage_Eav_Model_Entity_Setup.
Se si desidera modificare direttamente il db (I non lo consiglio) è necessario modificare il is_global
campo per 2
dalla catalog_eav_attribute
tavola per il record con l'id lo stesso come attributo ha nella tabella eav_attribute
.