我在onepage / checkout / success页面遇到问题,因为我想将根模板从2columns-right.phtml设置为1column.phtml。应该不是问题...
我有基本主题和自定义主题的默认包:
首先,我尝试更改local.xml中的模板
前端/默认/定制/布局/那个local.xml
<layout>
...
<checkout_onepage_success>
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>
</checkout_onepage_success>
...
</layout>
没有任何影响。
然后我尝试使用自定义checkout.xml(与上面相同),但没有任何效果。 此外,当我复制base / default / layout / checkout.xml的整个内容并仅“更改”模板文件时,没有任何效果。
我清除/禁用了所有缓存并卸载了所有非标准插件。
Magento是V. 1.7.0.2。
有什么想法吗?
-
/base/default/layout/checkout.xml
=&gt; 2columns-left.phtml
/default/custom/layout/checkout.xml
=&gt; 1column.phtml
前端/浏览器=&gt; 2columns-right.phtml
答案 0 :(得分:8)
Christian,你说自己,包和主题设置在&#34;默认配置&#34;范围。将文件放在/ default / custom / layout /中时,您将文件放在不同的模板文件夹中。您可以执行以下两项(三项)中的一项:
系统&gt;配置&gt;设计&gt;主题,将模板,皮肤和布局设置为&#34;自定义&#34;
刷新缓存,它应该开始使用文件夹/ design / frontend / default / custom / ...
您只需编辑默认主题即可。您可以从&#34; Base / Default&#34;复制文件。到&#34;默认/默认&#34;并将其设置为不覆盖任何文件,然后从&#34;默认/自定义&#34;移动文件。并覆盖默认文件夹。
注意:这可以完成工作,但通常不建议这样做。 (继续阅读; D)
如上所述更改配置。目前,在Magento中更改布局的最常用方法是使用 local.xml 。这将位于默认/自定义/布局/ 文件夹中。这一个文件将用于完成所有布局更新,并且您不必在此过程中触摸任何核心文件。
您以前需要做的一些事情必须改变,因为您不会直接编辑基本文件。 local.xml最后加载,因此不应覆盖此处所做的任何调整。要完成您的目标,您的local.xml可能会启动以下内容:
<?xml version="1.0"?>
<layout version="0.1.0">
<checkout_onepage_success>
<reference name="root">
<action method="setTemplate">
<template>page/1column.phtml</template>
</action>
</reference>
</checkout_onepage_success>
<checkout_onepage_failure>
<reference name="root">
<action method="setTemplate">
<template>page/1column.phtml</template>
</action>
</reference>
</checkout_onepage_failure>
</layout>
您必须调整删除内容的方式,它不再像评论,删除或移动一行那么简单。
要移除某个块,请获取它的块名称(或者为&#34;&#34;)并在适当的参考中插入以下代码。
<remove name="left.permanent.callout" />
移动块是两个部分,首先你必须在包含的引用中 unsetChild 并且在新位置插入块。例如:
<reference name="left">
<action method="insert">
<!-- Name of Block -->
<blockName>right.poll</blockName>
<!-- Name of Adjacent Block -->
<siblingName>left.newsletter<siblingName>
<!-- Does it Come Before(0)? Or After(1)? Adjacent Block -->
<after>0</after>
</action>
</reference>
<reference name="right">
<action method="unsetChild">
<name>right.poll</name>
</action>
</reference>
注意:此处, 0 通常仅适用于其phtml文件包含 echo $ this-&gt; getChildHtml(&#39;& #39)的。这意味着它正在加载xml中列出的所有引用的子块。
另请注意,使用块名称使用相同功能的文件(例如 getChildHtml(&#39; top_links&#39;))通常会要求您将该模板文件克隆到您的设计中(默认/自定义/模板/)并手动添加 echo $ this-&gt; getChildHtml(&#39; your_block_name&#39;)您希望块出现在哪里(将其放入您的本地后)。 XML)。
这应该让你开始,网上有很多好文章,堆栈溢出也是信息的好地方。