我创建了一个自定义模块,并试图在购物车表之后和总计框之前包含一个块。但我无法在那个确切的地方得到它。我可以让我的块出现在内容部分,就在其他所有内容的下方,但不在两者之间。
如果我覆盖 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
但是我需要information about my block
在购物车表和小计框上方的输出,我该怎么做?