我试图从我的 magento 主页中删除“std div”,但找不到相同的任何建议。
4 回答
您要查找的 div 是通过 cms.xml 布局文件添加的 page/html_wrapper 块。
以下是摘自 app/design/frontend/base/default/layout/cms.xml 的摘录:
<cms_page translate="label">
<label>CMS Pages (All)</label>
<reference name="content">
<block type="core/template" name="page_content_heading" template="cms/content_heading.phtml"/>
<block type="page/html_wrapper" name="cms.wrapper" translate="label">
<label>CMS Content Wrapper</label>
<action method="setElementClass"><value>std</value></action>
<block type="cms/page" name="cms_page"/>
</block>
</reference>
</cms_page>
因此,根据您开发主题的方式,有几种方法可以删除 div 。
如果您使用 local.xml,第一个选项将适用:
<cms_page>
<reference name="content">
<action method="unsetChild">
<alias>cms.wrapper</alias>
</action>
<block type="cms/page" name="cms_page"/>
</reference>
</cms_page>
如果您将基本布局文件复制到以下位置,则第二个选项将适用:
复制 cms.xml from app/design/frontend/base/default/layout/cms.xml
toapp/design/frontend/your_package/your_theme/layout/cms.xml
并将上面的第一个布局片段编辑为以下内容:
<cms_page translate="label">
<label>CMS Pages (All)</label>
<reference name="content">
<block type="core/template" name="page_content_heading" template="cms/content_heading.phtml" />
<block type="cms/page" name="cms_page" />
</reference>
</cms_page>
此代码帮助我从单个 cms 页面中删除“std”div,将其放入“Layout Update XML”部分:
<reference name="content">
<action method="unsetChild">
<alias>cms.wrapper</alias>
</action>
<block type="cms/page" name="cms_page"/>
</reference>
编辑:
德鲁问了一个问题,这让我意识到你的问题是如何删除 div(不仅仅是删除 div 的类)。理想情况下,它就像布局 XML 中的任何其他“移动”操作一样,这意味着取消设置父子关系(在本例中为cms.wrapper
and之间的关系cms_page
)并将子关系设置为另一个块 ( content
):
<?xml version="1.0"?>
<layout>
<cms_page>
<reference name="content">
<action method="unsetChild">
<alias>cms.wrapper</alias>
</action>
<action method="insert">
<alias>cms_page</alias>
</action>
</reference>
</cms_page>
</layout>
我的原始回复如下:
德鲁在他的回答中有很多很好的信息。我只想指出块 API 有一些细微差别可以使布局 XML 非常干净。
在您的 local.xml 中:
<?xml version="1.0"?>
<layout>
<cms_page translate="label">
<reference name="cms.wrapper">
<action method="unsetElementClass" />
</reference>
</cms_page>
</layout>
参考Mage_Page_Block_Html_Wrapper->_toHtml()
和Varien_Object->__call()
这是您要找到的解决方案:)
将此 xml 代码放入 Page -> Design -> Layout Update XML
<block type="page/html_wrapper" name="cms.wrapper" translate="label">
<label>CMS Content Wrapper</label>
<action method="setElementClass"><value>your_class_name</value></action>
<block type="cms/page" name="cms_page"/>
</block>
干杯!
萨兰