Magento-删除空的P标签模块


Magento - Remove Empty P Tags Module

我正在尝试删除Magento CMS中的空p标记。

我一直在学习一些教程,并试图将两者中的信息结合起来,但它不起作用,我想知道是否有人能指出我代码中的错误。

http://gielberkers.com/magento-remove-wrapping-paragraph-around-widget/https://www.smashingmagazine.com/2012/03/basics-creating-magento-module/

我已正确激活我的模块。

我的模块位于。。。app/code/local/Rapport Design/RemoveEmptyPTags

位于RemoveEmptyPTags/etc中的config.xml文件的代码是…

<!--
    The module's node contains basic
    information about each Magento module
-->
<modules>
    <!--
        This must exactly match the namespace and module's folder
        names, with directory separators replaced by underscores
    -->
    <RapportDesign_RemoveEmptyPTags>
        <!-- The version of our module, starting at 0.0.1 -->
        <version>0.0.1</version>
    </RapportDesign_RemoveEmptyPTags>
</modules>
<!-- Configure our module's behavior in the global scope -->
<frontend>

    <!-- Defining models -->
    <models>
        <!--
            Unique identifier in the model's node.
            By convention, we put the module's name in lowercase.
        -->
        <rapportdesign_removeemptyptags>
            <!--
                The path to our models directory, with directory
                separators replaced by underscores
            -->
            <class>RapportDesign_RemoveEmptyPTags_Model</class>
        </rapportdesign_removeemptyptags>
    </models>
    <!-- Defining an event observer -->
    <events>
        <!-- The code of the event we want to observe -->
        <cms_page_render>
            <!-- Defining an observer for this event -->
            <observers>
                <!--
                    Unique identifier within the
                    catalog_product_save_after node.
                    By convention, we write the module's
                    name in lowercase.
                -->
                <rapportdesign_removeemptyptags>
                    <!-- The model to be instantiated -->
                    <class>rapportdesign_removeemptyptags/observer</class>
                    <!-- The method of the class to be called -->
                    <method>cmsPageRenderEvent</method>
                    <!-- The type of class to instantiate -->
                    <type>singleton</type>
                </rapportdesign_removeemptyptags>
            </observers>
        </cms_page_render>
    </events>
</frontend>

位于RemoveEmptyPTags/Model中的Observer.php文件的代码是…

class RapportDesign_RemoveEmptyPTags_Model_Observer {
public function cmsPageRenderEvent($observer) {
/* @var $page Mage_Cms_Model_Page*/
$page = $observer->getPage();
$content = $page->getContent();
$content = Mage::helper('RapportDesign_RemoveEmptyPTags')->processContent($content);
$page->setContent($content);
}
}

位于RemoveEmptyPTags/Helper中的Data.php文件的代码是…

class RapportDesign_RemoveEmptyPTags {
public function processContent($content)
{
// Remove wrapping paragraphs around widgets:
$content = preg_replace('/'<p'>{{(.*?)}}'<'/p'>/', '{{$1}}', $content);
// Remove div around widgets
$content = preg_replace('/'<div'>{{(.*?)}}'<'/div'>/', '{{$1}}', $content);
// Remove empty paragraphs:
$content = preg_replace('/<p>(|'s*|&nbsp;|'n)<'/p>/', '', $content);
return $content;
}
}

如果有人能看出这件事有什么明显的错误,我们将不胜感激。

我还没有完成上面的代码,但我发现了一种使用jQuery实现所需结果的更简单的方法。。。

   $('p').each(function() {
       var $this = $(this);
       if($this.html().replace(/'s|&nbsp;/g, '').length == 0)
           $this.remove();
   });