当我创建静态块magento包含<p>
标签的内容时。这对DOM来说非常糟糕。
有可能以某种方式删除它。我想这是一些javascript,但我不知道是哪一个。
答案 0 :(得分:14)
我之前的回答实际上是错误的。
您需要在默认情况下关闭静态块WYSIWYG编辑器。
转到系统 - &gt;配置,在左侧找到常规部分,单击内容管理并将'启用WYSIWYG编辑器'设置为'默认禁用'来自清单。
然后仔细编辑静态块 - 使用WYSIWYG但之后检查HTML。
这种行为是WYSIWYG编辑器的标准功能,就是它们的用途,添加了<p>
标签,因为它们可以制作格式正确的文本。显然,如果您添加仅包含图像的静态块,则不是您想要的,因此请退出编辑器并检查<p>
标记。
WYSIWYG编辑器还可以修改输入静态块的变量,并减慢管理页面加载时间,因此最好默认关闭它。
答案 1 :(得分:5)
一个更加用户友好的方法是捕获cms_page_render
- 事件,并使用正则表达式“展开”小部件:
配置:
<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>
观察者:
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);
}
这将在Magento执行它们之前将小部件从其段落中解开。
编辑:{{和}}之间的部分应该是非贪婪的。
答案 2 :(得分:4)
编辑js / mage / adminhtml / wysiwyg / tiny_mce / setup.js
var settings = {
mode : (mode != undefined ? mode : 'none'),
elements : this.id,
theme : 'advanced',
plugins : plugins,
theme_advanced_buttons1 : magentoPlugins + 'magentowidget,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect',
theme_advanced_buttons2 : 'cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor',
theme_advanced_buttons3 : 'tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,iespell,media,advhr,|,ltr,rtl,|,fullscreen',
theme_advanced_buttons4 : 'insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,pagebreak',
theme_advanced_toolbar_location : 'top',
theme_advanced_toolbar_align : 'left',
theme_advanced_statusbar_location : 'bottom',
theme_advanced_resizing : true,
convert_urls : false,
relative_urls : false,
forced_root_block : '', /* <-- Add this setting */
content_css: this.config.content_css,
custom_popup_css: this.config.popup_css,
magentowidget_url: this.config.widget_window_url,
magentoPluginsOptions: magentoPluginsOptions,
答案 3 :(得分:2)
这取决于您使用静态块的位置以及您正在使用的模板/主题。打开开发人员前端提示,加载有问题的页面,识别使用的模板文件,然后从phtml文件中提取<p>
标签。
直接调用的静态块不会添加额外的<p>
标记。