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*| |\n)<\/p>/', '', $content);
return $content;
}
}
如果任何人都可以明显看到什么错,这将不胜感激。
答
嗯,我还没有得到上面的代码工作,但我发现了一个更简单的方法使用jQuery实现我需要的结果......
$('p').each(function() {
var $this = $(this);
if($this.html().replace(/\s| /g, '').length == 0)
$this.remove();
});