Jev*_*nov 5 static block magento
当我创建静态块magento用<p>标签包装内容.这对DOM来说非常糟糕.有可能以某种方式删除它.我想这是一些JavaScript,但我不知道哪一个.
ʍǝɥ*_*ʇɐɯ 15
我之前的回答实际上是错误的.
您需要在默认情况下关闭静态块WYSIWYG编辑器.
转到系统 - >配置,找到左侧的常规部分,单击内容管理,然后从列表中将'启用WYSIWYG编辑器'设置为'默认禁用'.
然后仔细编辑静态块 - 使用WYSIWYG,但之后检查HTML.
这种行为是WYSIWYG编辑器的标准功能,就是它们的用途,<p>标签被添加,因为它们可以制作格式正确的文本.显然,如果添加一个仅包含图像的静态块,这不是您想要的,因此请退出编辑器并检查<p>标记.
WYSIWYG编辑器还可以修改输入到静态块中的变量,并且会减慢管理页面加载时间,因此最好在默认情况下将其关闭.
一个更加用户友好的方法是捕获cms_page_render-event,并使用正则表达式来"解开"小部件:
配置:
<cms_page_render>
<observers>
<your_unique_handler>
<type>singleton</type>
<class>Package_Module_Model_Observer</class>
<method>cmsPageRenderEvent</method>
</your_unique_handler>
</observers>
</cms_page_render>
Run Code Online (Sandbox Code Playgroud)
观察员:
public function cmsPageRenderEvent($observer)
{
/* @var $page Mage_Cms_Model_Page*/
$page = $observer->getPage();
// Remove wrapping paragraphs around widgets:
$content = $page->getContent();
$content = preg_replace('/\<p\>{{(.*?)}}\<\/p\>/', '{{$1}}', $content);
$page->setContent($content);
}
Run Code Online (Sandbox Code Playgroud)
这将在Magento执行它们之前将小部件从其段落中解开.
编辑:{{和}}之间的部分应该是非贪婪的.