Я создал настраиваемый модуль и пытаюсь включить блок сразу после таблицы корзины покупок и перед полем 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>
по<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>
по<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, он дал мне следующие о / р
Но мне нужна выходная information about my block
сразу после таблицы корзины покупок и над полем «Итоговые данные», как мне это сделать?
<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>
Вы имеете в виду форму перед тележкой, в то время как вы хотите ее в корзине. Измените свою ссылку и добавьте ее до итогов (или до скидки, если хотите).