Système d'alertes en temps réel ne fonctionne pas

3 participants

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

Résolu Système d'alertes en temps réel ne fonctionne pas

Message par ZYVHK Sam 05 Mar 2016, 18:31

Détails techniques


Version du forum : Invision
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Mozilla Firefox
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://www.arcadia-forum.com

Description du problème

Bonsoir,
Le système d'alerte en temps réel ne semble pas fonctionner sur le forum. En effet, j'ai fait tous les réglages nécessaires; les permissions du sous-forum concerné, les modifications dans le JS etc.

Auriez-vous une idée ?

Le JS:
Code:
function realTime_alert() {
        var version="invision";
        var topicAlertId="1308";
        jQuery.ajax({
                url: "/t"+topicAlertId+"-?view=newest",
                success: function(result) {
                    var html = jQuery(result);
       
                 
                    if (version=="phpbb3") {
                      var alertBody= html.find("div.post .content .codebox code").eq(-1).text();
                      var id = html.find("div.post").eq(-1).attr("id");
                    }
                 
                    if (version=="phpbb2") {
                      var alertBody= html.find("tr.post .postbody .codebox .cont_code").eq(-1).text();
                      var id = html.find("tr.post").eq(-1).attr("id");
                    }
                 
                    if (version=="punbb") {
                      var alertBody= html.find("div.post .postbody .entry-content .codebox .cont_code code").eq(-1).text();
                      var id = html.find("div.post .postmain .posthead").eq(-1).attr("id");
                    }
                 
                    if (version=="invision") {
                      var alertBody= html.find("div.post .post-entry .codebox.contcode dd code").eq(-1).text();
                      var id = html.find("div.post").eq(-1).attr("id");
                    }
                 
                    if(localStorage.getItem(id)!='read' && sessionStorage.getItem(id)!=location.pathname) {
                          $('body').append(alertBody);
                          $('.realTime_alert .close').click(function() {
                            $(this).closest('.realTime_alert').fadeOut();
                            localStorage.setItem(id,"read");
                          });
                    }
                  if(sessionStorage.getItem(id)!=location.pathname) {
                      sessionStorage.setItem(id, location.pathname);
                  } else {
                      sessionStorage.setItem(id, location.pathname);
                  }
                },
        });
        return topicAlertId;
        }
       
        $(function(){
          realTime_alert();
          setInterval('realTime_alert();', 30000); // Reactualisation toutes les 30s
        });

Le HTML:
Code:
<br /><style>
        .progress-bar {
        height: 12px;
        margin-bottom: 20px;
        overflow: hidden;
        background-color: #F5F5FB;
        border-radius: 9px;
        -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
        box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
        }
       
        .progress-bar span {
        float: left;
        height: 100%;
        font-size: 12px;
        line-height: 20px;
        color: #fff;
        text-align: center;
        background-color: #0787DD;
        -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
        box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
        -webkit-transition: width .6s ease;
        -o-transition: width .6s ease;
        transition: width .6s ease;
        }
       
          .result {
        font-size: 25px;
        max-width: 350px;
        height: 60px;
        margin: auto;
        padding-top: 80px;
        text-align: center;
        }
       
        .result.done {
        background: url(https://cdn2.iconfinder.com/data/icons/color-svg-vector-icons-part-2/512/ok_check_yes_tick_accept_success-64.png) no-repeat top center;
        }
       
        .result.fail {
        background: url(https://cdn2.iconfinder.com/data/icons/color-svg-vector-icons-part-2/512/wrong_table_no_navigator_formula-64.png) no-repeat top center;
        }
        </style>
       
        <form id="form">
          <label for="alert_name">Titre de l'alerte</label> <input type="text" name="alert_name" id="alert_name" placeholder="Exemple: Impossible de changer de mot de passe" style="width: 60%;"/>
          <br /><br />
          <label for="alert_content">Contenu du message</label> <input type="text" name="alert_message" id="alert_message" placeholder="" style="width: 70%;" />
          <br /><br />
          <label for="alert_image">Image</label> <input type="text" name="alert_image" id="alert_image" placeholder="http://" style="width: 70%;"/>
          <br /><br /><br />
          <button class="button1" id="send">Envoyer l'alerte</button>
        </form><div class="result"></div><div class="progress-bar"><span style="width: 200px;"></span></div>
       
        <script>
          var _param = function(obj, modifier) { var buildParams = function(prefix, obj, traditional, add) { var name; if (jQuery.isArray(obj)) { jQuery.each(obj, function(i, v) { if (traditional || /\[\]$/.test(prefix)) { add(prefix, v); } else { buildParams(prefix + "[" + (typeof v === "object" ? i : "") + "]", v, traditional, add); } }); } else { if (!traditional && jQuery.type(obj) === "object") { for (name in obj) { buildParams(prefix + "[" + name + "]", obj[name], traditional, add); } } else { add(prefix, obj); } } }; var prefix, s = [], add = function(key, value) { var nvalue; if (modifier) { if ((nvalue = modifier(key, value)) === null) { return; } else if (nvalue !== undefined) value = nvalue } value = jQuery.isFunction(value) ? value() : value == null ? "" : value; s[s.length] = _encodeURIComponent(key) + "=" + _encodeURIComponent(value); }; if (jQuery.isArray(obj) || obj.jquery && !jQuery.isPlainObject(obj)) { jQuery.each(obj, function() { add(this.name, this.value); }); } else { for (prefix in obj) { buildParams(prefix, obj[prefix], undefined, add); } } return s.join("&").replace(/%20/g, "+"); }, _encodeURIComponent = function(str) { if ((document.charset ? document.charset : document.characterSet).toLowerCase() != "utf-8") { return encodeURIComponent(escape(str).replace(/%u[A-F0-9]{4}/g, function(x) { return "&#" + parseInt(x.substr(2), 16) + ";"; })).replace(/%25/g, "%"); } else { return encodeURIComponent(str); } };
          $('.progress-bar').hide();
          $('.reslt').hide();
        $('form#form').submit(function() {
          var message="[code]<div class='realTime_alert' style='display: block; background-image: url("+document.getElementById('alert_image').value+");'><span class='close'>×</span><b>"+document.getElementById('alert_name').value+"</b>\n<span class='inner'>"+document.getElementById('alert_message').value+"</span></div>[/code]";
          $('.progress-bar').show();
          $('form#form').hide();
          if($('.progress-bar span').css('width')!='100%') {setTimeout("$('.progress-bar span').css('width', '80%');", 100);}
          $.post( "/post", _param({ mode: "reply", t: realTime_alert(), post: 1, notify: 0, message: message }))
                .done(function() {
                  $('.progress-bar span').css('width', '100%');
              $('.result').fadeIn().text('Envoyée avec succès');
              $('.result').addClass('done');
                })
              .fail(function() {
                  $('.progress-bar span').css('width', '0%');
              $('.result').fadeIn().text('Erreur lors du traitement');
              $('.progress-bar').fadeOut();
              $('.result').addClass('fail');
              alert('Il semblerait qu\'une erreur se soit produite ! Vérifiez votre connexion internet et réessayez ultérieurement <img src="http://r23.imgfast.net/users/2316/18/97/34/smiles/1371890812.gif" alt="Sad" longdesc="3" />');
                });
          return false;
        });
       
        </script>


Merci d'avance.
ZYVHK

ZYVHK
***

Masculin
Messages : 134
Inscrit(e) le : 05/03/2016

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

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par ZYVHK Mar 08 Mar 2016, 13:48

Oy,
Je remonte le sujet, le problème étant toujours d'actualité.

Merci :>
ZYVHK

ZYVHK
***

Masculin
Messages : 134
Inscrit(e) le : 05/03/2016

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

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Miettes Mar 08 Mar 2016, 14:19

Coucou Smile

Tu as regardé dans tes autres js ? La console affiche une erreur :
Code:
Uncaught ReferenceError: recupFrame is not defined

ça expliquerait peut etre pourquoi ça ne fonctionne pas.
Miettes

Miettes
*****

Féminin
Messages : 590
Inscrit(e) le : 01/09/2008

http://tambouille-raleuses.forumactif.com/
Miettes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par ZYVHK Mar 08 Mar 2016, 17:00

Oy,
Avec ou sans les codes concernés qui afficheraient cette erreur, les alertes n'apparaissent pas. :l

ZYVHK

ZYVHK
***

Masculin
Messages : 134
Inscrit(e) le : 05/03/2016

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

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Miettes Mar 08 Mar 2016, 17:26

Bon j'ai tout testé et ça fonctionne sur mon forum de test :/:

tu as bien affiché le js sur toutes les pages ?

EDIT : ah bah non, pas sur Firefox :/
Miettes

Miettes
*****

Féminin
Messages : 590
Inscrit(e) le : 01/09/2008

http://tambouille-raleuses.forumactif.com/
Miettes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Invité Mar 08 Mar 2016, 17:28

Salut à vous deux,
j'ai le même soucis et cela est dû au template viewtopic_body:
https://forum.forumactif.com/t384530-script-alerte-en-temps-reel-fonctionnel-mais-pas-de-notification#3235318

Si ce template est vierge les notifications réapparaissent.


a++
Anonymous

Invité
Invité


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

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par ZYVHK Mar 08 Mar 2016, 17:56

Oy,
Il me faudrait une solution plutôt que d'avoir un code vierge. :l

J'ai essayé de modifier le JS convenablement (en renommant et ajoutant ce qu'il faut), mais rien. Voir partie invision:

Code:
function realTime_alert() {
        var version="invision";
        var topicAlertId="1308";
        jQuery.ajax({
                url: "/t"+topicAlertId+"-?view=newest",
                success: function(result) {
                    var html = jQuery(result);
       
                 
                    if (version=="phpbb3") {
                      var alertBody= html.find("div.post .content .codebox code").eq(-1).text();
                      var id = html.find("div.post").eq(-1).attr("id");
                    }
                 
                    if (version=="phpbb2") {
                      var alertBody= html.find("tr.post .postbody .codebox .cont_code").eq(-1).text();
                      var id = html.find("tr.post").eq(-1).attr("id");
                    }
                 
                    if (version=="punbb") {
                      var alertBody= html.find("div.post .postbody .entry-content .codebox .cont_code code").eq(-1).text();
                      var id = html.find("div.post .postmain .posthead").eq(-1).attr("id");
                    }
                 
                    if (version=="invision") {
                      var alertBody= html.find("div.post .postbody .ppp dl.codebox.contcode dd code").eq(-1).text();
                      var id = html.find("div.post").eq(-1).attr("id");
                    }
                 
                    if(localStorage.getItem(id)!='read' && sessionStorage.getItem(id)!=location.pathname) {
                          $('body').append(alertBody);
                          $('.realTime_alert .close').click(function() {
                            $(this).closest('.realTime_alert').fadeOut();
                            localStorage.setItem(id,"read");
                          });
                    }
                  if(sessionStorage.getItem(id)!=location.pathname) {
                      sessionStorage.setItem(id, location.pathname);
                  } else {
                      sessionStorage.setItem(id, location.pathname);
                  }
                },
        });
        return topicAlertId;
        }
       
        $(function(){
          realTime_alert();
          setInterval('realTime_alert();', 30000); // Reactualisation toutes les 30s
        });

Merci d'avance pour votre aide. :/
ZYVHK

ZYVHK
***

Masculin
Messages : 134
Inscrit(e) le : 05/03/2016

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

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Invité Mar 08 Mar 2016, 17:57

Re,
Il me faudrait une solution plutôt que d'avoir un code vierge. :l

au moins , tu sais d’où vient le soucis.
a++
Anonymous

Invité
Invité


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

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par ZYVHK Mar 08 Mar 2016, 18:02

En effet, je t'en remercie. Je continue les essais de mon côté.
ZYVHK

ZYVHK
***

Masculin
Messages : 134
Inscrit(e) le : 05/03/2016

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

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par ZYVHK Mar 08 Mar 2016, 19:53

ZYVHK

ZYVHK
***

Masculin
Messages : 134
Inscrit(e) le : 05/03/2016

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

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Chacha Mar 15 Mar 2016, 14:45

Arcadia-forum a écrit:Réglé. Merci à l'auteur du message suivant:
https://forum.forumactif.com/t379000-systeme-d-annonce-en-temps-reel-aller-plus-loin#3197271
Système d'alertes en temps réel ne fonctionne pas MHDoUixBonjour,

Afin de faciliter la gestion des problèmes, si le vôtre est résolu, pensez à :
  • éditer votre premier message,
  • cocher l'icône résolu et enregistrer
Vous pouvez également remercier les personnes qui vous ont aidé, en cliquant sur le bouton Système d'alertes en temps réel ne fonctionne pas UsrblLM
Chacha

Chacha
Modéractif
Modéractif

Masculin
Messages : 69440
Inscrit(e) le : 21/08/2010

https://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.

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

- Sujets similaires

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