Magento переписать контроллер расширений

Я пытаюсь внести небольшие изменения в модуль сообщества MDN_Organizer в Magento 1.9, и это оказалось для меня кошмаром.

Мне нужно также изменить одну сетку, поэтому я создал в коде/локальных папках MDN/Organizer/Block/Task и новый файл Grip.php

Для этого мне нужно переписать одно действие в контроллере TaskController, которое находится в папке MDN/Organizer/Controllers/TaskController.php.

Можно ли переписать этот контроллер в локальную папку MDN/Organizer? Или мне нужно поместить контроллер в мои собственные модули?

Может ли контроллер иметь такое же имя? Как должен выглядеть etc/config?

Контроллер для администратора.


person Rastislav    schedule 21.11.2014    source источник
comment
Что вы уже сделали в исследованиях? На все ваши вопросы можно ответить, просто прочитав учебник о том, как создать контроллер magento или как добавить столбец в сетку администратора...   -  person RichardBernards    schedule 21.11.2014
comment
учебные пособия в основном показывают, как расширять контроллеры ядра. Этот вопрос поможет каждому новому разработчику magento.   -  person Rastislav    schedule 21.11.2014
comment
Расширение стороннего контроллера происходит точно так же, как и расширение основного контроллера...   -  person RichardBernards    schedule 21.11.2014
comment
Можно ли расширить его в тех же папках локально, что и в сообществе или ядре?   -  person Rastislav    schedule 21.11.2014
comment
Я не понимаю вашего последнего вопроса...   -  person RichardBernards    schedule 21.11.2014
comment
Исходный TaskController находится в папках community/MDN/Organizer/controllers. Я создал расширенный TaskController в папке local/MDN/Organizer/controllers. Что нужно добавить в config.xml в local/MDN/Organizer/etc?   -  person Rastislav    schedule 21.11.2014
comment
Да, используя атрибут before= и устанавливая модуль переопределения в локальном кодовом пуле! 2 секунды Google: magento.stackexchange. ком/вопросы/9363/   -  person RichardBernards    schedule 21.11.2014
comment
В этом примере другое имя модуля. Первоначальным был Unirgy и новый Guru. Можно ли создать в локальной модели с тем же именем, что и исходный, и расширить контроллер с таким же именем?   -  person Rastislav    schedule 21.11.2014
comment
Вот почему я советую вам следовать руководству... В примере, frontName udpoadmin модуля сообщества имеет поправку/переопределение в локальном кодовом пуле (по-прежнему для frontName udpoadmin)! Имя модуля не обязательно должно быть одинаковым... даже пространство имен должно быть другим... Переопределение контроллеров не работает так же, как переопределение моделей!   -  person RichardBernards    schedule 21.11.2014


Ответы (1)


Вам нужно создать новый модуль, который вы можете сохранить локально или в сообществе, это не имеет значения, но добавьте код в свой файл.

приложение\etc\modules\Mycompany_Modulename.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Mycompany_Modulename>
      <active>true</active>
      <codePool>local</codePool>
      <depends>
        <MDN_Organizer/>
      </depends>
    </Mycompany_Modulename>
  </modules>
</config> 
person Emipro Technologies Pvt. Ltd.    schedule 22.11.2014