2012-02-13 2 views
0

Я пытаюсь установить пользовательскую модель бэкэнда для настраиваемого атрибута. Проблема в том, что Magento добавляет каталог «Mage» в путь, поэтому я не могу хранить все файлы в моем каталоге расширения.Добавление пользовательской модели бэкэда в пользовательский атрибут

Код:

$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 
$setup->addAttribute('catalog_category', $postData['attribute_code'], array(
         'label'  => $postData['frontend_label'], 
         'input'  => $postData['frontend_input'], 
         'backend' => 'my_company/myextension_model_category_attribute_backend_file', 
         'required' => $postData['is_required'], 
         'global'  => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE, 
         'group'  => $postData['attribute_group_name'], 
         'sort_order' => $postData['sort_order'] 
)); 

Вместо того пути, по которому относительно моего расширения, «Маг» получает предваряется и результаты этой ошибки:

Warning: include(Mage/My_Company/Model/My_Extension/Model/Category/Attribute/Backend/File.php): failed to open stream 

Я не нашел решение, которое работает с помощью метода addAttribute().

При поиске и устранении неисправностей не было сразу ясно, где Magento ожидает путь.

Все делает отлично (я использую средство визуализации файлов), но оно не сохраняется корректно без бэкэнда, конечно.

Я нахожусь на Magento 1.6.1.

ответ

1

Дважды проверьте, если ваше приложение/код/​​местные/Your_Company/Your_Extension/и т.д./config.xml зарегистрирована ваша модель системы Magento:

<global> 
    ... 
    <models> 
     <my_company> 
      <class>Company_Extension_Model_Category_Attribute_Backend_File</class> 
     </my_company> 
    </models> 
    ... 
</global> 
+0

Закрыть, кажется, мой синтаксис выключен. Изменение моей конфигурации, а затем моего бэкенда на «company/category_attribute_backend_file» приводит к тому, что не удалось открыть уведомление о потоке для пути «Компания/Расширение/Модель/Категория/Атрибут/Бэкэнд/Файл/Категория/Атрибут/Бэкэнд/Файл.php» –

+0

ОК, приложив бэкэнд к «расширению/файлу». Мне также нужно было обновить имя/путь к классу. Спасибо, сэр. –

Смежные вопросы