私はフッターを列に整理する作業を行っています。もちろん、すべての有能な Magento 開発者が熱望するように、local.xml 内でのみ作業しています。
local.xml では、page.xml と cms.xml でインスタンス化された元の ' footer_links ' と ' cms_footer_links ' ブロックを削除しました。次に、'footer' を参照して 2 つのpage/template_linksブロックをインスタンス化し、それらのテンプレートを、/theme/templates/page/template/links.phtml の単なるコピーであるが互いに異なる名前の一意のカスタム phtml ファイルに割り当てます (これにより、後でフォーマットするために、これらのブロックに個別の css クラスを割り当てます)。
問題は、左側の列の page/template_links ブロック「footer_col_links_left」の 3 つのリンクの間に、パイプ記号 (' | ') があることです。そして、私の cms_footer_links2 cms/block ブロックで作成された 2 つのリンクの両方の後に、そのパイプ記号があります (奇妙なことに、最後の項目にも末尾のパイプがありますが、これは template_links ブロックの 3 番目/最後のリンクには当てはまりませんでした)上記の通り)。
これらのパイプはどこから来ているのですか?それらはテンプレート ファイルによって明示的にエコーされません。また、最初のリンクで addLink アクション メソッドに可能なすべてのパラメーターを渡したにもかかわらず、変更がなかったため、デフォルトの afterText が使用されているとは思えません。
コードは次のとおりです。
<default>
<remove name="footer_links"/>
<remove name="cms_footer_links"/>
<reference name="footer">
<block type="page/template_links" name="footer_col_links_left" as="footer_links_left" template="page/template/column_links_left.phtml" before="-">
<action method="addLink"><label>About Us</label><url>about-us</url><title>About Us</title><prepare>true</prepare><urlParams helper="core/url/getHomeUrl"/><position>1</position><liParams/><aParams/><beforeText/><afterText/></action>
<action method="addLink" module="contacts" ifconfig="contacts/contacts/enabled"><label>Contact</label><url>contacts</url><title>Contact Us</title><prepare>true</prepare></action>
<action method="addLink" translate="label title" module="catalog" ifconfig="catalog/seo/site_map"><label>Site Map</label><url helper="catalog/map/getCategoryUrl" /><title>Site Map</title></action>
</block>
<block type="page/template_links" name="footer_col_links_mid" as="footer_links_mid" template="page/template/column_links_mid.phtml">
</block>
<block type="cms/block" name="cms_footer_links2">
<!--
The content of this block is taken from the database by its block_id.
You can manage it in admin CMS -> Static Blocks
Put Privacy Policy + Terms and Conditions here, call it "footer_links" in the backend
-->
<action method="setBlockId"><block_id>footer_links</block_id></action>
</block>
<block type="cms/block" name="cms_payment_logos">
<!--
The content of this block is taken from the database by its block_id.
You can manage it in admin CMS -> Static Blocks
Put credit card and Geotrust SSL logos here, call it "payment_logos" in the backend
-->
<action method="setBlockId"><block_id>payment_logos</block_id></action>
</block>
</reference>
</default>
また、ヘッダーの top.links 間にパイプがなく、XML との違いがわかりません。それは、「top.links」(page.xml 内でインスタンス化された page/template_links ブロック) がテンプレート ファイルに関連付けられていないことです。 (「footer_links」がどのように定義されたかのような template="/page/block/template/links.php" はありません)。どうしたの?page/template_links ブロックに関連付けられたデフォルトのテンプレートはありますか? もしそうなら、それはどこに指定されていますか?前もって感謝します!