Magento 重新排列产品块

Magento 重新排列产品块,magento,magento-1.7,Magento,Magento 1.7,我有三个问题是我正常的谷歌搜索没有回答的。我是一名内部前端web开发人员,在过去两周里一直在尝试学习Magento。我还不太熟悉堆栈溢出,所以请告诉我这些问题是否最好单独发布 1。布局-使每个页面使用相同的布局 因此,我的大多数页面都使用我的2列左布局,但不是全部。我在local.xml中有一些设置,还有一些我只是直接在.phtml页面中硬编码。我原以为以下代码会使所有页面使用相同的布局: <reference name="root"> <action method="

我有三个问题是我正常的谷歌搜索没有回答的。我是一名内部前端web开发人员,在过去两周里一直在尝试学习Magento。我还不太熟悉堆栈溢出,所以请告诉我这些问题是否最好单独发布

1。布局-使每个页面使用相同的布局

因此,我的大多数页面都使用我的2列左布局,但不是全部。我在local.xml中有一些设置,还有一些我只是直接在.phtml页面中硬编码。我原以为以下代码会使所有页面使用相同的布局:

<reference name="root">
    <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
    <action method="setIsHandle">
        <applied>1</applied>
    </action>  
</reference>
以下是单击“提交”按钮后出现的错误:

Not Found

The requested URL /contacts/index/post/ was not found on this server.
我已经检查了配置设置,我认为这些设置是正确的,但可能还有其他一些事情我必须在那里做

3。产品评论-获得要显示的“总体”评级

我有一个review div,它利用form.phtml在您登录并添加评论后显示在我的产品页面上,但是没有显示评级。我显然不满足if语句的条件,该语句控制是否应显示评级。以下是if声明,我相信它正在流行:

<?php if( $this->getRatings() && $this->getRatings()->getSize()): ?>

我不知道如何满足这些条件

4。重新排列块-使用local.xml重新排列块的位置

在我开始养成坏习惯之前,我想确保我从一开始就使用最佳实践。我通常只是进入模板文件并手动移动phtml中出现的内容,但我听说最好在XML中进行这些更改。一个我似乎无法理解的问题似乎很简单:如何使“继续结帐”按钮移动到购物车底部?

我正在尝试取消设置它,然后在其他块之后重新设置它。我甚至还没能让孩子的部分发挥作用。以下是我在local.xml中的代码:

<reference name="content">
    <action method="unsetChild">
        <name>checkout.cart.top_methods</name>
    </action>
</reference>

checkout.cart.top\u方法
我认为这不起作用的原因是,在checkout.xml中,它是孩子的孩子。下面是checkout.xml的一般流程:

<checkout_cart_index>
    <reference name="content">
        <block name="checkout.cart">
            **<block name="checkout.cart.top_methods">**  

****  
有什么想法吗?非常感谢,很抱歉这篇文章太长了

1°)编辑所有布局xml,将根引用的布局更改为2列-leftf.phtml模板

你也可以通过观察者。在事件发生后观察控制器\u操作\u布局\u生成\u块\u,并在您的方法中执行以下操作:

public function myEventHandling($event) {
    $event->getAction()->getLayout()->getBlock('root')->setTemplate('page/2columns-left.phtml');
}
2°)模块联系控制器索引操作postAction(),因此它应该是/Contacts/index/post/所以它应该工作。除非您将CMS页面替换为/contacts/normal behavior(模块contacts controller index action indexAction()),否则它将在您的CMS页面下搜索,而不是在contacts模块中搜索。如果您的CMS页面有联系人作为url,请尝试更改它

3°)你能更精确一点吗?我真的不明白你需要什么。表格或现有评级未显示

4°)如果子指令或删除指令是全局指令,则必须在替换后使用其他名称对其进行设置。但您可以在模板目录(而不是base/default/layout目录)中编辑布局文件,以将块移动到正确的位置,并在phtml文件中尝试移动块

  echo $this->getChildHtml('myblock') 

在正确的位置。

谢谢您的回复。当您说“编辑所有布局xml”时,是否意味着编辑每个单独的布局文件,如cart.xml、checkout.xml等?我希望能够在layout.xml的一个块中进行更改,而不必为每个页面设置块。也许这是不可能的。2.有意思,我试试看。3.对不起,我没说清楚。当有人写评论时,我希望他们添加评论,并对产品进行1-5分。注释的文本字段会显示,但评级不会显示。4.我就是这样做的,通过phtml文件,但这是一种最佳实践吗?1°)是的,您必须更改所有布局。xml这是最干净的方法。至少更改所有包含对根的引用的内容。如果您不想这样做,请使用观察者方式。2°)更新我:)3°)好的,需要检查问题是否来自不包括评级的设计,或者评级是否正确启用(查看目录/评论和评级/管理评级,查看是否至少启用了1个评级。4°)其他解决方案通过更改布局使其“干净”,并且现有文件没有任何更改,但这不是更好的做法。无法用剩下的40个字符解释。如果需要,请告诉我。再次感谢您的回复。2.我的联系人页面是的默认CMS页面,URL为“contactus”。还是给了我错误。不知道怎么了。3.收视率已经启用,所以我不确定这里到底出了什么问题。我收回这一点,我的收视率现在正常了,甚至不确定我做了什么。也许上次没有保存设置
  echo $this->getChildHtml('myblock')