无论是否估算价格,我都想显示发货区。我已经追溯了这些方法(见下文),但无法弄清楚如何定义要加载的装运块。我有一些逻辑在视图中。
总计模板: frontend / site / default / template / checkout / cart / totals.phtml
送货模板: frontend / site / default / template / tax / checkout / shipping.phtml
通过renderTotals()方法从总计块渲染出货块。它继续检查每个可能的总数的过程以确定是否设置。
总计阻止
<?php echo $this->rendeTotals(); ?>
该方法使用以下方法引用Mage_Checkout_Block_Cart_Totals类。
总计控制器(totals.php)
protected function _getTotalRenderer($code)
{
$blockName = $code.'_total_renderer';
$block = $this->getLayout()->getBlock($blockName);
if (!$block) {
$block = $this->_defaultRenderer;
$config = Mage::getConfig()->getNode("global/sales/quote/totals/{$code}/renderer");
if ($config) {
$block = (string) $config;
}
$block = $this->getLayout()->createBlock($block, $blockName);
}
/**
* Transfer totals to renderer
*/
$block->setTotals($this->getTotals());
return $block;
}
public function renderTotal($total, $area = null, $colspan = 1)
{
$code = $total->getCode();
if ($total->getAs()) {
$code = $total->getAs();
}
return $this->_getTotalRenderer($code)
->setTotal($total)
->setColspan($colspan)
->setRenderingArea(is_null($area) ? -1 : $area)
->toHtml();
}
跟踪堆栈很容易看出_getTotalRenderer是检查块是否要加载的实际方法。正是在这种方法中,我在加载装运块时遇到了麻烦。
感谢任何帮助。我在magento里面没有发展历史。