Helloooo
Mais qu'est-ce qu'il raconte le canard avec son chat ???
Je modifie un tchat (BlabAx) en rajoutant des codes pour les smileys, dans le fichier emoticons.php .
Par exemple, le code :smiling: donne le classique smiley au visage souriant.
Tout comme le code :tongue: donne le smiley qui tire la langue.
Le array dans le fichier php est composé de codes de ce genre :
1 2
| $emoticons[]=':smiling: svg_emo_smiling 1';
$emoticons[]=':tongue: svg_emo_tongue 1'; |
La première partie est le code smiley, la seconde est l'image appelée, et le 1 est juste si on affiche ou non ce smiley dans la liste des smileys disponible (caché si 0, ce qui est pratique pour éviter 'avoir plusieurs fois le même smiley si il a des codes différents).
Ce array est exploité dans un fichier blabax.php :
1 2 3 4 5 6 7 8 9 10 11 12 13
|
// prepare list of emoticons to replace
require_once('emocodes.php');
$emos2js=''; $emos2dv='';
foreach ($emoticons as $emo) {
$emo=explode(' ',$emo);
if(isset($emo[2])){
$emos2js.="emos['".$emo[0]."']='".$emo[1]."';\r\n";
if($emo[2]==1){$emos2dv.='<span class="'.$emo[1].' chat_list_emoticon" onclick="shoop(this,1,100);emo2input(\''.$emo[0].'\')"></span>';}
}} |
Puis $emos2js est exploité dans un script de blabax.pxtm :
1 2
| emos=new Array();
<?php print $emos2js;?> |
On a tous l'habitude de mettre : ) (sans l'espace car sinon le forum affiche le smiley lol) ou :p pour ces smileys, donc j'ai voulu ajouter :
1 2
| $emoticons[]=':) svg_emo_smiling 0';
$emoticons[]=':p svg_emo_tongue 0'; |
Du coup, la partie messages du tchat affiche "undifined" .
Si je retire ou commente la ligne pour le code : ) , le chat fonctionne.
Je pense que le problème vient du fait que la parenthèse du code smiley ne va pas avec celles du array javascript.
1 2
| emos=new Array();
<?php print $emos2js;?> |
Si je décommente
$emoticons[]=':) svg_emo_smiling 0';
et que je retire , le chat fonctionne (sans les smileys bien sur mais pas de "undefined").
Quelqu'un aurait une idée pour pouvoir utiliser des parenthèses dans les valeurs du array JS ?
Merkouiiin
Partager