私はEEを使用していますが、問題はCEでも同じだと思います。私がやりたいことはとても簡単に思えます。カテゴリページの左側のナビゲーションにあるすべてのバナーをフィルターナビゲーションの上に表示したいと思います。私が試したのは、after = "-"呼び出しを追加して、XMLファイル(EEの場合はsearch.xml、CEの場合はcatalog.xml)を変更することです。
<catalog_category_layered>
<reference name="left">
<remove name="catalog.leftnav"/>
<block type="enterprise_search/catalog_layer_view" name="enterprisecatalog.leftnav" template="catalog/layer/view.phtml" after="-" />
</reference>
</catalog_category_layered>
ただし、これによって何も変更されることはなく、バナーは引き続きレイヤードナビゲーションの下に読み込まれます。
「すべてのページ」の左側の列にロードするようにウィジェットを設定すると、列の上部に正しくロードされます。このソリューションは、ホームページにウィジェットもロードするため、望ましくありません。これがカテゴリページにのみ影響するようにします。
XMLブロックをまとめて削除し、ウィジェットにバナーとしてロードして、左側の列の任意の場所に配置することもできます。階層化されたナビゲーションオプションが選択されている場合、ページのAJAX読み込みが中断されるため、これも望ましくありません。
ウィジェット/バナーブロックには名前が付いているので、XMLでafter = "widget.banner.block.name"と言うことができますか?