我需要部分覆盖OnePage控制器的indexAction。我尝试添加一种方式直接返回到单页结帐的审核步骤 - 此时所有其他步骤都已完成,只是Magento的行为将重新开始!这也意味着改变了onestep.phtml,但我还没有达到目标!
我的控制器覆盖工作正常。我可以在控制器上添加一个新动作,比如reviewStepAction,但是如果我将它作为测试的简单覆盖,则不会显示标准的单页结帐。我只得到标准边栏的空白页:
public function reviewStepAction() {
parent::indexAction();
}
我也尝试过将indexAction复制并修改为我的动作功能,但仍然没有显示单页结帐。 indexAction的最后一部分是:
$this->getOnepage()->initCheckout();
$this->loadLayout();
$this->_initLayoutMessages('customer/session');
$this->getLayout()->getBlock('head')->setTitle($this->__('Checkout'));
$this->renderLayout();
所以我猜测它没有用,因为网址是../checkout/onpegage/reviewstep所以它试图加载" reviewstep"布局,而不是找到一个。如何通过加载常规/结帐/单页布局强制reviewStepAction完成?我使用了Mage::getSingleton('checkout/opnepage)
,但这只是崩溃了。
我无法在操作结束时重定向到checkout / onepage,因为这会调用标准indexAction,我需要在initCheckout
和renderLayout
之间插入内容。
感谢。
答案 0 :(得分:0)
以下作品:
public function reviewStepAction()
{
$this->loadLayout(array('default','checkout_onepage_index'));
$this->getOnepage()->initCheckout();
...additional code...
$this->_initLayoutMessages('customer/session');
$this->getLayout()->getBlock('head')->setTitle($this->__('Checkout'));
$this->renderLayout();
}
只需注意,身体类设置为checkout-onepage-reviewstep
而不是通常的checkout-onepage-index
。