Magento的 - 删除空P-标签模块

问题描述:

我试图Magento的CMS内取出空P-标记。Magento的 - 删除空P-标签模块

我一直在下面几个教程,并试图将信息在这两个结合起来,但它不工作,并想知道如果有人能在我的代码指出错误。

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

我已经正确激活了我的模块。

我模块位于... 应用程序/代码/本地/ Rapport的设计/ RemoveEmptyPTags

我的config.xml文件位于RemoveEmptyPTags /代码等是...

<!-- 
    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 /型号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 /帮手我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(); 
    });