Использование Imperavi Redactor с каркасом Yii 2.
Когда текст не вводится, Imperavi Redactor производит эту разметку: <p><br></p>
. Для каждой разрывы строки добавляется эта разметка.
Я хочу удалить это, потому что нет возможности нормально проверять такой контент с помощью RequiredValidator
. Я хочу сделать удаление в beforeValidate()
и проверить, не введен ли какой-либо текст. Если нет текста, кроме пустых тегов, пробелов и разрывов строк, сохранение не допускается. В противном случае содержимое должно быть сохранено в исходном состоянии.
Это может быть достигнуто с помощью preg_replace
, но я не уверен, что это единственное изменение, созданное Redactor. И даже это единственное решение, такое решение не является надежным в случае переключения параметров (например, установка параметра paragraphize
на значение false
), обновления или изменение WYSIWYG, например, TinyMCE или CKEditor.
Например, если это будет <p><br/></p>
или <p> </p>
, regex завершится с ошибкой. Также я хочу триммеры, например <p> <br></p>
.
Есть ли возможность в Redactor сделать это? removeEmpty не помогает.
Я попробовал очиститель HTML с параметром AutoFormat.RemoveEmpty, и результат был <p><br/></p>
(для контента <p></br></p>
). Возможно, нам нужно указать пользовательский шаблон или список тегов, что именно должно быть удалено внутри абзацев.