Magento静态块。删除包装<p> </p>

时间:2011-06-14 15:21:52

标签: magento static block

当我创建静态块magento包含<p>标签的内容时。这对DOM来说非常糟糕。 有可能以某种方式删除它。我想这是一些javascript,但我不知道是哪一个。

4 个答案:

答案 0 :(得分:14)

我之前的回答实际上是错误的。

您需要在默认情况下关闭静态块WYSIWYG编辑器。

转到系统 - &gt;配置,在左侧找到常规部分,单击内容管理并将'启用WYSIWYG编辑器'设置为'默认禁用'来自清单。

然后仔细编辑静态块 - 使用WYSIWYG但之后检查HTML。

这种行为是WYSIWYG编辑器的标准功能,就是它们的用途,添加了<p>标签,因为它们可以制作格式正确的文本。显然,如果您添加仅包含图像的静态块,则不是您想要的,因此请退出编辑器并检查<p>标记。

WYSIWYG编辑器还可以修改输入静态块的变量,并减慢管理页面加载时间,因此最好默认关闭它。

答案 1 :(得分:5)

一个更加用户友好的方法是捕获cms_page_render - 事件,并使用正则表达式“展开”小部件:

配置:

<cms_page_render>
    <observers>
        <your_unique_handler>
            <type>singleton</type>
            <class>Package_Module_Model_Observer</class>
            <method>cmsPageRenderEvent</method>
        </your_unique_handler>
    </observers>
</cms_page_render>

观察者:

public function cmsPageRenderEvent($observer)
{
    /* @var $page Mage_Cms_Model_Page*/
    $page = $observer->getPage();

    // Remove wrapping paragraphs around widgets:
    $content = $page->getContent();
    $content = preg_replace('/\<p\>{{(.*?)}}\<\/p\>/', '{{$1}}', $content);
    $page->setContent($content);
}

这将在Magento执行它们之前将小部件从其段落中解开。

编辑:{{和}}之间的部分应该是非贪婪的。

答案 2 :(得分:4)

编辑js / mage / adminhtml / wysiwyg / tiny_mce / setup.js

var settings = {
        mode : (mode != undefined ? mode : 'none'),
        elements : this.id,
        theme : 'advanced',
        plugins : plugins,
        theme_advanced_buttons1 : magentoPlugins + 'magentowidget,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect',
        theme_advanced_buttons2 : 'cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor',
        theme_advanced_buttons3 : 'tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,iespell,media,advhr,|,ltr,rtl,|,fullscreen',
        theme_advanced_buttons4 : 'insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,pagebreak',
        theme_advanced_toolbar_location : 'top',
        theme_advanced_toolbar_align : 'left',
        theme_advanced_statusbar_location : 'bottom',
        theme_advanced_resizing : true,
        convert_urls : false,
        relative_urls : false,



        forced_root_block : '', /* <-- Add this setting */



        content_css: this.config.content_css,
        custom_popup_css: this.config.popup_css,
        magentowidget_url: this.config.widget_window_url,
        magentoPluginsOptions: magentoPluginsOptions,

答案 3 :(得分:2)

这取决于您使用静态块的位置以及您正在使用的模板/主题。打开开发人员前端提示,加载有问题的页面,识别使用的模板文件,然后从phtml文件中提取<p>标签。

直接调用的静态块不会添加额外的<p>标记。

相关问题