Если вы используете WYSIWYG TinyMCE или CKEditor и Framework CodeIgniter версии> 2.0, у вас могут возникнуть проблемы с исчезающим атрибутом стиля.
Вы устанавливаете стиль, как и после отправки формы, которую вы получаете.
Где, черт возьми, стиль = ””?
Возможно, вы включили эту опцию в файле config.php:
$config['global_xss_filtering'] = TRUE;
После отключения глобальной фильтрации WYSIWYG не теряет стили.
Лично я не хотел отключать эту функцию, поэтому сделал обходной путь; o)
Отредактировано по предложению Барта не связываться с основными файлами; o)
Эта безопасность была добавлена по какой-то причине, поэтому, чтобы не избавиться от нее полностью, я создал массив, в котором хранятся адреса, по которым стиль тега не должен быть удален.
Вам необходимо создать файл MY_Security.php в качестве расширения для основной безопасности.
Класс и добавить измененную функцию _remove_evil_attributes.
protected function _remove_evil_attributes($str, $is_image){
// All javascript event handlers (e.g. onload, onclick, onmouseover), style, and xmlns
$allowed = array("your allowed url's without domain like '/admin/edittext/'");
if(in_array($_SERVER['REQUEST_URI'],$allowed)){
$evil_attributes = array('on\w*', 'xmlns');
}else{
$evil_attributes = array('on\w*', 'style', 'xmlns');
}
if ($is_image === TRUE){
/*
* Adobe Photoshop puts XML metadata into JFIF images,
* including namespacing, so we have to allow this for images.
*/
unset($evil_attributes[array_search('xmlns', $evil_attributes)]);
}
do {
$str = preg_replace(
"#<(/?[^><]+?)([^A-Za-z\-])(".implode('|', $evil_attributes).")(\s*=\s*)([\"][^>]*?[\"]|[\'][^>]*?[\']|[^>]*?)([\s><])([><]*)#i",
"<$1$6",
$str, -1, $count
);
} while ($count);
return $str;
}
источник: http://blog.codebusters.pl/en/codeigniter-202-tinymce-or-ckeditor-style-attribute-lost-after-update/#comment-543