Magento - 删除空P标签模块

时间:2016-01-06 15:45:56

标签: php magento module tags paragraph

我试图删除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;
}

}

如果有人能够看到任何明显错误的内容,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

我没有上面的代码可以工作,但是我发现了一种更简单的方法来使用jQuery实现我所需的结果......

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