Это стало значительно проще в ветке Magento 1.3. Все, что вам нужно сделать, это добавить это
<frontend>
<routers>
<downloadable>
<args>
<modules>
<modulename before="Mage_Downloadable">Yourpackagename_Yourmodulename</modulename>
</modules>
</args>
</downloadable>
</routers>
</frontend>
Тег должен совпадать с тегом в модуле, который вы пытаетесь переопределить. Mage_Downloadable
является префиксом имени класса того же самого. Yourpackagename_Yourmodulename
- префикс имени класса вашего модуля.
Имея это, Magento сначала проверит контроллеры вашего модуля на предмет совпадения.
app/code/local/Packagename/Modulename/controllers/DownloadController.php
Если подходящее действие не найдено, оно возвращается к оригиналу. Обязательно ознакомьтесь с моей статьей журнала диспетчеризации диспетчера Magento для помощи в устранении проблем с маршрутизацией.
Что удивительного в этом подходе (в отличие от подхода переписывания ), так это вы
Не нужно вручную запрашивать старый файл контроллера в вашем контроллере
Вам не нужно предоставлять новые правила макета. Magento, кажется, волшебным образом сохраняет ручки макета такими, какими они были