Connectix Boards

Bienvenue, vous n'êtes pas connecté. ( Se connecter - S'enregistrer )

Dernière version sortie: 0.8.4!

Connectix Boards > Zone développement > Programmation > Personnalisation de l'affichage des smilies

RSS >  Personnalisation de l'affichage des smilies
Imrahil_le_rose #1 26/06/2008 - 07h48

Groupe : Nouveau
Messages : 4
Enregistré le : 26/06/2008

Hors ligne

Bonjour à tous =)

Voilà, étant donné que la communauté que j'héberge possède de jolis smilies, il a été nécessaire que je les transfère sur le nouveau forum CB mis à leur disposition. Le problème suivant s'est alors posé: ils sont trop lourds pour être tous affichés au dessus du textarea lors de chaque composition des messages. J'ai donc bricolé (de manière sûrement très peu propre, mais bon  :inn: ) un système qui permette de les afficher dans un cadre placé sur la gauche du textarea:

Posted Image

Le code de cette mini-liste de smilies est contenu dans une nouvelle page que j'ai créée, collée dans la page menu_writemsg.php par un simple include. Les formulaires correspondant aux boutons précédent et suivant rappellent la page que j'ai créée (avec la bonne vielle variable action ="<?php $_SERVER['PHP_SELF'] ?> ). Et tout fonctionne presque parfaitement. Evidemment, c'est le presque qui me cause du souci ;)

Losque je clique sur le bouton précédent de ma liste des smilies, seule la page affiche_smilies incluse dans menu_writemsg.php est rechargée, ce qui permet au texte du textarea de ne pas être effacé. Lorsqu'on clique sur suivant, par contre, le texte disparait, ce qui signifie que la page est rechargée dans son intégralité ... Le plus étonnant étant que les deux formulaires sont quasiment des copier/coller !

Bouton précédent (dans ma page afficher_smilies):
<form style="display:inline;" method="POST" action ="<?php $_SERVER['PHP_SELF'] ?>">
   <?php echo("<input type='hidden' name='champ' value=$nbmoins>");?>
   <input type='submit' value='Précédent'/>
</form>


Bouton suivant (dans ma page afficher_smilies):
<form style="display:inline;" method="POST" action ="<?php $_SERVER['PHP_SELF'] ?>">
   <?php echo("<input type='hidden' name='champ' value=$nbplus");?>
   <input type='submit' value='Suivant'/>
</form>


Le include (dans menu_writemsg.php):
</span>
<br /><br />
<?php include("affiche_smiles.php"); ?>
</span>

(remplace le <?php echo getSmileyMenu($ta_opt['id'],17); ?> présent au départ)

Quelqu'un a-t-il une idée ? Car là, j'avoue sécher complètement.

Une bonne journée :)
Ce message a été édité par Imrahil_le_rose le 26/06/2008 à 07h49.
Imrahil_le_rose #2 29/06/2008 - 21h38

Groupe : Nouveau
Messages : 4
Enregistré le : 26/06/2008

Hors ligne

Personne n'a une petite idée ? Parce que c'est assez embétant quand même xD
Imrahil_le_rose #3 05/07/2008 - 12h06

Groupe : Nouveau
Messages : 4
Enregistré le : 26/06/2008

Hors ligne

Bon, tant pis, je me débrouillerais :/
finalbob #4 05/07/2008 - 19h13

Groupe : Acharné
Messages : 513
Enregistré le : 08/03/2007

Hors ligne Site Web

essayes de mettre des apostrophes autour de '$nbmoins' et '$nbplus'

je reste interrogatif là dessus :

Losque je clique sur le bouton précédent de ma liste des smilies, seule la page affiche_smilies incluse dans menu_writemsg.php est rechargée, ce qui permet au texte du textarea de ne pas être effacé. Lorsqu'on clique sur suivant, par contre, le texte disparait, ce qui signifie que la page est rechargée dans son intégralité ...



je suis pas sur du fonctionnement, mais tu as peut être une erreur dans la gestion des nbplus et nbmoins..

tu aurais le code de la nouvelle page créée ?
youplaboum !
Posted Image
http://m2radio.fr

Bonnes études à tous...
Martin #5 09/07/2008 - 10h09

Groupe : Administrateur
Messages : 3148
Enregistré le : 01/02/2005

Hors ligne Site Web

De mon coté, je n'ai pas vraiment saisi l'utilité des 'précédent' et 'suivant'... Tes smilies ne se mettent pas simplement dans une pop-up?
Posted Image
« Quand un philosophe me répond, je ne comprends plus ma question. » - P. Desproges
Imrahil_le_rose #6 10/07/2008 - 10h51

Groupe : Nouveau
Messages : 4
Enregistré le : 26/06/2008

Hors ligne

Merci à vous deux.

J'ai tenté de mettre des apostrophes à $nbplus et $nbmoins, sans résultat.

Voici le code de la page affiche_smilies:

<?php
mysql_connect("***", "***", "***");
mysql_select_db("***");
?>

   
<span class="smilies">
<?php
 $nb = 0;
 if(isset($_POST['champ']))
 {
   $nb = $nb + $_POST['champ'];
       
 }
 $nbplus = $nb+9;
 $nbmoins = $nb-9;
     
 if($nb != 0)
 {
?>
<form style="display:inline;" method="POST" action ="<?php $_SERVER['PHP_SELF'] ?>">
 <?php echo("<input type='hidden' name='champ' value='$nbmoins'>");?>
    <input type='submit' value='Précédent'/>
</form>
 
<?php }
if($nb < 98)
{    
?>

<form style="display:inline;" method="POST" action ="<?php $_SERVER['PHP_SELF'] ?>">
 <?php echo("<input type='hidden' name='champ' value='$nbplus'");?>
    <input type='submit' value='Suivant'/>
</form>
<?php } ?>
<br />
<?php
 $smilies = mysql_query("SELECT sm_symbol, sm_filename FROM cb_smileys WHERE sm_orig_used ='oui' LIMIT $nb,9");
 $smile='';
 while ($affich = mysql_fetch_array($smilies) )
 {
   $code = $affich['sm_symbol'];
   $image = "<img src='http://naglaglasson.jexiste.fr/Hitsu2/smileys/".$affich['sm_filename']."'></img>";
   $id = $ta_opt['id'];
   $smile .= "<a href=javascript:emoticon('$code','$id')>$image</a>";
 }
 echo($smile);
?>
<br /><br />                 
<a href="javascript:affichage_smilies('templates/ajout_nagla/liste_smilies.php','smilies');">Afficher la liste des smilies</a>
<br /><br />
</span>       


Martin non justement, les smilies sont sur une page incluse dans menu_writemsg.php :)
finalbob #7 11/07/2008 - 15h50

Groupe : Acharné
Messages : 513
Enregistré le : 08/03/2007

Hors ligne Site Web

* ça marche ça quand tu affiches la source ?
                                    action ="<?php $_SERVER['PHP_SELF'] ?>"
ni point virgule, ni echo... ?


* c'est des guillemets qu'il faut mettre au lieu des apostrophes dans les valeurs de tes balises html


* Si "nombre est différent de 0" le bouton précédent s'affiche, ce qui nous donne lors du clique une valeur de "-9" ce qui donne lors du de la requete SQL : "LIMIT -9,9"   c'est correct cette syntaxe du limit ? pas très intuitif tout de même...



Sinon, je pense au contraire que le fait que la page ne se recharge pas n'est PAS naturel, à la soumission du formulaire, en théorie la page DOIT être rechargé à moins qu'il n'y ai du JS qui intercepte ou quoi, mais je ne vois rien ici...

Donc on va attendre le retour du chaiffe.
youplaboum !
Posted Image
http://m2radio.fr

Bonnes études à tous...
Martin #8 20/07/2008 - 01h51

Groupe : Administrateur
Messages : 3148
Enregistré le : 01/02/2005

Hors ligne Site Web

Je viens de comprendre! (je n'avais pas vu les boutons précédent et suivant dans le petit menu)
Pour faire ce que tu veux, il faut soit utiliser AJAX (donc du js), soit gérer le remplissage des champs dans les fichiers php de CB. La première solution me parait bien plus simple, car la deuxième te demanderait de chipoter un peu plus dans le code du forum.
CB utilise déja un petit peu d'AJAX, tu peux jeter un oeil de ce coté. Si tu as des questions, n'hésite surtout pas!
Posted Image
« Quand un philosophe me répond, je ne comprends plus ma question. » - P. Desproges

 >  Réponse rapide

Composez votre message

Connectix Boards > Zone développement > Programmation > Personnalisation de l'affichage des smilies

 >  Informations du forum

1 personne(s) présente(s) durant une période de 15 minutes (0 membre(s) et 1 invité(s)).