3

カスタム モジュールを作成し、ショッピング カート テーブルの直後と合計ボックスの前にブロックを含めようとしています。しかし、私はその正確な場所にそれを取得することはできません. ブロックを他のすべてのすぐ下のコンテンツ セクションに表示できますが、その間には表示できません。

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、ショッピング カート テーブルの直後と小計ボックスの上に出力が必要なのですが、どうすればよいですか?

4

1 に答える 1

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>

カートに入れたいときに、カートの前にフォームを参照しています。参照を変更し、合計の前 (または必要に応じて割引の前) に追加します。

于 2012-12-10T07:46:13.790 に答える