0

レイアウト上の理由から、2つの異なるheader.phtml(header.phtml / header1.phtml)が必要でした。しかし、page.xmlのヘッダーブロックをコピーすると、最新のブロックの定義のみが機能しているように見えます(両方とも独立して機能しますが、両方のブロックがpage.xmlにある場合は、両方の最新のブロックのみが変更を引き起こします) 。

<block type="page/html_header" name="header" as="header">
    <block type="page/template_links" name="top.links" as="topLinks"/>
    <block type="page/html_wrapper" name="top.bar" as="topBar" translate="label">
        <label>Breadcrumbs</label>
        <action method="setElementClass"><value>top-bar</value></action>
    </block>
</block>

<block type="page/html_header1" name="header1" as="header1">
    <block type="page/template_links" name="top.links" as="topLinks"/>
    <block type="page/html_wrapper" name="top.bar" as="topBar" translate="label">
        <label>Breadcrumbs</label>
        <action method="setElementClass"><value>top-bar</value></action>
    </block>
</block>

誰かが私のエラーがどこにあるか教えてもらえますか?

4

2 に答える 2

1

問題はhtml_header1のブロックタイプにあります

これを試して:

<block type="page/html_header" name="header1" as="header1" template="page/html/header1.phtml">
    <block type="page/template_links" name="top.links" as="topLinks"/>
        <block type="page/html_wrapper" name="top.bar" as="topBar" translate="label">
        <label>Breadcrumbs</label>
        <action method="setElementClass"><value>top-bar</value></action>
    </block>
</block>

次に、page / html/header.phtmlをpage/html / header1.phtmlにコピーし、必要な変更を加えます。

于 2013-02-20T19:32:28.460 に答える
0

あなたはやりすぎです。

最初のブロックインスタンスのテンプレートを切り替えるだけでよい場合は、以下で部分的に十分です。

<action method="setTemplate" block="header"><tpl>page/html/header1.phtml</tpl></action>

このディレクティブは特定の状況下で実行する必要があるように見えるので、「部分的に十分」と言います。状況(特定のビューやビューのタイプなど)は、さまざまなレイアウト更新ハンドルにマップされます。たとえば、ログインしている顧客に別のヘッダーテンプレートを使用する場合、完全なレイアウトXMLは次のようになります。

<?xml version="1.0"?>
<layout>
    <customer_logged_in>
         <action method="setTemplate" block="header"><tpl>page/html/header1.phtml</tpl></action>
    </customer_logged_in>
</layout>

指定されたテンプレートパスに基づいて、ファイルapp / design / frontend / base / default / page / html / header1.phtmlを作成するか、少なくともカスタムテーマでこのファイルを作成する必要があります。

また、local.xmlカスタムテーマのレイアウトフォルダにファイルを作成する必要があります。

于 2013-02-20T20:16:51.103 に答える