2013-07-11 2 views
1

У меня есть модель сообщества доставки, у которой есть классный класс/файл с верблюдом, который я хотел бы переопределить.Как переопределить файл модели camelCased в Magento?

Исходный файл/класс находится под приложения/код/​​сообщества/PedroTeixeira/Correios/Модель/Carrier/CorreiosMethod.php, и я хотел бы переопределить метод этого файла, или весь класс под приложения /code/local/Esmart/CorreiosImprovements/Model/Carrier/CorreiosMethod.php.

В конфигурационном файле оригинальный модуль, я могу видеть это модель заявление в config.xml следующим образом:

<global> 
... 
    <models> 
     <pedroteixeira_correios> 
      <class>PedroTeixeira_Correios_Model</class> 
     </pedroteixeira_correios> 
    </models> 
... 
    <sales> 
     <shipping> 
      <carriers> 
       <pedroteixeira_correios> 
        <class>PedroTeixeira_Correios_Model_Carrier_CorreiosMethod</class> 
       </pedroteixeira_correios> 
      </carriers> 
     </shipping> 
    </sales> 
</global> 

В мой модуль config.xml Я объявил Процентовка следующим образом:

<global> 
    <models> 
     <esmart_correiosimprovements> 
      <class>Esmart_CorreiosImprovements_Model</class> 
     </esmart_correiosimprovements> 

     <pedroteixeira_correios> 
      <rewrite> 
       <carrier_correiosMethod>Esmart_CorreiosImprovements_Model_Carrier_CorreiosMethod</carrier_correiosMethod> 
      </rewrite> 
     </pedroteixeira_correios> 
    </models> 
</global> 

Обычно файл модели не является верблюжьим корпусом, поэтому, я думаю, это проще. Или я чего-то не хватает?

Любая помощь приветствуется.

ответ

5

Группа классов (<pedroteixeira_correios>), используемая в синтаксисе rewrite, зависит от объявления группы классов в конфигурации модуля.

Идентификатор класса (<carrier_correiosMethod>) для использования в синтаксисе rewrite полностью зависит от того, как класс вызывается в коде. Для примера, следующий будет все экземпляры оригинального экземпляра класса на чувствительны к регистру файловых систем:

  • pedroteixeira_correios/carrier_correiosMethod
  • pedroteixeira_correios/Carrier_correiosMethod
  • pedroteixeira_correios/carrier_CorreiosMethod
  • pedroteixeira_correios/Carrier_CorreiosMethod

В случае -чувствительные файловые системы, любой комбинат иона корпуса для части идентификатора класса даст экземпляр модели. Хотелось бы надеяться, что разработчик расширения следил за последовательным шаблоном при указании своего класса в коде/разметке, но вы можете указать несколько xpaths, используя список выше, чтобы обрабатывать все перестановки.

+0

Hi @benmarks. Спасибо за ответ. Приятно снова услышать от вас. =) По-моему, я пропустил важную часть оригинальной декларации модуля в моем вопросе, ведь это относится к объявлению класса CorreiosMethod. Но я все еще не нашел ошибку при переписывании. Помогает ли дополнительная информация помочь мне? =) –

+0

Ах. Вы не можете переписать это так, как написано. Без аргумента/in classname класс создается непосредственно. Ваши варианты - переопределить узел 'sales/shipping/carrier/pedroteixeira_correios/class' для использования вашего класса, использовать нотацию группы классов и, следовательно, переписать. – benmarks

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