На сайт добавляют очень много текстов из разных источников. Добавляют через редактор FCK . А тот хоть и умеет чистить вставляемый текст, но не всегда полностью справляется с поставленной задачей. Поэтому появилась задача добавить еще один фильтр для чистки HTML.
Так как на сайте много форм и все они обрабатываются в разных местах, а вот текстовый редактор выводится через один единственный класс, то было придумано оригинальное решение.
1. В метод выводящий HTML формы для редактора был добавлен checkbox следующего вида:
<input type="checkbox" name="format_filter[]" value="content" />
В качестве value указано имя textarea для которого и выводилась кнопочка.
А в файле, который подключается ко всем файлам сайта добавлен следующий код
if($_SERVER["REQUEST_METHOD"]=="POST") { if(isset($_POST["format_filter"]) && is_array($_POST["format_filter"]) && count($_POST["format_filter"])>0) { foreach($_POST["format_filter"] AS $filter) { if(isset($_POST[$filter])) { $_POST[$filter]=clearTextFormat($_POST[$filter]); } } } unset($filter); }
clearTextFormat — функция с кучей regexp внутри.
Извратно, но работает