2010-06-10 4 views

Répondre

0

Les balises <style> ne sont pas valides dans le corps du document.

Il peut être possible de les protéger d'une manière ou d'une autre (au moins dans son successeur CKEDitor, voir here et rechercher protectedSource), mais la question principale devrait être: Pourquoi sont-ils là?

1

Pour l'enregistrement CKEditor n'est pas un successeur de TinyMCE, juste un concurrent.

Vous pouvez conserver les balises de style dans le contenu en spécifiant «style» comme l'un des balises autorisées dans la configuration de validation de TinyMCE. Ajoutez simplement:

extended_valid_elements: "style" 

à la configuration que vous transmettez à init.

0

Si vous utilisez WYSIWYG TinyMCE ou CKEditor et la version de CodeIgniter de structure> 2.0, vous pouvez rencontrer des problèmes avec l'attribut de style dissapearing.

Vous définissez le style comme et après avoir soumis le formulaire que vous obtenez.

Où diable est style = ""?

Vous avez probablement cette option permet dans le fichier config.php:

$config['global_xss_filtering'] = TRUE; 

Après avoir désactivé le filtrage global, WYSIWYG ne perd pas de styles.

Personnellement, je ne voulais pas désactiver cette fonction si je fait une solution de contournement; o)

Modifié basé sur la suggestion de Bart de ne pas jouer avec les fichiers de base; o)

Cette sécurité a été ajouté pour certains raison, afin de ne pas se débarrasser complètement, j'ai créé tableau qui stockent les adresses auxquelles le style de tag ne doit pas être retiré.

Vous devez créer un fichier MY_Security.php comme une extension pour la classe de base de sécurité et ajouter _remove_evil_attributes de fonctions modifiées.

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(
     "#&lt;(/?[^&gt;&lt;]+?)([^A-Za-z\-])(".implode('|', $evil_attributes).")(\s*=\s*)([\"][^&gt;]*?[\"]|[\'][^&gt;]*?[\']|[^&gt;]*?)([\s&gt;&lt;])([&gt;&lt;]*)#i", 
     "&lt;$1$6", 
     $str, -1, $count 
    ); 
    } while ($count); 
    return $str; 
} 

source: http://blog.codebusters.pl/en/codeigniter-202-tinymce-or-ckeditor-style-attribute-lost-after-update/#comment-543