【发布时间】:2014-12-08 05:48:07
【问题描述】:
将 Imperavi Redactor 与 Yii 2 框架结合使用。
当没有输入文本时,Imperavi Redactor 会生成以下标记:<p><br></p>。
对于每个换行符,也会附加此标记。
我想删除它,因为无法正常使用RequiredValidator 验证此类内容。
我想在beforeValidate() 事件中删除并检查是否输入了任何文本。
如果除了空标签、空格和换行符之外没有文本,则不允许保存。
否则内容应以初始状态保存。
它可以在preg_replace 的帮助下实现,但我不确定它是否是 Redactor 生成的唯一变体。即使它是唯一的变体,这种解决方案在切换选项(例如将paragraphize 选项设置为false)、更新或将所见即所得(WYSIWYG)更改为 TinyMCE 或 CKEditor 的情况下也不可靠。
例如,如果是<p><br/></p> 或<p>&nbsp;</p>,则正则表达式将失败。
我也想要修剪空格,例如<p> <br></p>。
Redactor 中是否有执行此操作的选项? removeEmpty 选项没有帮助。
我尝试了带有AutoFormat.RemoveEmpty 选项的HTML Purifier,结果是<p><br/></p>(对于内容<p></br></p>)。也许我们需要指定自定义模式或标签列表,具体应该在段落中删除什么。
【问题讨论】:
标签: php wysiwyg yii2 htmlpurifier redactor