5

我在 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=> 2columns-left.phtml

/default/custom/layout/checkout.xml=> 1column.phtml

前端/浏览器 => 2columns-right.phtml

4

1 回答 1

8

Christian,您自己说过,包和主题设置在“默认配置”范围内。当您将文件放在 /default/custom/layout/ 中时,您会将文件放在不同的模板文件夹中。您可以做两(三)件事之一:

更改设计设置

System > Configuration > Design > Themes下,将TemplatesSkinLayout设置为"custom"

刷新您的缓存,它应该开始使用文件夹 /design/frontend/default/custom/...

使用默认/默认主题包

您可以只编辑默认主题。您可以将文件从“基本/默认”复制到“默认/默认”并将其设置为不覆盖任何文件,然后将文件从“默认/自定义”移动并覆盖默认文件夹。

注意:这可以完成工作,但通常不建议这样做。(继续阅读;D)

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

如上所述更改您的配置。如今,在 Magento 中更改布局最被接受的方法是使用local.xml。这将位于您的Default/Custom/Layout/文件夹中。这个文件将是您完成所有布局更新的地方,您无需在此过程中触及任何核心文件。

您习惯做的一些事情将不得不改变,因为您不会直接编辑基本文件。local.xml 最后加载,因此此处所做的任何调整都不应被覆盖。为了完成您的目标,您的 local.xml 可能会像这样开始:

本地.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>

您将不得不调整删除内容的方式,它不再像注释掉、删除或移动一行那么简单。

完全删除一个块

要删除一个块,请获取它的块名称(或 as="")并在适当的参考中插入以下代码。

<remove name="left.permanent.callout" />

将块移到别处

移动块是一个两部分,首先您必须在包含引用中取消setChild并将块插入其新位置。例如:

<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->getChildHtml('') 的块。这意味着它正在加载 xml 中列出的所有引用的子块。

另请注意,使用块名称(例如getChildHtml('top_links') )使用相同功能的文件通常需要您将该模板文件克隆到您的设计中(默认/自定义/模板/)并手动添加echo $this- >getChildHtml('your_block_name')你希望你的块出现的地方(在你的 local.xml 中放置之后)。

那应该可以帮助您入门,网上有很多好文章,堆栈溢出也是获取信息的好地方。

于 2013-08-02T17:15:55.250 回答