我想删除所有结帐页面的侧边栏元素。所以在我的local.xml里面我有类似的东西:
<checkout_default>
<remove name="left.cart"/>
</checkout_default>
但没有发生任何事......我已经尝试checkout
,checkout_default
,checkout_default_default
...没有bunga。
checkout_cart_index
只能用于..购物车索引页面。我尝试checkout_cart_default
看看是否能让它适用于所有购物车页面但是它完全停止了工作。
我可以用什么句柄来选择所有结帐页面?
答案 0 :(得分:3)
不存在这样的句柄/不是句柄如何工作。
布局句柄有点像事件 - 只有它们严格适用于布局系统。每次在系统中加载URL时,都会生成某些布局句柄。例如,使用online Commerce Bug demo on the cart index page
我们可以看到生成的五个句柄是
default
STORE_default
THEME_frontend_default_commercebugdemo
checkout_cart_index
customer_logged_out
checkout_cart_index
句柄特定于该页面(称为完整操作名称句柄),其他句柄在所有页面上触发。没有为所有购物车页面触发的命名布局句柄。
有一些工具可以帮助您重用代码。首先,您需要确定要定位的页面。我们说checkout_cart_index
和checkout_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">
但是,对于购物车页面,没有这样的句柄。