Editeur de texte fckeditor et ckeditor

5 messages dans ce sujet

Posté(e) · Signaler ce message

bonjour,

pourriez-vous nous donner le correctif concernant la suppression des div invisibles, présent dans la version 6.4 ?

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

dans lib/fonctions/format.php, remplacer la fonction cleanDataDeep existante par celle de la 6.4:


function cleanDataDeep($value, $key = null)
{
$bad_strings = array("Content-Type:", "text/plain;", "MIME-Version:", "Content-Transfer-Encoding:", "Content-Transfer-Encoding: 7Bit", "bcc:");
if (is_array($value)) {
$value = array_map('cleanDataDeep', $value, array_keys($value));
} else {
if (get_magic_quotes_gpc()) {
// Si magic_quotes est activé dans la configuration de l'hébergement, alors on annule ses effets ici
$value = stripslashes($value);
}
if (!a_priv('admin*', false)) {
foreach($bad_strings as $bad_string) {
if (String::strpos($value, $bad_string) !== false) {
// On interdit les bad_strings qui pourraient servir à des injections diverses
$value = '';
}
}
if (!in_array($key, $GLOBALS['post_variables_with_html_allowed_if_not_admin'])) {
// Un utilisateur sans droit administrateur ne peut jamais donner de HTML => protège de toute sorte de XSS
$value = strip_tags($value);
}
}
// On convertit les données en UTF8 si on n'a pas vu de caractère spécifique UTF8
if(!String::detect_utf8_characters($value)){
// A défaut, on considère que l'encodage est en ISO ou CP1252. Si ce n'est pas le cas, ça ne marchera pas.
// Mais de toutes façons, il n'y a pas de raison de recevoir autre chose que de l'UTF8
// Donc cette conversion est sensée servir très occasionnellement : par exemple lors de la MAJ d'un ancien site, dont les URL étaient encodées en ISO8859
// La plupart du temps, ici on a à faire à de l'ASCII classique sans accent, donc aucun changement concret, mais on fait le remplacement au cas où
$value = String::utf8_encode($value);
}
if(strlen($value)>20 && String::strpos($value, 'myEventWatcherDiv')!==false) {
// On fait un test sur strlen (sans String::, c'est plus rapide) d'abord pour éviter de faire le test strpos lorsque ce n'est pas utile pour accélérer
// On nettoie ce qui est laissé par CKEditor
$value = str_replace(array('<div id="myEventWatcherDiv" style="display: none;"> </div>', '<div style="display:none;" id="myEventWatcherDiv"> </div>', '<div style="display: none;" id="myEventWatcherDiv"> </div>'), '', $value);
}
}
return $value;
}
[/CODE]

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

cela ne fonctionne pas


Notice: Undefined index: post_variables_with_html_allowed_if_not_admin in C:\Program Files\EasyPHP-5.3.8.1\www\site.fr\lib\fonctions\format.php on line 41

Warning: in_array() expects parameter 2 to be array, null given in C:\Program Files\EasyPHP-5.3.8.1\www\site.fr\lib\fonctions\format.php on line 41

Fatal error: Call to undefined method String::detect_utf8_characters() in C:\Program Files\EasyPHP-5.3.8.1\www\site.fr\lib\fonctions\format.php on line 47

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Il est vrai que cette fonction version 6.4 dépend d'autres améliorations faite au même moment dans le logiciel.

La partie qui nettoie les div invisible laissé par l'éditeur de texte est :


if(strlen($value)>20 && String::strpos($value, 'myEventWatcherDiv')!==false) {
// On fait un test sur strlen (sans String::, c'est plus rapide) d'abord pour &#233;viter de faire le test strpos lorsque ce n'est pas utile pour acc&#233;l&#233;rer
// On nettoie ce qui est laiss&#233; par CKEditor
$value = str_replace(array('<div id="myEventWatcherDiv" style="display: none;"> </div>', '<div style="display:none;" id="myEventWatcherDiv"> </div>', '<div style="display: none;" id="myEventWatcherDiv"> </div>'), '', $value);
}
[/CODE]

Vous pouvez ajouter ce morceau de code à la fonction existante sur votre version, cela ne devrait pas poser de problème.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

en effet, cela ne pose pas de problèmes !

Thank you

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping