如何在onepage / checkout / success中设置模板

时间:2013-04-12 11:48:47

标签: magento magento-1.7

我在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

1 个答案:

答案 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)

更改设计设置并使用local.xml

如上所述更改配置。目前,在Magento中更改布局的最常用方法是使用 local.xml 。这将位于默认/自定义/布局/ 文件夹中。这一个文件将用于完成所有布局更新,并且您不必在此过程中触摸任何核心文件。

您以前需要做的一些事情必须改变,因为您不会直接编辑基本文件。 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)。

这应该让你开始,网上有很多好文章,堆栈溢出也是信息的好地方。