3

I have created a custom module and am trying to include a block just after Shopping cart table and before Totals box. But I am unable to get it in that exact place. I can get my block to appear in content section just below everything else but not in between.

If I override checkout.xml and cart.phtml then I can achieve where I want to display my block but I dont want to override the existing files, hence my custom module. Could some one point out what is it that I' missing or doing wrong.

Here's my module code,

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>

When I accessed http://mydomain.com/test/index/index it gave me the following o/p

TESTING HELLO

When I accessed http://mydomain.com/checkout/cart/index it gave me the following o/p

output of my module

But I need the output information about my block just after shopping cart table and above Subtotals box, how do i do that?

ivn
  • 1,235
  • 7
  • 38
  • 60

1 Answers1

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>

You are referring to the form before the cart, while you want it in the cart. Change your reference and add it before the totals (or before the discount if you like).

JNDPNT
  • 7,445
  • 2
  • 34
  • 40
  • Erm, this method for positioning a block does not work in CE 1.7.0.2. Am I missing something extra to the XML definition? – Jongosi Sep 27 '13 at 22:15
  • 1
    http://stackoverflow.com/questions/14484955/magento-xml-using-before-after-to-place-blocks-hardly-ever-works – JNDPNT Sep 30 '13 at 06:29