magento - 如何在单页/结帐/成功中设置模板

标签 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 => 2columns-left.phtml
    /default/custom/layout/checkout.xml => 1column.phtml

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

    最佳答案

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

    更改设计设置

    在系统 > 配置 > 设计 > 主题下,将模板、皮肤和布局设置为“自定义”。

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

    使用默认/默认主题包

    您可以只编辑默认主题。您可以将文件从“基本/默认”复制到“默认/默认”并将其设置为不覆盖任何文件,然后将文件从“默认/自定义”移动并覆盖默认文件夹。注意:这可以完成工作,但通常不建议这样做。 (继续阅读;D)

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

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

    你习惯做的一些事情必须改变,因为你不会直接编辑基本文件。 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>
    

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

    完全删除块

    要删除块,请获取它的块名称(或 as="")并在适当的引用中插入以下代码。
    <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->getChildHtml('') 的块。这意味着它正在加载 xml 中列出的所有引用的子块。

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

    这应该会让你开始,网上有很多好文章,堆栈溢出也是一个很好的信息来源。

    关于magento - 如何在单页/结帐/成功中设置模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15970600/

    相关文章:

    c# - 如何使用 restsharp 获取 magento 管理员 token

    magento - $_product->setData() 和 $_product->save() 有什么区别?

    php - Magento:结帐时对额外费用征税错误

    magento - Mage::getUrl() 数组参数的使用

    Magento 1.7.0.2 索引管理覆盖 URL 重写

    php - 有没有办法在 magento 的类别页面上创建选项卡

    php - 如何使 var_dump();die 在 magento 可下载产品中

    magento-1.7 - Mule Magento Cloud Connector 2.0,缺少变压器?

    php - Magento 自定义 ACL 默认返回 TRUE

    Magento 导入客户数据并链接订单数据