1

各商品ページの価格の下に静的ボックスを追加したいのですが、子ブロックをレンダリングするために既存のテンプレート ファイル (catalog/product/view.phtml など) を上書きしたくありません。

frontend/base/default/layout/local.xml 経由でブロック要素を追加しようとしました

<layout version="0.1.0">
    <default>

        <reference name="product.info">
           <block type="telllowerpricelink/linkbox" name="telllowerpricelink.linkbox" template="telllowerpricelink/link.phtml" before="product.description" output="toHtml" />
        </reference>

    </default>
</layout>

次に、基本的なモジュールを作成しました:
app/code/local/MyPackage/TellLowerPriceLink/Block/LinkBox.php

<?php
class MyPackage_TellLowerPriceLink_Block_Link extends Mage_Core_Block_Template 
{

}
?>

アプリ/コード/ローカル/MyPackage/TellLowerPriceLink/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <MyPackage_TellLowerPriceLink>
            <version>0.1.0</version>
        </MyPackage_TellLowerPriceLink>
    </modules>
    <global>
        <blocks>
            <mypackage_telllowerpricelink>
                <class>MyPackage_TellLowerPriceLink_Block</class>
            </mypackage_telllowerpricelink>
        </blocks>
    </global>
</config>

そして私のテンプレートファイル:
design/frontend/base/default/template/telllowerpricelink/link.phtml

<?php
echo 'Hello world!';
?>

私の質問は次のとおりです:
1. 主な質問: テンプレートを編集せずに (renderChildHtml のように) 親ブロック要素の最後に html 出力 (ところで: 表示されません) を追加することは可能ですか? 2. テンプレート ファイルをこのフォルダーに保存することはできますか、それとも、ホールの既定のテーマ フォルダーを独自のテーマにコピーする必要がありますか?

どうもありがとう、私はグーグルでたくさん読んだことがありますが、満足のいく答えが見つかりませんでした.

4

1 に答える 1

1
  1. これは Mage_Core_Block_Text_List ブロックから派生したブロックでのみ可能であるため、あなたの場合は不可能ですが、ブロックを参照コンテンツ (レイアウト ファイルからすべての子をレンダリングするコンテナー) に追加し、ブロックを style=" で div にラップすることができます表示: なし;" 設定してから、javascript を使用して目的の場所に移動します。

  2. 可能ですが、代わりに、システム - >構成 - >一般 - >デザイン - >パッケージの下で管理者のデフォルトのテーマを変更できます。ここで使用する名前は、テーマフォルダーの名前になります (これにより、テーマが変更されることに注意してくださいストア全体)、desing/your_theme_name_from_admin/{layout, template} にフォルダーを作成し、そこにオーバーライドする必要があるファイルのみを配置できます。これにより、オーバーライドしたい phtml ファイルのみをコピーして、デフォルトのコピーをそのまま維持しながら、新しい場所で変更することができます。

于 2013-01-24T12:09:20.810 に答える