Closed Nico207 closed 11 years ago
Entendu, je vais regarder ça. Le bug de textarea se manifeste sous firefox et pas sous chrome. Curieusement d'ailleurs, car j'ai beau modifier le css, rien n'y fait... je dois avouer que là, je sèche... Je ne m'avoue toujours pas vaincu...
Je n'avais pas pensé aux doubles quotes: je pense qu'un simple stripslashes devrait régler le problème...
Le problème d'accents semble relever de l'encodage... je vais regarder.
En effet, si un tag contient des accents mal gérés, le comportement de la recherche peut en être affecté... Je m'y mets de suite ;) Merci
Vu le comportement étrange, j'aurais plus mis ça sur le dos d'un javascript que d'un CSS, même si je n'ai rien vu de précis validant cette hypothèse. De mon côté, voilà les comportements précis :
J'ai testé sans aucun js/jquip: le problème reste le même...
Par contre SANS LA FEUILLE DE STYLES CA MARCHE ! Argh... c'est un blème de css... (on progresse)
YES ! J'ai trouvé (je souïs invicibleu !) je commit la modif de la feuille direct ^^
C'est bon, j'ai corrigé (mais j'ai cherché un moment !)
Un "noselect" ? J'avais jamais vu ça sur des éléments de formulaire xD Effectivement je comprend maintenant.
c'est une balise auto_css ^^ j'avais oublié que je l'avais mise sur les li :-/
Pour les guillemets en revanche, c'est pas réglé...
Le 11/05/2013 19:53, jerrywham a
écrit :
Pour les guillemets en revanche, c'est pas réglé...
—
Reply to this email directly or view
it on GitHub.
tu as des \" c'est ça ?
Oui et des \'
Le 11/05/2013 20:07, jerrywham a
écrit :
Oui et des \'
—
Reply to this email directly or view
it on GitHub.
pourtant, je fais un stripslashes sur l'ensemble de la page dans le
cache_end...
curieux (encore ^^)
Il faut supprimer le stripslashes avant la mise en cache (ligne 293) et le mettre avant l'affichage du contenu et du titre, toujours ligne 248 :
$snippet['#contenu'] = stripslashes($snippet['#contenu']);$snippet['#titre'] = stripslashes($snippet['#titre']);
Ou plutôt :
$snippet['#contenu'] = stripslashes(str_replace(array(' ',"\t"),array(' ',' '),$snippet['#contenu']));$snippet['#titre'] = stripslashes($snippet['#titre']);
Le 11/05/2013 20:41, jerrywham a
écrit :
Ou plutôt :
$snippet['#contenu'] = stripslashes(str_replace(array(
',"\t"),array(' ',' '),$snippet['#contenu']));$snippet['#titre']
= stripslashes($snippet['#titre']);
—
Reply to this email directly or view
it on GitHub.
C'est curieux : ça devrait produire strictement le même effet en
évitant d'exécuter un stripslashes à chaque snippet...
Je ne suis pas sûr qu'on puisse exécuter une fonction sur un ob_get_clean(). Peut-être sur la variable qui récupère son contenu ???
du coup, ça devrait marcher ...
function
cache_end($fichier,$duree){$donnees=ob_get_clean();$donnees=stripslashes($donnees);cache_write($fichier,$donnees,$duree);return
$donnees;}
Le 11/05/2013 21:26, jerrywham a écrit :
Je ne suis pas sûr qu'on puisse exécuter une fonction sur un
ob_get_clean(). Peut-être sur la variable qui récupère son
contenu ???
—
Reply to this email directly or view
it on GitHub.
Ben non, je viens de tester ça ne marche pas (ma solution oui par contre). Il doit y avoir un traitement dans le cache qui fait foirer le truc.
ok, j'ajoute, alors...
Le 11/05/2013 21:30, jerrywham a écrit :
Ben non, je viens de tester ça ne marche pas (ma solution oui
par contre). Il doit y avoir un traitement dans le cache qui
fait foirer le truc.
—
Reply to this email directly or view
it on GitHub.
J'ai testé plusieurs voies et il n'y a qu'à l'affichage que stripslashes fonctionne.
Je te propose la manip suivante : -ajouter la fonction stripslashes_deep trouvée dans le manuel php (fonction récursive pour un tableau) :
function stripslashes_deep($value){$value = is_array($value) ? array_map('stripslashes_deep', $value):stripslashes($value);return $value;}
-supprimer le stripsalshes de la fonction cache_end (ligne 293 à peu prêt)
-modifier les fonctions unstore (ligne 229) et map_entities (ligne 241) afin d'utiliser stripslashes_deep ainsi :
function unstore($file){return stripslashes_deep(json_decode(gzinflate(file_get_contents($file)),true));}
function map_entities($chaine){return stripslashes_deep(htmlentities($chaine, ENT_QUOTES, 'UTF-8'));}
Si des snippets ont été précedemment enregistrés avec des /', il faudra les modifier à la mano...
La solution est bonne, mais elle m'a valu un bon moment de recherche sur un bug collatéral: en stripslachant à la serpe et récursivement via la fonction stripslash_deep (au demeurant vachement compacte et élégante) on a un effet secondaire: tous les booléens de la config (qui appelle unstore) sont convertis en string... ^^ Je me suis gratté la tête un moment avant de retrouver ^^ Je vais arranger ça ;)
Ah ouais. Bien vu l'aveugle ^^. J'l'avais pas vu... Mais sauf erreur de ma part, c'est à ce niveau là qu'il faut "stripslacher" (au moins le titre et le contenu).
J'ai simplement déplacé l'appel à la fonction vers load() au lieu de unstore: en effet load() n'est utilisée que pour les snippets alors que unstore() est appelée pour tout accès aux données (config comprise)
Ah ok. Je vais tester ça...
Je pense que les booleans sont encore impactés dans la config car là où il faut mettre true ou false dans la config, j'ai 1 ou rien. Est-ce que c'est voulu ou est-ce un bug ?
en fait, si tu as ce bug, il faut modifier ta config et mettre true ou false à la main: en sauvant, tout rentre dans l'ordre et les valeurs sont à nouveau booléennes...
Bonjour,
voici quelques petits problèmes :
Bonne continuation.