【问题标题】:Magento: Remove Right Sidebar from Success PageMagento:从成功页面中删除右侧边栏
【发布时间】:2015-09-09 15:36:34
【问题描述】:

我正在尝试从成功页面中删除右侧边栏,但现在我不知道该怎么做。

到现在我都变了

app/design/frontend/default/theme/layout/checkout.xml app/design/frontend/base/default/layout/checkout.xml

向他们添加此代码

<checkout_onepage_success translate="label">
    <label>One Page Checkout Success</label>
    <reference name="root">
        <action method="setTemplate"><template>page/1column.phtml</template></action>
    </reference>
    <reference name="content">
        <block type="checkout/onepage_success" name="checkout.success" template="checkout/success.phtml"/>
    </reference>
</checkout_onepage_success>

我已经清除了所有缓存,但仍然没有任何变化,我做错了什么?

【问题讨论】:

  • 如果您知道要删除的侧边栏块的名称,您可以随时使用&lt;remove name="NAME_HERE" /&gt;
  • 我只能在成功页面中删除它吗?如果是这样,我该怎么做?
  • 如果你将它包装在 &lt;checkout_onepage_success&gt; 标签中,我相信它应该会这样工作
  • @Karl 所写的句柄。请检查这个问答网站,它应该用花里胡哨的方式回答这个问题:magento.stackexchange.com -。仅供参考:到目前为止,您发布的代码并未显示您尝试将其删除的位置。那么,您是否真的在寻找记录其工作原理的文档?
  • 您好 hakre,感谢您的回复。我检查了 magento.stack ......但我发现它对我的问题没有帮助,我不想复活旧帖子。 (拜托,无论是谁在你做的时候加上“-1”,只要告诉我我做错了什么,这样我以后就不会再犯了)

标签: php xml magento


【解决方案1】:

首先确保您的成功页面使用相同的布局句柄。为此,在成功页面模板上添加以下代码并检查应用的句柄。

echo '<pre>';
print_r($this->getLayout()->getUpdate()->getHandles());
echo '</pre>';

如果您在输出数组中找到checkout_onepage_success,则执行以下步骤。

在您当前的主题布局中创建local.xml 文件并添加以下代码:

<layout version="0.1.0">
<checkout_onepage_success>
    <reference name="root">
        <action method="setTemplate"><template>page/1column.phtml</template></action>
    </reference>
</checkout_onepage_success>
</layout>

【讨论】:

    【解决方案2】:

    更改根页面模板的正确方法是在您的主题中创建一个 local.xml,其中包含以下内容:

    <layout version="0.1.0">
        <checkout_onepage_success>
            <update handle="page_one_column" />
        </checkout_onepage_success>
    </layout>
    

    根块中的隔离 setTemplate 不会更新模板,因为它需要 page.xml 中的其他操作,例如 1。

    如果您想更深入地了解原因,请查看以下代码进入 Mage_Page_Helper_Layout

    if ($this->getLayout()->getBlock('root') &&
        !$this->getLayout()->getBlock('root')->getIsHandle()) {
            // If not applied handle
            $this->getLayout()
                ->getBlock('root')
                ->setTemplate($pageLayout->getTemplate());
    }
    

    最好的问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多