Submitted by chtipepere on
Bonjour à tous,
Je reviens vers vous concernant un problème que je rencontre avec FCKEditor. J'installe donc fckeditor 5.x-1.1 sur Drupal 5.1, et à chaque fois que fckeditor est chargé, j'ai ce message d'erreur Drupal qui apparaît :
* warning: preg_match() [function.preg-match]: Unknown modifier '.' in xxx/modules/fckeditor/fckeditor.module on line 299.
* warning: preg_match() [function.preg-match]: Unknown modifier '.' in xxx/modules/fckeditor/fckeditor.module on line 299.
J'ai essayé d'installer les versions en développement, cela ne m'aide pas (cela change juste le n° de la ligne en erreur. Je suis allé voir sur www.drupal.org, regardé dans les messages de bug, support, certaines personnes parlent de ce problème, mais aucune des solutions proposées fonctionne chez moi. Voici le code php présent à cette ligne dans fckeditor.module :
/**
* Search the field id for matches in array of matches
*
* @param $search
* A string representing a form field id
* @ param $array
* An $array with strings to match the $search parameter against
*
* @return
* TRUE on match, FALSE on no match
*/
function fckeditor_idsearch($search, $array) {
foreach ($array as $key => $value) {
// LA LIGNE SUIVANTE EST CELLE EN CAUSE DANS LES MESSAGES D'ERREUR
if (!empty($value) && preg_match('/^'.str_replace('*','.*',$value).'$/i', $search)) {
// on any first match we know we're done here so return positive
return true;
}
}
return false;
}
Cela ne me dérangerait pas trop si ça ne faisait pas planter FireFox 2 fois sur 5.
Merci d'avance pour votre aide.
Salut. Cette réponse risque
Permalien Soumis par drupalfrance le 14 Mai, 2007 - 12:01
Salut. Cette réponse risque de t'énerver mais... pourquoi ne pas utiliser TinyMCE ?
La raison est simple, parce
Permalien Soumis par chtipepere le 14 Mai, 2007 - 14:18
La raison est simple, parce que c'est dans le cahier des charges.
Non négociable... :(
Instinctivement je
Permalien Soumis par Damien Tournoud le 14 Mai, 2007 - 14:34
Instinctivement je chercherais à quoter $value en utilisant la fonction
preg_quote()
... mais je ne sais pas ce que signifie cestr_replace('', '.*', $value)
... ca signifie quoi recherche la chaine vide?Je ne sais pas pourquoi,
Permalien Soumis par chtipepere le 14 Mai, 2007 - 14:45
Je ne sais pas pourquoi, mais il y a une erreur à l'affichage de mon post. Le code est bon quand j'édite mais pas quand j'affiche. Il est donc écrit : str_replace(' * ', ' .* ', ...) (sans les espaces dans les chaînes de caractères.
Voilà ce que ça donne en rajoutant un preg_quote() sur $value : warning: preg_match() [function.preg-match]: Unknown modifier ' \ ' in /xxx/modules/fckeditor/fckeditor.module on line 299.
Désolé de pas utiliser la balise code, mais elle est pas très lisible chez moi. :/
Ok. Essayes donc
Permalien Soumis par Damien Tournoud le 14 Mai, 2007 - 14:51
Ok. Essayes donc :
str_replace('*', '.*', preg_quote($value, '/'))
Et bien bravo... Plus de
Permalien Soumis par chtipepere le 14 Mai, 2007 - 15:01
Et bien bravo...
Plus de message d'erreur, plus de plantage intempestif, tout roule.
Pour résumer, si ça peut servir à quelqu'un.
Config :
Drupal 5.x
PHP 5.2.x (il y aurait des soucis avec ces version de php et preg_match : http://fr.php.net/manual/fr/function.preg-match.php#74726)
Fckeditor module v5.x-1.1
Dans le fichier fckeditor.module, ligne 299 (à l'origine), remplacer :
if (!empty($value) && preg_match('/^'.str_replace("",".",$value).'$/i', $search)) {
Par :
if (!empty($value) && preg_match('/^'.str_replace("*",".*",preg_quote($value, '/')).'$/i', $search)) {
Je ferais un feedback du bon fonctionnement de tout ceci.
Bien le merci (j'ai d'autres questions, mais ce sera pour d'autres posts).
Pourrais-tu remonter le
Permalien Soumis par Damien Tournoud le 14 Mai, 2007 - 15:06
Pourrais-tu remonter le problème sur drupal.org ? Le titre de l'issue pourrait être "Field ids can contain special regex characters".
C'est noté, je fais ça
Permalien Soumis par chtipepere le 14 Mai, 2007 - 15:20
C'est noté, je fais ça dès que un peu de temps aujourd'hui.