Переопределение контроллера администратора Magento для начинающих

В разделе администратора Magento я хочу переопределить файл контроллера «Sales/Order/ShipmentController.php» основного Mage.

Я пытался переписать URL-адрес, используя теги "от" и "до", но тщетно.
Я не знаю, как это сделать на самом деле и правильно, так как я новичок в Magento.

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

Кроме того, если возможно, скажите, каково фактическое назначение контроллера как для внешнего, так и для внутреннего интерфейса?

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


person Knowledge Craving    schedule 17.05.2010    source источник
comment
Есть ли конкретное действие или блок, который вы хотите переопределить, или вы каким-то фундаментальным образом меняете все действия на контроллере?   -  person Joseph Mastey    schedule 17.05.2010
comment
Нет, я хочу переопределить только действие сохранения контроллера отгрузки модуля продаж, в админке   -  person Knowledge Craving    schedule 18.05.2010
comment
Если пользователи SO сочтут этот пост полезным, пожалуйста, проголосуйте за этот вопрос, а также проголосуйте за полезные ответы.   -  person Knowledge Craving    schedule 27.01.2011


Ответы (2)


Не уверен, о чем вы говорите с тегами "от" и "до"... Что вам нужно сделать, это написать простой пользовательский модуль (лучший способ) или просто переопределить контроллер, поместив его в /app/code /локальный/ каталог.

[Изменить] — я написал пост, в котором рассказывается о переопределении различных элементов Magento, включая контроллеры: http://prattski.com/2010/06/24/magento-overriding-core-files-blocks-models-resources-controllers/

Надеюсь, это поможет.

person Prattski    schedule 18.05.2010
comment
Эта процедура самая простая из всех, согласен. Но что, если я действительно хочу изменить пространство имен, имя модуля и иерархию основного контроллера? Например, вместо основного файла контроллера отгрузки основного Mage (как вы указали), что, если я захочу этот /app/code/local/Stack/Overflow/CustomController.php? Вот где я застрял. Пожалуйста помоги. - person Knowledge Craving; 18.05.2010
comment
Если вы перейдете по ссылке, которую я предоставил, вы узнаете, как создать свой собственный модуль и переопределить контроллер. Это позволит вам сохранить свой код в app/code/local/your/code/. Если вы хотите полностью создать свой собственный контроллер, это аналогичный процесс. Просто погуглите статью о создании собственного модуля с контроллером. Там много всего. - person Prattski; 18.05.2010
comment
Обратите внимание, что копирование основного контроллера в локальный не сработает. Вы можете использовать этот метод для переопределения моделей и блоков, но не контроллеров. Вам нужно следовать сообщению вики с правилами перезаписи. - person Jonathan Day; 26.08.2010
comment
Просто хочу добавить, что Helpers также можно перезаписать, скопировав их в локальный codePool. Однако это никогда не будет лучшим решением для моделей/блоков/помощников. Эти классы должны быть расширены, а не скопированы в локальные. - person Darren Felton; 11.02.2015

Здесь указан правильный метод переопределения контроллера: http://www.magentocommerce.com/boards/viewthread/16224/

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

person Leesbian    schedule 04.06.2010