0

サンプルモジュールWebを作成しました。また、このために1つのサンプルブロックを作成しました。app / design / frontend / default / default / templateフォルダーに1つのweb.phtmlファイルがあり、app / desing / fronted / default / default/layoutファイルに1つのweb.xmlファイルがあります。以下は私のweb.xmlファイルです

<?xml version="1.0"?>
<layout version="0.1.0">
    <default>
    </default>
    <web_index_index>
    <reference name="root">
          <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
    </reference>
        <reference name="content">
            <block type="web/web" name="web" template="web/web.phtml" />
        </reference>
    </web_index_index>
</layout> 

それは私のhttp://mydomain.com/magento/webで正しく動作します。

ここで、app / desing / fronted / base / default / layoutからcatalogsearch.xmlファイルをコピーして、app / desing / fronted / default / default / layoutに貼り付け、results.phtmlの後にブロックコードを追加しましたが、できません。カタログ検索ページでブロックを表示します。

<block type="web/web" name="web" template="web/web.phtml" /> 

私がここで欠けているものは何ですか?catalogsearch.xmlファイルにブロックを追加する適切な方法は何ですか?

4

1 に答える 1

0

レイアウト更新ディレクティブが表示されるファイルは (一般的に) 無関係です。レイアウト XML ディレクティブのスコープは、レイアウト更新ハンドルです。

catalogsearch の結果については、単純な検索結果ビューと高度な検索結果ビューの両方でブロックが必要な場合は、ブロックを 2 つのハンドルに追加する必要があります。これをweb.xmlレイアウト ファイルに追加します。

<catalogsearch_result_index>
    <reference name="content">
        <block type="web/web" name="web" template="web/web.phtml" after="-" /> 
    </reference>
</catalogsearch_result_index>

<catalogsearch_advanced_result>
    <reference name="content">
        <block type="web/web" name="web" template="web/web.phtml" after="-" /> 
    </reference>
</catalogsearch_advanced_result>

現在、ほとんどの開発者は、コードを繰り返すことを考えると頭が真っ白になります。上記の命令は、ユーティリティ ハンドルに 1 回記述できます。その後、ユーティリティ ハンドルを使用して結果を別の場所に適用できます。

<web_addToContent>
    <reference name="content">
        <block type="web/web" name="web" template="web/web.phtml" after="-" /> 
    </reference>
</web_addToContent>

<catalogsearch_advanced_result>
    <update handle="web_addToContent" />
</catalogsearch_advanced_result>

<catalogsearch_advanced_result>
    <update handle="web_addToContent" />
</catalogsearch_advanced_result>

ブロックがコンテンツの先頭に表示される場合 (にもかかわらずafter="-")、カタログ検索モジュールの後に Web モジュールの構成 XML をロードする必要がある場合があります。

于 2012-12-11T12:22:55.150 に答える