【问题标题】:Magento - cart.phtml - Override issueMagento - cart.phtml - 覆盖问题
【发布时间】:2015-08-12 14:18:55
【问题描述】:

我已经看到了几个如何覆盖 cart.phtml 的示例,但它们似乎都不适用于我的文件。

我有一个主题:

  • app/design/frontend/default/ves_fashion/

文件位于:

  • app/design/frontend/default/ves_fashion/template/checkout/cart.phtml

我在以下位置创建了一个 cart.phtml:

  • app/design/frontend/default/ves_fashion/template/customsite/checkout/cart.phtml

然后我检查了主题的layout.xml:

  • app/design/frontend/default/ves_fashion/layout/checkout.xml

看看这个:

<layout>
    <checkout_cart_index translate="label">
        <label>Shopping Cart</label>
        <remove name="right"/>
        <remove name="left"/>
        <!-- Mage_Checkout -->
        <reference name="root">
            <action method="setTemplate"><template>page/1column.phtml</template></action>
        </reference>
        <reference name="content">
            <block type="checkout/cart" name="checkout.cart">
                <action method="setCartTemplate"><value>checkout/cart.phtml</value></action>
                <action method="setEmptyTemplate"><value>checkout/cart/noItems.phtml</value></action>
...

我知道我想用我自己的来覆盖这个 cart.phtml 并做了以下事情: 我在

中打开了 local.xml

app/etc/local.xml

并插入:

 <layout>
        <checkout_cart_index translate="label">
            <reference name="content">
                <block type="checkout/cart" name="checkout.cart">
                    <action method="setCartTemplate"><value>customsite/checkout/cart.phtml</value></action>
                    <action method="setEmptyTemplate"><value>customsite/checkout/cart/noItems.phtml</value></action>
                </block>
            </reference>
        </checkout_cart_index>
    </layout>

但这不起作用。我现在需要做什么? app/etc/ 中的 local.xml 是正确的,还是我必须使用 app/design/frontend/default/ves_fashion/layout/local.xml 中的那个 ?我还看到了 标签被省略的例子,值标签被命名为 并且内容被设置为 checkout.cart - 如果原来的我为什么要这样做xml 文件有什么不同?

如果有人可以在这里帮助我,那就太好了。谢谢!

【问题讨论】:

  • 就像已经回答的那样,local.xml 是要编辑的错误文件。问题是,你为什么首先编辑它?你能提供这些信息(也许还有一些参考资料)吗?

标签: xml magento


【解决方案1】:

app/etc/local.xml 文件不是您想要的。其中包含您网站的环境信息。

您可以随意直接在主题的布局文件中进行更改:

app/design/frontend/default/ves_fashion/layout/checkout.xml

如果您愿意,也可以在该文件夹中添加local.xml,并在那里进行布局更新。

【讨论】:

    【解决方案2】:

    正如其他人所指出的,将布局句柄添加到 app/etc/local.xml 文件是错误的。那只是为了配置。您的主题应该在app/design/frontend/{your-package-name}/{your-theme-variation-name}/layout/local.xml 中定义自己的local.xml 文件,或者您的模块应该在app/design/frontend/base/default/layout/{your-namespace}_{your-module}.xml 中定义自己的布局句柄。

    尽管如此,您的问题中提供的布局 XML 存在固有问题。照原样,这些布局定义将不起作用。调用setCartTemplatesetEmptyTemplate 是正确的,但是如果没有必须在它们之后直接调用的基本方法调用:chooseTemplate,它们将无法工作。如果查看app/design/frontend/base/default/layout/checkout.xml文件,可以直接在前两个之后看到那个方法。在修改 Magento 购物车模板时,仅此方法调用就成为许多人感到沮丧的根源,StackOverflow 有关该问题的问题数量显而易见。我在这里写了对这个问题的详尽解释:https://stackoverflow.com/a/33875491/2973534

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-02
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多