Magento — Удалить пустой модуль P Tags

Я пытаюсь удалить пустые теги P в Magento CMS.

Я следовал нескольким учебникам и пытался объединить информацию в обоих, но она не работает, и мне было интересно, если кто-нибудь может указать на ошибку в моем коде.

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

Код для моего файла config.xml, расположенного в RemoveEmptyPTags / etc, …

<!--
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>

Код для моего файла Observer.php, расположенного в RemoveEmptyPTags / Model, …

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);
}

}

Код для моего файла Data.php, расположенного в RemoveEmptyPTags / Helper …

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;
}

}

Если кто-то может увидеть что-то явно не так с этим, это будет высоко ценится.

0

Решение

Ну, у меня не работает приведенный выше код, но я нашел гораздо более простой способ достичь желаемых результатов с помощью jQuery …

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]