Создание новых вариантов для атрибутов Magento
у меня возникли проблемы при попытке создать новые параметры на вкладке "настройка Параметров". При создании атрибута, я уже знаю, как сохранить данные правильно в базе данных. Я, заменив Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options
и с моим модуль для создания настраиваемых полей.
Мой модуль:
Config.xml
<config>
<blocks>
<adminhtml>
<rewrite>
<catalog_product_attribute_edit_tabs>Ceicom_Swatches_Block_Adminhtml_Tabs</catalog_product_attribute_edit_tabs>
<catalog_product_attribute_edit_tab_options>Ceicom_Swatches_Block_Adminhtml_Options</catalog_product_attribute_edit_tab_options>
</rewrite>
</adminhtml>
</blocks>
</config>
Ceicom/Swatches/Block/Adminhtml/Options.php
class Ceicom_Swatches_Block_Adminhtml_Options extends Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options
{
public function __construct()
{
parent::__construct();
$this->setTemplate('ceicom/attribute/options.phtml');
}
}
В файле phtml положил полях:
В то, что все указывает на то, для этого необходимо добавить новые столбцы в таблицу eav_attribute_option
. Например, campo_1
, campo_2
.
, Чтобы сохранить дополнительные поля, мне нужно переписать Mage_Eav_Model_Resource_Entity_Attribute::_saveOption()
.
, намек, как сделать это без изменения ядра, так же, как я сделал выше, используя rewrite
, и как сделать загрузку базы данных для входа в изменить атрибут?
1 answers
Можно переписать eav/entity_attribute с помощью другой модели.
Для этого добавьте в config.xml -
<global>
...
<models>
...
<eav_resource>
<rewrite>
<entity_attribute>Seumodulo_Model_Eav_Resource_Entity_Attribute</entity_attribute>
</rewrite>
</eav_resource>
...
</models>
...
</global>
Создайте файл
/app/code/local/Seumodulo/Eav/Model/Resource/Entity/Attribute.php
И используйте подпись класса, так
class Seumodulo_Eav_Model_Resource_Entity_Attribute extends Mage_Core_Model_Resource_Db_Abstract {
...
}
Убедитесь, что вы очистили кэша конфигурации и убедитесь, что модуль появляется в System->Configuration->Advanced->Disable Modules Output
Теста так, чтобы увидеть, если он работал
echo get_class(Mage::getResourceModel('eav/entity_attribute'));
Для сохранения вы можете sobreescrever методы, которые позволяют акций до и после сохранения. Они
Mage_Catalog_Model_Resource_Attribute::_beforeSave()
Mage_Catalog_Model_Resource_Attribute::_afterSave()
Вместо
Mage_Eav_Model_Resource_Entity_Attribute::_saveOption()
Таким образом, вы не должны беспокоиться о оригинальный код.
Примеры по ссылкам
--
Согласно evolucão устранения проблемы в комментариях, я пришел к выводу, что метод, который должен быть sobreescrito это catalog_entity_attribute_save_before