如何更改magento的cms内容包装器

Poo*_*hra 4 magento-1.7

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

和html输出是

<div class="std">
    CMS Page content
</div>
Run Code Online (Sandbox Code Playgroud)

但我想这样输出

<section class="std">
    CMS Page Content
</section>
Run Code Online (Sandbox Code Playgroud)

请给我任何解决方案

Ary*_*egi 8

您可以尝试使用以下代码来更改div to 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>
Run Code Online (Sandbox Code Playgroud)

这会将div更改为section,因为html_wrapper类从函数getElementTagName中获取标记名称app\code\core\Mage\Core\Block\Abstract\Wrapper.php

/**
 * Wrapper element tag name getter
 * @return string
 */
public function getElementTagName()
{
    $tagName = $this->_getData('html_tag_name');
    return $tagName ? $tagName : 'div';
}
Run Code Online (Sandbox Code Playgroud)

所以通过调用setAttribute我们改变/设置值 html_tag_name

  • 它不可能因为实现了这个方法 (2认同)
  • 您使用CE或Enterprice的magento版本 (2认同)