所有结帐页面的布局句柄..我认为这是默认的

时间:2014-02-04 23:17:26

标签: magento layout default handle

我想删除所有结帐页面的侧边栏元素。所以在我的local.xml里面我有类似的东西:

<checkout_default>
    <remove name="left.cart"/>
</checkout_default>

但没有发生任何事......我已经尝试checkoutcheckout_defaultcheckout_default_default ...没有bunga。

checkout_cart_index只能用于..购物车索引页面。我尝试checkout_cart_default看看是否能让它适用于所有购物车页面但是它完全停止了工作。

我可以用什么句柄来选择所有结帐页面?

1 个答案:

答案 0 :(得分:3)

不存在这样的句柄/不是句柄如何工作。

布局句柄有点像事件 - 只有它们严格适用于布局系统。每次在系统中加载URL时,都会生成某些布局句柄。例如,使用online Commerce Bug demo on the cart index page

enter image description here

我们可以看到生成的五个句柄是

default
STORE_default
THEME_frontend_default_commercebugdemo
checkout_cart_index
customer_logged_out

checkout_cart_index句柄特定于该页面(称为完整操作名称句柄),其他句柄在所有页面上触发。没有为所有购物车页面触发的命名布局句柄。

有一些工具可以帮助您重用代码。首先,您需要确定要定位的页面。我们说checkout_cart_indexcheckout_onepage_index

然后,在布局更新XML文件中,执行类似这样的操作

<layouts>
    <checkout_cart_index>
        <update handle="namespace_packagename_my_custom_handle_name"
    </checkout_cart_index>
    <checkout_onepage_index>
        <update handle="namespace_packagename_my_custom_handle_name"/>
    </checkout_onepage_index>

    <namespace_packagename_my_custom_handle_name>
        <remove name="left.cart"/>
        <!-- other updates -->
    </namespace_packagename_my_custom_handle_name>
</layouts>

我们在这里做的是创建一个名为namespace_packagename_my_custom_handle_name的自定义句柄。然后,在每个完整的动作名称句柄中,我们告诉Magento在我们的自定义句柄中导入布局规则。

有时Magento本身会这样做。例如,Magento使用customer_account句柄在客户帐户部分的不同页面之间共享信息

<sales_order_history translate="label">
    <label>Customer My Account Order History</label>
    <update handle="customer_account"/>
    <!-- ... -->
</sales_order_history>
<!-- ... -->
<sales_order_view translate="label">
    <label>Customer My Account Order View</label>
    <update handle="customer_account"/>
    <!-- ... -->
</sales_order_view translate="label">

但是,对于购物车页面,没有这样的句柄。