Page 1 sur 1

Mettre une image à la place de R

Posté : 11 févr. 2007, 09:58
par s0ak
Bonjour, comment insérer une image à la place des R CA, SA, AO,... ?
si je met <img src=".."> sa m'écrit le code et m'affiche pas l'image...
        function _setPlayerDisplayName(&$playerInfo) {
        
                // Determine the player status (U = Unregistered, R = Registered, SA = Server Admin,
                // CA = Channel Admin, AO = Auto-Operator, AV = Auto-Voice, O = Operator, V = Voice)
                if (($playerInfo["userstatus"] & 4) == 4) { $playerstatus = "R"; } else { $playerstatus = 'U'; }
                if (($playerInfo["userstatus"] & 1) == 1) { $playerstatus .= " SA"; }
                if (($playerInfo["privileg"] & 1) == 1) { $playerstatus .= " CA"; }
                if (($playerInfo["privileg"] & 8) == 8) { $playerstatus .= " AO"; }
                if (($playerInfo["privileg"] & 16) == 16) { $playerstatus .= " AV"; }
                if (($playerInfo["privileg"] & 2) == 2) { $playerstatus .= " O"; }
                if (($playerInfo["privileg"] & 4) == 4) { $playerstatus .= " V"; }
                if (($playerInfo["attribute"] & 64) == 64) { $playerstatus .= " Rec"; }
                
                // Determine the player attributes to be listed behind the player status (WV = Want Voice)
                if (($playerInfo["attribute"] & 2) == 2) { $playerattributes = ' WV'; } else { $playerattributes = ''; }
                
                $playerInfo["displayname"] = $playerInfo["playername"] . " (" . $playerstatus . ")" . $playerattributes;
        }
Résultat:
Image

Si vous voulez le fichier en entier ou il y à le code : Télécharger

Posté : 11 févr. 2007, 11:59
par Ryle
Ton problème vient du fait que tu fais un htmlspecialchars() sur ta chaine pour convertir les caractères spéciaux en entités html (et donc < est converti en <, du coup il n'interprête plus cela comme une image.

Ligne 471
echo(str_replace(" ", "&nbsp;", htmlspecialchars($playerInfo["displayname"])));
Vire donc le specialchars de cette ligne et utilise le dans ta fonction uniquement sur la partie qui en a éventuellement besoin, c'est à dire $playerInfo (puisque tu ne contrôle pas son contenu, tandis que tu génères toi même $playerstatus et $playerattributes, tu dois pouvoir en maitriser le contenu :))

Posté : 11 févr. 2007, 12:56
par s0ak
hmm j'ais retiré ceci, si je met la balise <b>R</b> sa fonctionne très bien.
mais si je met : <img src="images/corps/mn-ts.jpg"> sa ne m'affiche rien...

Posté : 11 févr. 2007, 14:38
par Ryle
Regarde le code source généré... je pense que tu as le même problème à cause du str_replace :

<img src="images/corps/mn-ts.jpg">
devient
<img&nbsp;src="images/corps/mn-ts.jpg">

et du coup ne fonctionne plus... :)

Posté : 11 févr. 2007, 15:03
par s0ak
ok c'est bien sa, et comment je résou ce problème ?

Posté : 12 févr. 2007, 11:47
par Ryle
Si ta question est résolue, tu peux ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution
en cliquant sur le bouton Image en haut à gauche de ce sujet. :)

Posté : 12 févr. 2007, 12:31
par s0ak
ce n'est pas résolue, j'aimerais savoir comment faire pour avoir l'adresse de l'image de cette facon <img src="images/corps/mn-ts.jpg"> et non <img&nbsp;src="images/corps/mn-ts.jpg"> ... ?

Posté : 12 févr. 2007, 13:03
par Ryle
Ben exactement de la même manière que pour ton htmlspecialchars() :)

Au lieu de le faire sur toute la chaine pour l'afficher, tu le fais dans ta fonction, uniquement sur les parties de ta chaine qui en ont besoin... (et donc pas l'image)

Tu peux aussi le virer complètement et simplement ajouter les tags html <nobr></nobr> autour du code pour forcer le navigateur à ne pas mettre de retour à la ligne :)

Posté : 12 févr. 2007, 14:02
par s0ak
oki c'est bon merci beaucoup ;)