2

ここで何が起こっているのかわからない:

私のpage.xmlには、次のコードがあります。

<block type="core/text_list" name="top.menu" as="topMenu" translate="label">
    <label>Navigation Bar</label>
    <block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml" />
</block>

page/html/topmenu.phtml をいくつかの小さな HTML 変更で更新しようとすると、レンダリングされませんか?

このコードを削除すると、カテゴリ メニューが消えて、それが制御 xml であることを示します。

同じテーマ テンプレートで page/html/header.phtml を更新すると、変更がレンダリングされます。

また、このテンプレート ファイルを完全に削除し、default../../topmenu.phtml のようにフォールバックする可能性のある他のテンプレート ファイルも削除しましたが、メニューはこれらのテンプレート ファイルを使用していないことを示して正常にレンダリングされますか?

私も同じ方法で top.phtml を更新しようとしましたが、うまくいきませんか?

キャッシュは更新ごとにクリアされています。

私は何かが欠けているに違いありません - 何かアイデアはありますか?

4

1 に答える 1

3

私の最初の推測では、catalog.topnav別のモジュールがそのテンプレートを別のものに変更しているか、システムが、ナビゲーションをレンダリングするためにテンプレートを使用しないクラスを指すようにpage/html/topmenu.phtmlクラスを書き直しています。page/html_topmenu

Commerce Bug などのデバッグ ツールを実行している場合は、トップ メニュー ブロックのテンプレート セットを確認してください。

ここに画像の説明を入力

に設定されたクラスだけでなく、page/html_topmenu

ここに画像の説明を入力

デバッグ ツールがないため、一時的なデバッグ コードを追加してapp/code/core/Mage/Page/Block/Html/Topmenu.php、設定されているテンプレートをテストします

#File: app/code/core/Mage/Page/Block/Html/Topmenu.php
protected function _toHtml()
{
    var_dump($this->getTemplate());
    var_dump($this->getTemplateFile());
    return parent::_toHtml();
}    

これにより、トップ ナビゲーションが使用しているテンプレートがわかります。何も出力されない場合は、システムでこのクラスが書き直されている可能性が非常に高くなります。

于 2013-03-18T22:11:00.313 に答える