Как переопределить модуль Magento Core? - PullRequest
2 голосов
/ 08 ноября 2010

Я хочу изменить код для таблицы «Заказ / продажа» в интерфейсе администратора и код генерации PDF, не изменяя файлы в каталоге core.Как мне это сделать?Я понимаю, что мне нужно создать новый модуль, который использует те же пути, что и файлы, которые я хочу перезаписать, но я не уверен, что еще мне нужно сделать ... есть ли какие-то специальные шаги, которые нужно выполнить для config.xml модуля ??

Ответы [ 3 ]

6 голосов
/ 08 ноября 2010

Если вы хотите сделать это в отдельном модуле, вы должны поместить новую модель (блок, помощник или все, что вам нужно переопределить - я буду использовать пример модели, то же самое для остальных - только контроллерыдовольно разные) в каталоге «Model» (например: code / local / MyNamespace / MyModule / Model / Sales / Order.php).В ваши модули config.xml вы должны добавить:

<global>
(...)
  <models>
    (...)
    <sales>
      <rewrite>
        <order>MyNamespace_MyModule_Model_Sales_Order</order>
      </rewrite>
    </sales>
  </models>
(...)
</global>

Конечно, ваша собственная модель Sales_Order должна наследоваться от базовой.Это самый чистый способ переопределить функциональность ядра Magento (возможно, помимо событий, но они не могут делать все).

0 голосов
/ 29 июля 2014

Как правильно указал mcmil, создайте модуль в собственном пространстве имен и продолжите его от базового класса. Делая это, вы пишете меньше кода и создаете меньше раздувания. Это также улучшает ваш путь обновления в будущем.

Если вы просто скопируете весь файл из app / code / core в app / code / local, а затем основной файл / класс изменится в следующем обновлении Magento, вы можете пропустить эти изменения. Если вы расширяете базовый класс своим модулем, тогда ваш новый класс унаследует эти изменения при обновлении Magento.

0 голосов
/ 08 ноября 2010

Создайте соответствующие каталоги и файлы, которые вы хотите изменить, в локальной папке для модуля.Это должно быть все, что нужно.

...