Было много раз, когда все, что я хочу сделать, это переопределить определенное действие на контроллере, но не все.В большинстве случаев я просто перегрузил весь контроллер, но мне интересно, есть ли лучший способ?Есть ли у Magento способ просто переопределить одно действие в контроллере, оставив исходный контроллер и другие действия такими, какими они были?
Пример:
class Mage_Core_AwesomeController extends Mage_Core_Controller_Front_Action {
//has url of awesome/index
public function indexAction(){
//Some Awesome code
}
//has url of awesome/torewrite
public function torewriteAction(){
//Some Awesome code
}
}
class Local_Core_AwesomeController extends Mage_Core_AwesomeController {
//has url of awesome/torewrite
public function torewriteAction(){
//Some Awesome Override code
}
}
Таким образом, URL-адрес awesome / torewrite будет идтив Local_Core_AwesomeController, но URL-адрес awesome / index будет идти к Mage_Core_AwesomeController.
Этот пример явно сфабрикован, он просто показывает, чего я хотел бы в теории.Поэтому, пожалуйста, не пытайтесь исправить пример, просто продемонстрируйте лучший способ переопределить только действие.
Я думаю, что было бы также важно отметить, что я не хочу переписывать URL, просто переопределитьдействие.Может быть, это невозможно без переписывания URL?Просто при переписывании url теги в макете меняются, и я бы предпочел оставить их неизменными.