我使用magento 1.7。我已经尝试更改CMS内容的包装,但仍然无法获得如何更改cms_page的包装。
<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>
和HTML输出是
<div class="std">
CMS Page content
</div>
但是我想这样输出
<section class="std">
CMS Page Content
</section>
请给我一个解决方案
您可以尝试以下代码将div更改为section
<block type="page/html_wrapper" name="cms.wrapper" translate="label">
<label>CMS Content Wrapper</label>
<action method="setElementClass"><value>std</value></action>
<action method="setAttribute"><param1>html_tag_name</param1><param2>section</param2></action>
<block type="cms/page" name="cms_page"/>
</block>
这将改变div为section,因为html_wrapper类从appcodecoreMageCoreBlockAbstractWrapper.php
中的getElementTagName
函数获取标签名称
/**
* Wrapper element tag name getter
* @return string
*/
public function getElementTagName()
{
$tagName = $this->_getData('html_tag_name');
return $tagName ? $tagName : 'div';
}
所以通过调用setAttribute我们改变/设置html_tag_name
的值