Intereting Posts
SOAP-ERROR: Разбор WSDL: не удалось загрузить из «XXX / check? Wsdl»: не удалось загрузить внешний объект «XXX / check? Wsdl» Laravel принадлежит отношениям ToMany, определяющим локальный ключ на обеих таблицах Как сравнить строку со списком строк в PHP? Как установить параметр пользовательской ширины в тег img, созданный tinymce? как передать эти строки из php в javascript скрипт php для регистрации необработанных данных POST Скрыть объявление XML в файлах, сгенерированных с помощью PHP Почему переменная не может начинаться с номера? Какова длина вывода PHP crypt ()? php pdo: получить имя столбца таблицы Как распечатать страницу в PHP для печати с использованием принтера, аналогичного работе с окном.print () Как получить доступ к Tumblr API Photo Data Feed (т.е. все фотографии, весь архив)? Как заполнить список динамических навигационных меню, следуя моим структурам таблиц, используя php (codeigniter) и mysql Как поймать эту ошибку: «Примечание: Неопределенное смещение: 0» Вызов скрипта php через регулярные интервалы с помощью javascript

Создание новых параметров атрибутов 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 / Образцы / блок / 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, помещенном в пользовательские поля:

inserir a descrição da imagem aqui

Очевидно, для этого нужно добавить новые столбцы в таблицу eav_attribute_option . Например]: field_1 , field_2 .

Чтобы сохранить дополнительные поля, мне нужно переписать: Mage_Eav_Model_Resource_Entity_Attribute::_saveOption() .

Любые советы о том, как это сделать, не меняя CORE, как я уже делал, используя rewrite , и как загрузить банк данных для ввода для редактирования атрибута?

Solutions Collecting From Web of "Создание новых параметров атрибутов Magento"

Это возможное решение:

В начале я попытался переопределить класс eav Mage_Eav_Model_Resource_Entity_Attribute, но я не работал. Подойдя ближе к коду, я обнаружил, что метод _saveOption вызывается другим классом, который расширяет Mage_Eav_Model_Resource_Entity_Attribute. Поэтому, если вы переопределите Mage_Eav_Model_Resource_Entity_Attribute своим специальным классом, я не буду иметь никакого эффекта в процессе сохранения. Я также понял, что есть другие кланы, которые расширяют Mage_Eav_Model_Resource_Entity_Attribute

Это классы:

  • Mage_Catalog_Model_Resource_Attribute
  • Mage_Eav_Model_Mysql4_Entity_Attribute
  • Mage_Eav_Model_Resource_Attribute (аннотация)

Чтобы иметь возможность переопределить метод в процессе сохранения параметра атрибута, вам необходимо:

1) Создал класс, который расширяет Mage_Eav_Model_Resource_Entity_Attribute и переопределяет метод

class My_Module_Model_Eav_Resource_Entity_Attribute extends Mage_Eav_Model_Resource_Entity_Attribute{ protected function _saveOption(Mage_Core_Model_Abstract $object){ //your custom logic here } }

Не переопределите Mage_Eav_Model_Resource_Entity_Attribute в конфигурации вашего модуля, этот класс будет служить родителем нашего основного целевого класса Mage_Catalog_Model_Resource_Attribute, который принимает участие в процессе сохранения.

2) Переопределите в конфигурации вашего модуля класс Mage_Catalog_Model_Resource_Attribute с новым классом, который расширит ваш предыдущий созданный класс My_Module_Model_Eav_Resource_Entity_Attribute

Ваша конфигурация будет выглядеть так:

 <global> <models> <!-- Overrides Mage_Catalog_Model_Resource_Attribute --> <catalog_resource> <rewrite> <attribute>My_Module_Model_Catalog_Resource_Attribute</attribute> </rewrite> </catalog_resource> </models> <!-- The rest of global config section --> </global> 

Теперь вы увидите, что ваш пользовательский метод __saveOption выполняется при сохранении атрибута.