我创建了一个自定义模块,并尝试在购物车表之后和Totals框之前包含一个块。但我无法在那个确切的地方得到它。我可以让我的块出现在其他所有内容的内容部分中,但不在其间。
如果我覆盖checkout.xml和cart.phtml,那么我可以实现我想要显示块的位置,但我不想覆盖现有文件,因此我的自定义模块。有人可以指出我错过或做错了什么。
这是我的模块代码,
app/code/local/CM/Test/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<CM_Test>
<version>0.1.0</version>
</CM_Test>
</modules>
<frontend>
<routers>
<test>
<use>standard</use>
<args>
<module>CM_Test</module>
<frontName>test</frontName>
</args>
</test>
</routers>
<layout>
<updates>
<cm_test module="CM_Test">
<file>test.xml</file>
</cm_test>
</updates>
</layout>
</frontend>
<global>
<blocks>
<test>
<class>CM_Test_Block</class>
</test>
</blocks>
</global>
</config>
app/code/local/CM/Test/Block/Somblock.php
<?php
class CM_Test_Block_Somblock extends Mage_Core_Block_Template
{
protected function _construct()
{
parent::_construct();
$this->setTemplate('test/testing.phtml');
}
public function methodBlock()
{
return 'informations about my block !!' ;
}
}
app/code/local/CM/Test/controllers/IndexController.php
<?php
class CM_Test_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
public function somethingAction()
{
echo 'test mamethode';
}
}
app/design/frontend/mytheme/layout/test.xml
<layout version="0.1.0">
<default></default>
<test_index_index>
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template>
</action>
</reference>
<reference name="content">
<block type="test/somblock" name="test.somblock" template="test/testing.phtml"/>
</reference>
</test_index_index>
<checkout_cart_index>
<reference name="checkout.cart.form.before">
<block type="test/somblock" name="test.somblock">
<action method="setTemplate"><template>test/testing.phtml</template></action>
</block>
<block type="test/somblock" name="test.somblock" template="test/smtesting.phtml"/>
</reference>
</checkout_cart_index>
</layout>
app/design/frontend/default/mytheme/template/test/testing.phtml
TESTING <br/>
<?php
echo $this->getChildHtml('testing.somblock');
echo "HELLO";
app/design/frontend/default/mytheme/template/test/smtesting.phtml
<?php
echo $this->methodBlock();
app/etc/modules/CM_Test.xml
<?xml version="1.0"?>
<config>
<modules>
<CM_Test>
<codePool>local</codePool>
<active>true</active>
</CM_Test>
</modules>
</config>
当我访问http://mydomain.com/test/index/index时,它给了我以下o / p
TESTING
HELLO
当我访问http://mydomain.com/checkout/cart/index时,它给了我以下o / p
但是我需要在购物车表和Subtotals框之后输出information about my block
,我该怎么做?
答案 0 :(得分:0)
<checkout_cart_index>
<reference name="checkout.cart">
<block type="test/somblock" name="test.somblock" before="checkout.cart.totals" template="test/testing.phtml" />
<block type="test/somblock" name="test.somblock" after="test.somblock" template="test/smtesting.phtml"/>
</reference>
</checkout_cart_index>
您指的是购物车前的表单,而您需要购物车中的表单。更改您的参考并在总计之前添加(或者如果您愿意,可以在折扣之前添加)。