bryce_30 Posté(e) le 29 juin 2006 Partager Posté(e) le 29 juin 2006 salut tout le monde, je suis en train d'améliorer mon site, et je viens de faire un code qui remplace certaines chaine par un smiley, comme ceci : <?php $in=array( '-(;', '-((' ); $out=array( '<img src="pas_content.png" alt="nom image" />', '<img src="en_colere.png" alt="nom image" />' ); echo str_replace($in,$out,$texte); ?> seulement je voudrais faire un peu comme sur le forum, qu'en cliquant sur un lien, il apparaisse une popup avec a l'intérieur tous mes smileys ! comment faire ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
playstation.2.fg Posté(e) le 29 juin 2006 Partager Posté(e) le 29 juin 2006 Fait le à l'aide d'une fonction Javascript. Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce_30 Posté(e) le 29 juin 2006 Auteur Partager Posté(e) le 29 juin 2006 Fait le à l'aide d'une fonction Javascript. oui, je me doute ! sauf que je connais pas le javascript... je sais pas si on peut y mettre du php dedans ? uqelqu'un pourrait m'expliquer ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 29 juin 2006 Partager Posté(e) le 29 juin 2006 Le plus simple est de regarder le code source de la page de rédaction des messages, sur ce forum. En gros, il te faut : 1. Sur ta page principale, un lien (balise <a> avec propriété "target") permettant d'ouvrir la page contenant les smileys. 2. Une page html contenant tous les smileys, avec sur chaque image une fonction javascript ressemblant à : onclick="opener.getElementById('toto').value='mon_smiley'". La partie importante dans cet exemple est l'emploi de l'objet "opener", qui permet d'accéder à la page ayant ouvert la page contenant les smilies, pour en changer le contenu. Encore une fois, regarde le code source du forum, ce sera instructif et certainement réutilisable sans beaucoup de modifications. Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce_30 Posté(e) le 29 juin 2006 Auteur Partager Posté(e) le 29 juin 2006 j'ai pas tout compris ! mais je vais regarder le code source merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce_30 Posté(e) le 29 juin 2006 Auteur Partager Posté(e) le 29 juin 2006 alors j'y arrive a peu près, mais il y a un seul truc que j'arrive pas a faire, c'est le lien sur le smiley pour qu'il s'affiche dans la page que je veux..., j'ai bien mis la fonction que tu dis, maisje sais pas quoi mettre comme valeur au href ? edit : voici le code : <table align='center' width='90%' border='3'> <?php foreach($tableau as $cle => $element) { echo "<tr><td align='center' width='50%'><a href='#' onclick='opener.getElementById(\"message\").value=".$cle."'>".$cle."</a></td><td align='center' width='50%'>".$element."</td></tr>"; } ?> </table> edit 2 : voici le code de la page ou je souhaite qu'apparaissent les smileys ça dans le <head> de la page : <script language="javascript"> function emot_pop() { var nouvelleFenetre = open("../includes/tabl_emot.php", "tableauEmot", "scrollbars, resizable, width=300, height=500"); } </script> et ça a l'endroit ou je veux qu'il y ai le lien : <form method="post" action="minichat.php"> <p>Pseudo : <input type="text" name="pseudo" /></p> <p>Message : <input type="text" name="message" /></p> <p><input type="submit" value="Smileys" onClick="emot_pop()" /></p> <p><input type="submit" /></p> </form> Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce_30 Posté(e) le 30 juin 2006 Auteur Partager Posté(e) le 30 juin 2006 voici la solution : <script ='javascript'> function add_smilie(smil, textarea) { //opener.document.forms[0] += ' ' + smil + ' '; //return true; opener.document.getElementById(textarea).value += ' ' + smil + ' '; } </script> <a href="java script:void(0);" onClick="add_smilie(' :-)', 'message');\">" :-)"</a> ici textarea doit prendre la valeur de l'id du textarea dans votre formulaire ! donc ici il s'agit de 'message' Lien vers le commentaire Partager sur d’autres sites More sharing options...
FiP_ Posté(e) le 30 juin 2006 Partager Posté(e) le 30 juin 2006 Pour info, sur mon site j'ai repris la syntaxe pcinpact, c'est à dire :<nomdusmiley>: //Smileys! $reg = '#:(.*):#sU'; preg_match_all($reg,$string,$out,PREG_SET_ORDER); // $out[][0] = :smiley: // $out[][1] = smiley // on les remplace: foreach ( $out as $tab ) { if ( file_exists(dirname(__FILE__) . '/../_images/smileys/' . $tab[1] . '.gif') ) $string = str_replace($tab[0], "<img src=\"$site/_images/smileys/" . $tab[1] . '.gif" alt="smiley: ' . $tab[1] . 'class="smiley" />', $string); } C'est plus simple pour en rajouter, je n'ai qu'à les rajouter dans le dossier image de mon site :) (en revanche le code actuel ne supporte que les images .gif.. mais bon pour le moment je n'ai pas besoin de plus) Pour avoir la liste, je suppose que je pourrais parcourir le dossier des smileys, avec un chtit: $liste = array(); $dir = opendir($directory); // keep going until all files in directory have been read while ($file = readdir($dir)) if ($file != '.' && $file != '..') $liste[] = $file; closedir($dir); Pour ensuite afficher le tableau. Ou alors, pour encore moins se fatiguer, ne pas renseigner de tableau mais ecrire directement sur la page: (...) while ($file = readdir($dir)) if ($file != '.' && $file != '..') echo '<tr><td>' . $file . '</td><td><img src="...." alt="..."</td></tr>'; a toi de voir. Lien vers le commentaire Partager sur d’autres sites More sharing options...
bryce_30 Posté(e) le 2 juillet 2006 Auteur Partager Posté(e) le 2 juillet 2006 ça m'a l'air compliqué comme ça ! faudrait que je m'y penche dessus ! mais bon, le mien fonctionne au poil maintenant, juste 2 ou 3 détails et ça sera parfait ! mais bon, c'est quand meme intéressant d'apprendre de nouveaux trucs ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.