Un code pour signaler un nouveau message !

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Un code pour signaler un nouveau message !

Message par Naflin le Mer 20 Fév 2013 - 17:10

Bonjour les gens !

Voilà, sur mon forum, j'ai bidouillé une barre de navigation un peu spéciale >>voyez<<
Il s'agit d'un widget un peu bidouillé qui s'affiche pour les invités, un autre qui s'affiche pour ceux qui sont connectés.
Je trouve que ça a la classe, à un petit détail près : la notification des nouveaux messages.
Est-il possible de créer un widget qui ne s'affiche que quand on a reçu un mp ? Ou bien dont le contenu se modifie dans ce cas ?
J'avoue, je ne suis pas très doué en css ou html, je n'en suis encore qu'à piocher des bouts de code créés par d'autres et les bidouiller un peu pour voir ce que ça donne (souvent des bugs ou des erreurs particulièrement moches ...) donc si ce que je cherche est possible, merci de me l'expliquer le plus simplement possib'

Merci de votre temps et votre aide !

PS : ce message est déjà passé, et a été verrouillé sans avoir reçu de réponses. Si c'est par ce que ce que je cherche est trop spécifique, je cherche n'importe quelle méthode pour signaler qu'un nouveau message a été reçu. Pour le moment, j'ai simplement mit le bouton "nouveau message" qui apparait tout seul (vu que j'ai fait disparaitre les autres boutons de la barre de navigation d'origine).
Et les pop-ups ... Eh bien ils sont très souvent bloqués par des programmes conçus pour empêcher les pop-ups publicitaires !


Dernière édition par Naflin le Sam 23 Fév 2013 - 16:02, édité 1 fois

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Mer 20 Fév 2013 - 17:21

Bonjour,

Ce script permet d'afficher une image qui envoie vers la boite à MP dès qu'un nouveau MP arrive.
Vous pouvez changer l'adresse de l'image à la ligne 13

Code:
function cook_no_new_message() {
  my_setcookie("new_message", -new Date, 1, 0);
  no_new_message()
}
function no_new_message() {
  $("#new_message").remove()
}
function cook_new_message() {
  my_setcookie("new_message", +new Date, 1, 0);
  new_message()
}
function new_message() {
  $("body").append('<div id="new_message" style="position:fixed;bottom:0;right:0"><a href="/privmsg?folder=inbox" target="_blank" onClick="cook_no_new_message();return true;"><img src="http://illiweb.com/fa/admin/icones/big_ico/boite_email.png"/></a></div>')
}
function new_message_update() {
  var dnew_message = my_getcookie("new_message");
  var enew_message = dnew_message > 0;
  if($("#new_message").length > 0 == enew_message) {
    if(!enew_message) {
      dnew_message *= -1
    }
    if(dnew_message < +new Date - 1E3 * 60) {
      $.get("http://" + document.location.host + "/privmsg?mode=newpm", function(data) {
        if(!data.match("No new private messages are waiting for you") != enew_message) {
          if(enew_message) {
            cook_no_new_message()
          }else {
            cook_new_message()
          }
        }
      })
    }
  }else {
    if(enew_message) {
      new_message()
    }else {
      no_new_message()
    }
  }
}
$(function() {
  if(!$("#logout").length) {
    return
  }
  if($("#i_icon_mini_new_message").length) {
    cook_new_message()
  }else {
    cook_no_new_message()
  }
  setInterval("new_message_update()", 5E3)
});

Cordialement,

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Mer 20 Fév 2013 - 19:06

Merci beaucoup de ton aide Flo-73 ... Mais ...
Je comprends rien Mince

Où est-ce que je met ce script ? Qi'est-ce que je peux/dois ajouter dedans ?

Ma barre de navigation est dans un widget, et a ce code :

Code:
<div style="width: 1000px; height: 50px; position: fixed; top: 0%; left: 0%;">
<a href="/faq"><img src="http://img547.imageshack.us/img547/2928/faqn.png"></a><a href="/calendar"><img src="http://img585.imageshack.us/img585/377/calendrierx.png"></a><a href="/search"><img src="http://img801.imageshack.us/img801/5290/chercherhx.png"></a><a href="/groups"><img src="http://img801.imageshack.us/img801/3910/groupesk.png"></a><a href="/memberlist"><img src="http://img716.imageshack.us/img716/2930/membresvp.png"></a><a href="/privmsg?folder=inbox"><img src="http://img716.imageshack.us/img716/6785/messageriec.png"></a><a href="/profile?mode=editprofile"><img src="http://img571.imageshack.us/img571/1695/profilbm.png"></a><a href="/login?logout"><img src="http://img801.imageshack.us/img801/5755/dcov.png"></a><img src="http://img571.imageshack.us/img571/4010/sanstitre1qi.png"></div>

Et ce genre de bidouillage est le summum de ce que je sais faire en html ...

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Mer 20 Fév 2013 - 19:10

Re,

Il faut le mettre dans les codes Javascript: PA > modules > HTML & javascripts > Gestion des codes javascripts > créer un nouveau code

Sinon dites moi ce que vous voulez qu'il se passe quand il y a un nouveau MP, je vous le code

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Mer 20 Fév 2013 - 19:28

Ce serait vraiment super !

Comme je l'ai dit plus haut, la barre de navigation est faite "main" c'est à dire que ce n'est pas celle du forum, mais qu'elle figure dans un widget, dont j'ai donné le code dans le message précédent.

Je voudrais que dans cette barre, si on a des messages dans sa boite mail, au lieu qu'il y ait l'image
http://img716.imageshack.us/img716/6785/messageriec.png

Qu'il y ait à la place
http://img534.imageshack.us/img534/2643/newmail.png

Voilà ...

(et si je peux carrément abuser, qu'il y ait
http://img822.imageshack.us/img822/1371/1newmail.png
Quand il y a 1 message dans la boite
http://img202.imageshack.us/img202/6128/2newmail.png
Quand il y en a 2
http://img845.imageshack.us/img845/4613/3newmail.png
Quand il y en a 3
http://img534.imageshack.us/img534/2643/newmail.png
Quand il y en a plus ...

Mais c'est totalement optionnel)

Merci beaucoup

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Mer 20 Fév 2013 - 20:12

Bonsoir,

J'ai fait le code:

Code:
<script type="text/javascript">function cook_no_new_message() {
  my_setcookie("new_message", -new Date, 1, 0);
  no_new_message()
}
function no_new_message() {
  $("#message_nb").append('<div id="no_new_message" ><a href="/privmsg?folder=inbox" target="_blank"><img src="http://img534.imageshack.us/img534/2643/newmail.png"/></a></div>')
}
function cook_new_message() {
  my_setcookie("new_message", +new Date, 1, 0);
  new_message()
}
function new_message() {
  $("#message_nb").append('<div id="new_message"><a href="/privmsg?folder=inbox" target="_blank" onClick="cook_no_new_message();return true;"><img src="http://img716.imageshack.us/img716/6785/messageriec.png"/></a></div>')
}
function new_message_update() {
  var dnew_message = my_getcookie("new_message");
  var enew_message = dnew_message > 0;
  if($("#new_message").length > 0 == enew_message) {
    if(!enew_message) {
      dnew_message *= -1
    }
    if(dnew_message < +new Date - 1E3 * 60) {
      $.get("http://" + document.location.host + "/privmsg?mode=newpm", function(data) {
        if(!data.match("No new private messages are waiting for you") != enew_message) {
          if(enew_message) {
            cook_no_new_message()
          }else {
            cook_new_message()
          }
        }
      })
    }
  }else {
    if(enew_message) {
      new_message()
    }else {
      no_new_message()
    }
  }
}
$(function() {
  if(!$("#logout").length) {
    return
  }
  if($("#i_icon_mini_new_message").length) {
    cook_new_message()
  }else {
    cook_no_new_message()
  }
  setInterval("new_message_update()", 5E3)
});</script>
<div style="width: 1000px; height: 50px; position: fixed; top: 0%; left: 0%;"><a href="/faq"><img src="http://img547.imageshack.us/img547/2928/faqn.png"></a><a href="/calendar"><img src="http://img585.imageshack.us/img585/377/calendrierx.png"></a><a href="/search"><img src="http://img801.imageshack.us/img801/5290/chercherhx.png"></a><a href="/groups"><img src="http://img801.imageshack.us/img801/3910/groupesk.png"></a><a href="/memberlist"><img src="http://img716.imageshack.us/img716/2930/membresvp.png"></a><span id="message_nb"></span><a href="/profile?mode=editprofile"><img src="http://img571.imageshack.us/img571/1695/profilbm.png"></a><a href="/login?logout"><img src="http://img801.imageshack.us/img801/5755/dcov.png"></a><img src="http://img571.imageshack.us/img571/4010/sanstitre1qi.png"></div>

C'est toute la barre de navigation (avec liens de déco et messagerie)

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Mer 20 Fév 2013 - 20:49

... Ça ne fonctionne pas ...
La barre s'affiche, mais plus le bouton de messagerie. Qu'il y ait ou non de nouveaux messages ...

J'ai copié-collé ton code dans le widget ... Y a t'il une manipulation supplémentaire à faire ?

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Mer 20 Fév 2013 - 20:50

Non, j'ai du faire une erreur, je vais corriger cela Sad

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Jeu 21 Fév 2013 - 17:17

Re,

J'ai corrigé et testé normalement tout devrait fonctionner correctement Smile :

Code à mettre dans les Javascripts sur toutes les pages:

Code:
jQuery(document).ready(function () {
    if(!$("#i_icon_mini_new_message").length) return;
    jQuery('#message_nb').append('<div id="new_message" style="display:inline"><a href="/privmsg?folder=inbox" target="_blank"><img src="http://img534.imageshack.us/img534/2643/newmail.png"/></a></div>')
});
jQuery(document).ready(function () {
    if($("#i_icon_mini_new_message").length) return;
    jQuery('#message_nb').append('<div id="no_new_message" style="display:inline"><a href="/privmsg?folder=inbox" target="_blank" onClick="cook_no_new_message();return true;"><img src="http://img716.imageshack.us/img716/6785/messageriec.png"/></a></div>')
});

Et celui du module:

Code:
<div style="width: 1000px; height: 50px; position: fixed; top: 0%; left: 0%;"><a href="/faq"><img src="http://img547.imageshack.us/img547/2928/faqn.png"></a><a href="/calendar"><img src="http://img585.imageshack.us/img585/377/calendrierx.png"></a><a href="/search"><img src="http://img801.imageshack.us/img801/5290/chercherhx.png"></a><a href="/groups"><img src="http://img801.imageshack.us/img801/3910/groupesk.png"></a><a href="/memberlist"><img src="http://img716.imageshack.us/img716/2930/membresvp.png"></a><span id="message_nb"></span><a href="/profile?mode=editprofile"><img src="http://img571.imageshack.us/img571/1695/profilbm.png"></a><a href="/login?logout"><img src="http://img801.imageshack.us/img801/5755/dcov.png"></a><img src="http://img571.imageshack.us/img571/4010/sanstitre1qi.png"></div>


Dernière édition par Flo-73 le Sam 23 Fév 2013 - 15:40, édité 2 fois

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Jeu 21 Fév 2013 - 21:06

Wahou (j'essaie de comprendre ce code, mais c'est largement au dessus de mes capacités ...)

Juste une question : comment mettre le premier code dans toutes les pages ?

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Jeu 21 Fév 2013 - 21:40

PA ›› Modules ›› Gestions des codes Javascript ›› Nouveau ajout

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Jeu 21 Fév 2013 - 23:12

... Ca ne fonctionne pas ...

=> J'ai mit le premier bloc de code dans la partie Javascript, dans une partie que j'ai appelé "Mail". J'ai coché la case "pour toutes les pages" et j'ai activé le javascript sur le forum.

=> J'ai mit le second bloc de code dans mon widget.

=> Ça m'affiche la barre de navigation telle que l'initiale. A ceci près que quand on clique sur "Messagerie", la messagerie s'ouvre dans un nouvel onglet.

=> Qu'il y ait, ou non de nouveaux messages dans la messagerie, l'icône reste la même.

J'ai cafouillé quelque part dans la mise en place du truc ?

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Ven 22 Fév 2013 - 6:22

Quelle est la version de votre forum ?

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Ven 22 Fév 2013 - 9:20

PhPbb 2

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Ven 22 Fév 2013 - 17:32

Re,

Je me suis inscrit sur le forum et quand j'ai un MP j'ai bien l'image de nouveau MP:



Sinon j'ai l'icone normale:


Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Sam 23 Fév 2013 - 15:22

Ah ? Étrange ... Quand je m'en suis envoyé, je n'avais rien d'affiché .. Mais à présent, oui, ça marche parfaitement.

Merci beaucoup, vraiment.

(petit détail, comment faire pour que le lien vers la messagerie ne s'ouvre pas dans un nouvel onglet ?)

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Sam 23 Fév 2013 - 15:29

Remplacez votre Javascript actuel par celui-ci:

Code:
jQuery(document).ready(function () {
    if(!$("#i_icon_mini_new_message").length) return;
    jQuery('#message_nb').append('<div id="new_message" style="display:inline"><a href="/privmsg?folder=inbox"><img src="http://img534.imageshack.us/img534/2643/newmail.png"/></a></div>')
});
jQuery(document).ready(function () {
    if($("#i_icon_mini_message").length) return;
    jQuery('#message_nb').append('<div id="no_new_message" style="display:inline"><a href="/privmsg?folder=inbox" onClick="cook_no_new_message();return true;"><img src="http://img716.imageshack.us/img716/6785/messageriec.png"/></a></div>')
});

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Sam 23 Fév 2013 - 15:39

Ca me met deux fois le bouton de messagerie, une première qui varie en fonction des messages et une seconde qui ne varie pas.

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Un code pour signaler un nouveau message !

Message par Wave le Sam 23 Fév 2013 - 15:41

C'est normal je me suis trompé en modifiant le code ::betise::

Voici le bon:

Code:
jQuery(document).ready(function () {
    if(!$("#i_icon_mini_new_message").length) return;
    jQuery('#message_nb').append('<div id="new_message" style="display:inline"><a href="/privmsg?folder=inbox"><img src="http://img534.imageshack.us/img534/2643/newmail.png"/></a></div>')
});
jQuery(document).ready(function () {
    if($("#i_icon_mini_new_message").length) return;
    jQuery('#message_nb').append('<div id="no_new_message" style="display:inline"><a href="/privmsg?folder=inbox" onClick="cook_no_new_message();return true;"><img src="http://img716.imageshack.us/img716/6785/messageriec.png"/></a></div>')
});

Wave
*****

Masculin
Messages : 565
Inscrit(e) le : 04/12/2011

Wave a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Un code pour signaler un nouveau message !

Message par Naflin le Sam 23 Fév 2013 - 16:02

Ca marche ! C'est parfait ! Mille mercis !

Naflin
***

Masculin
Messages : 105
Inscrit(e) le : 01/11/2006

http://test-naf.actifforum.com/
Naflin a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum