Magento:从布局中取消设置第二/第三级块?

Magento:从布局中取消设置第二/第三级块?,magento,Magento,如何从布局中取消设置子/孙块 例如来自 <reference name="content"> <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml"> <block type="catalog/product_view_media" name="product.info.med

如何从布局中取消设置子/孙块

例如来自

<reference name="content">
            <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
                   <block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
            </block>
</reference>

我可以把整个

<reference name="content">
    <action method="unsetChild"><name>product.info</name></action>
</reference>

product.info
但是我只想从“product.info”中删除name=“product.info.media”,而不是整个product.info

如何做到这一点?

试试这个:

<reference name="product.info">
    <action method="unsetChild"><name>product.info.media</name></action>
</reference>

产品信息媒体

如果该块是通过布局文件(而不是通过代码)添加的,则可以防止将其设置为

<remove name="product.info.media" />

要将子块从一个父块移动到另一个父块,请引用直接父块,对其调用子块,然后使用insert方法将块实例作为子块指定给其他父块

<reference name="product.info">
    <!-- use the alias here -->
    <action method="unsetChild"><child>media</child></action>
</reference>
<reference name="new.parent">
    <!-- use the full block name here -->
    <action method="insert"><child>product.info.media</child></action>
</reference>

媒体
产品信息媒体

不支持取消设置孙子块,我不认为这很愚蠢但很明智(因为您会在哪里停止-unset grander()?)。

是的,该块是从base/default/layout/catalog.xml添加的,但我不想同时删除子块,我想将其移动到另一个块下,因此是未设置的子块。虽然我是magento新手,但只能够取消设置直接子项而不能取消设置子项似乎很愚蠢。您仍然可以在新位置创建具有相同类型、模板甚至名称的新块。