Nombre de MP non-lus (bis)

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

Résolu Nombre de MP non-lus (bis)

Message par foxies Lun 27 Aoû 2018 - 8:20

Détails techniques

Version du forum : ModernBB
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Google Chrome
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : (lien masqué, vous devez poster pour le voir)

Description du problème

Bonjour !

Il y a de ça quelques temps, j'avais ouvert une problématique suite à quoi @Milouze14 m'avait aidée à mettre en place un système du nombre de MP non-lus. Ce système permet donc de récupérer le nombre de MP non-lus au niveau de la boîte de réception et de l'afficher ailleurs - en l’occurrence, le nombre de MP non-lus s'affichent dans ma barre de navigation, au-dessus d'un icône FA enveloppe.

Je me suis rendue compte récemment que lorsqu'il n'y a aucun MP non-lus, le chiffre 0 s'affiche. Je fais donc appel à vous pour, je le pense, revoir quelque peu le JS que j'utilise et faire en sorte que rien ne s'affiche du tout (pas de 0) lorsque qu'il n'y a aucun MP non-lus dans la boîte de réception.

Voici le JS que j'utilise actuellement :

Code:
$(function () {
    if (_userdata.user_id > -1) {
        $("body").append("<div id='loadProfil'></div>");
 
        // Notif MP
        $.get('/privmsg?folder=inbox', function (data) {
            var MP = $(data).find('dl.icon[style*="https://2img.net/i/fa/modernbb/topic_unread.png"]').length;
            localStorage.setItem('nb_mp', MP);
            setNbMpNotif();
        });
 
        // Notif remove ()
        init_replace_notif_unread();
    };
});

function setNbMpNotif() {
    var MP = localStorage.getItem('nb_mp');
    if (MP) {
        $('.nav-right').find('a[href="/privmsg?folder=inbox"]').append('<div class="mp">' + MP + '</div>');
    }
}

Merci d'avance Very Happy


Dernière édition par pinke le Mar 4 Sep 2018 - 8:03, édité 1 fois
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Mar 28 Aoû 2018 - 12:55

UP Smile
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Jeu 30 Aoû 2018 - 8:00

UP Smile
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Ven 31 Aoû 2018 - 8:23

UP Smile
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Sam 1 Sep 2018 - 8:49

UP
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par Invité Sam 1 Sep 2018 - 20:17

Hello pinke,

tiens donc:
https://forum.forumactif.com/t397136-nombre-mp-non-lus#3319050

Puis:
https://forum.forumactif.com/t397136-nombre-mp-non-lus#3319069

Cela n'a pas dû servir a grand chose car :
https://forum.forumactif.com/t397136-nombre-mp-non-lus#3319072

mon script était le suivant:
Code:

$(function(){
$.get('/privmsg?folder=inbox' , function(data){
var M14_mp= $(data).find('dl.icon[style*="https://2img.net/i/fa/modernbb/topic_unread.png"]').length;
if(M14_mp)
{
var a=$('.dropdown-av-content2.bounceIn').find('a[href="/privmsg?folder=inbox"]').css('width');
$('.dropdown-av-content2.bounceIn').find('a[href="/privmsg?folder=inbox"]').append('<div class="M14_MP"style="margin-left:'+a+';">'+M14_mp+'</div>');
}
 
});
    });


Pourquoi l'avoir modifié?


a++
Anonymous

Invité
Invité


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

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Dim 2 Sep 2018 - 7:34

Bonjour Milouze14 et merci pour votre réponse Very Happy

Ce n'est pas moi qui ai modifié votre script mais une autre personne qui m'a aidé avec un autre soucis. Il s'agissait, pour certains éléments récupérés du profil des membres mais également du nombre de notifications et des MP non-lus, de supprimer un délai d'affichage qui n'était pas souhaité sur mon forum. Sûrement a-t-elle jugé bon de joindre tous ces éléments dans un même script ? Pensez-vous qu'il soit possible de faire fonctionner le votre malgré tout ?

Voici le script entier :

Code:
$(function () {
    if (_userdata.user_id > -1) {
        $("body").append("<div id='loadProfil'></div>");
 
        // Infos du profil
        $("#loadProfil").load("/u" + _userdata.user_id + " #wrapper", function () {
            localStorage.setItem('header2', $("#loadProfil #field_id1 .field_uneditable").html());
            localStorage.setItem('element1', $("#loadProfil #field_id6 .field_uneditable").html());
            localStorage.setItem('element2', $("#loadProfil #field_id2 .field_uneditable").html());
            localStorage.setItem('element3', $("#loadProfil #field_id3 .field_uneditable").html());
            localStorage.setItem('link1', $("#loadProfil #field_id4 .field_uneditable").html());
            localStorage.setItem('link2', $("#loadProfil #field_id8 .field_uneditable").html());
            localStorage.setItem('link3', $("#loadProfil #field_id9 .field_uneditable").html());
            localStorage.setItem('link4', $("#loadProfil #field_id5 .field_uneditable").html());
            $("div#loadProfil").remove();
 
            setDataProfil();
        });
 
        // Notif MP
        $.get('/privmsg?folder=inbox', function (data) {
            var MP = $(data).find('dl.icon[style*="https://2img.net/i/fa/modernbb/topic_unread.png"]').length;
            localStorage.setItem('nb_mp', MP);
            setNbMpNotif();
        });
 
        // Notif remove ()
        init_replace_notif_unread();
    };
});
 
function setDataProfil() {
    $(".header2").html(localStorage.getItem('header2'));
    $(".element1").html(localStorage.getItem('element1'));
    $(".element2").html(localStorage.getItem('element2'));
    $(".element3").html(localStorage.getItem('element3'));
    $(".link1").html('<a href="' + localStorage.getItem('link1') + '" title="Registre">Registre</a>');
    $(".link2").html('<a href="' + localStorage.getItem('link2') + '" title="Registre">Répertoire équin</a>');
    $(".link3").html('<a href="' + localStorage.getItem('link3') + '" title="Registre">Fiche cavalière</a>');
    $(".link4").html('<a href="' + localStorage.getItem('link4') + '" title="Registre">Compte bancaire</a>');
    $('.nav-user').html(_userdata.avatar);
    $('.banner-name').html(_userdata.username);
}

function setNbMpNotif() {
    var MP = localStorage.getItem('nb_mp');
    if (MP) {
        $('.nav-right').find('a[href="/privmsg?folder=inbox"]').append('<div class="mp">' + MP + '</div>');
    }
}

function init_replace_notif_unread() {
    var n = '#notif_unread';
    if ($(n).length > 0) {
        replace_notif_unread($(n));
        localStorage.setItem('nb_notif', $(n).text());
        $("body").on('DOMSubtreeModified', n, function () {
            localStorage.setItem('nb_notif', $(this).text());
            replace_notif_unread($(this));
        });
    } else {
        window.setTimeout(init_replace_notif_unread, 10);
    }
}

function replace_notif_unread(o) { o.html(o.html().replace(/[\(\)]/g, "")); }

function setNbNotif() {
    var nbNotif = localStorage.getItem('nb_notif');
    $("#notif_unread").html(nbNotif);
    if(parseInt(nbNotif) > 0 && ! $('#fa_notifications').hasClass('unread')) {
        $('#fa_notifications').addClass('unread');
    }
}

Et mon template overall_header :

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}" id="min-width" lang="{L_LANG_HTML}" xml:lang="{L_LANG_HTML}" {NAMESPACE_FB_LIKE} {NAMESPACE_FB} {NAMESPACE_BBCODE}>

<head>
    <link href="https://fonts.googleapis.com/css?family=Poppins|Lora" rel="stylesheet">
    <title>{SITENAME_TITLE}{PAGE_TITLE}</title>
    <meta http-equiv="content-type" content="text/html; charset={S_CONTENT_ENCODING}" />
    <meta http-equiv="content-script-type" content="text/javascript" />
    <meta http-equiv="content-style-type" content="text/css" />
    <!-- BEGIN switch_compat_meta -->
    <meta http-equiv="X-UA-Compatible" content="IE={switch_compat_meta.VERSION}" />
    <!-- END switch_compat_meta -->
    <!-- BEGIN switch_canonical_url -->
    <link rel="canonical" href="{switch_canonical_url.CANONICAL_URL}" />
    <!-- END switch_canonical_url -->
    {META_FAVICO} {META} {META_FB_LIKE}
    <meta name="title" content="{SITENAME_TITLE}{PAGE_TITLE}" /> {T_HEAD_STYLESHEET} {CSS}
    <link rel="search" type="application/opensearchdescription+xml" href="/improvedsearch.xml" title="{SITENAME}" />
    <link rel="search" type="application/opensearchdescription+xml" href="{URL_BOARD_DIRECTORY}/search/improvedsearch.xml" title="{SEARCH_FORUMS}" />
    <script src="{JQUERY_PATH}" type="text/javascript"></script>
    <!-- BEGIN switch_recent_jquery -->
    <script src="{JS_DIR}jquery1.9/jquery-migrate-1.4.1.js" type="text/javascript"></script>
    <script src="{JQUERY_DIR}browser/v1.0/jquery.browser.min.js" type="text/javascript"></script>
    <script src="{JQUERY_DIR}support/jquery.support.js" type="text/javascript"></script>
    <!-- END switch_recent_jquery -->
    <script src="{JS_DIR}{L_LANG}.js" type="text/javascript"></script>
    {RICH_SNIPPET_GOOGLE}

    <!-- BEGIN switch_fb_login -->
    <script src="https://connect.facebook.net/{switch_fb_login.FB_LOCAL}/all.js" type="text/javascript"></script>
    <script src="{switch_fb_login.JS_FB_LOGIN}" type="text/javascript"></script>
    <!-- END switch_fb_login -->

    <!-- BEGIN switch_ticker -->
    <link type="text/css" rel="stylesheet" href="{JQUERY_DIR}ticker/ticker.css" />
    <script src="{JQUERY_DIR}ticker/ticker.js" type="text/javascript"></script>
    <!-- END switch_ticker -->

    <!-- BEGIN switch_ticker_new -->
    <script src="{JQUERY_DIR}jcarousel/jquery.jcarousel.js" type="text/javascript"></script>
    <script type="text/javascript">
        //<![CDATA[
        /* Definir le sens de direction en fonction du panneau admin */
        var tickerDirParam = "{switch_ticker.DIRECTION}";
        var slid_vert = false;
        var auto_dir = 'next';
        var h_perso = parseInt({
            switch_ticker.HEIGHT
        });

        switch (tickerDirParam) {
            case 'top':
                slid_vert = true;
                break;

            case 'left':
                break;

            case 'bottom':
                slid_vert = true;
                auto_dir = 'prev';
                break;

            case 'right':
                auto_dir = 'prev';
                break;

            default:
                slid_vert = true;
        }

        $(document).ready(function() {

            $('#fa_ticker_content').css('display', 'block');

            var width_max = $('ul#fa_ticker_content').width();
            var width_item = Math.floor(width_max / {
                switch_ticker.SIZE
            });

            if (width_max > 0) {
                $('ul#fa_ticker_content li').css('float', 'left').css('list-style', 'none').width(width_item).find('img').each(function() {
                    if ($(this).width() > width_item) {
                        var ratio = $(this).width() / width_item;
                        var new_height = Math.round($(this).height() / ratio);
                        $(this).height(new_height).width(width_item);
                    }
                });

                if (slid_vert) {
                    var height_max = h_perso;

                    $('ul#fa_ticker_content li').each(function() {
                        if ($(this).height() > height_max) {
                            height_max = $(this).height();
                        }
                    });

                    $('ul#fa_ticker_content').width(width_item).height(height_max).css('marginLeft', 'auto').css('marginRight', 'auto');
                    $('ul#fa_ticker_content li').height(height_max);
                }


                $('#fa_ticker_content').jcarousel({
                    vertical: slid_vert,
                    wrap: 'circular',
                    auto: {
                        switch_ticker.STOP_TIME
                    },
                    auto_direction: auto_dir,
                    scroll: 1,
                    size: {
                        switch_ticker.SIZE
                    },
                    height_max: height_max,
                    animation: {
                        switch_ticker.SPEED
                    }
                });
            } else {
                $('ul#fa_ticker_content li:not(:first)').css('display', 'none');
                $('ul#fa_ticker_content li:first').css('list-style', 'none').css('text-align', 'center');
            }
        });
        //]]>
    </script>
    <!-- END switch_ticker_new -->

    <script type="text/javascript">
        //<![CDATA[
        $(document).ready(function() {
            <!-- BEGIN switch_report_popup -->
            report = window.open('{switch_report_popup.U_REPORT_POPUP}', '_phpbbreport', 'HEIGHT={switch_report_popup.S_HEIGHT},resizable=yes,scrollbars=no,WIDTH={switch_report_popup.S_WIDTH}');
            if (report != null) {
                report.focus();
            }
            <!-- END switch_report_popup -->
            <!-- BEGIN switch_ticker -->
            $(document).ready(function() {
                Ticker.start({
                    height: {
                        switch_ticker.HEIGHT
                    },
                    spacing: {
                        switch_ticker.SPACING
                    },
                    speed: {
                        switch_ticker.SPEED
                    },
                    direction: '{switch_ticker.DIRECTION}',
                    pause: {
                        switch_ticker.STOP_TIME
                    }
                });
            });
            <!-- END switch_ticker -->
        });

        <!-- BEGIN switch_login_popup -->
        var logInPopUpLeft, logInPopUpTop, logInPopUpWidth = {
                LOGIN_POPUP_WIDTH
            },
            logInPopUpHeight = {
                LOGIN_POPUP_HEIGHT
            },
            logInBackgroundResize = true,
            logInBackgroundClass = false;

        $(document).ready(function() {
            $(window).resize(function() {
                var windowWidth = document.documentElement.clientWidth;
                var popupWidth = $("#login_popup").width();
                var mypopup = $("#login_popup");

                $("#login_popup").css({
                    "left": windowWidth / 2 - popupWidth / 2
                });
            });
        });
        <!-- END switch_login_popup -->
        //]]>
    </script>

    {GREETING_POPUP}

    <style type="text/css">
        #page-footer,
        div.navbar,
        div.navbar ul.linklist {
            display: block !important;
        }

        ul.linklist li.rightside,
        ul.linklist li.rightside a.copyright {
            display: inline !important;
        }

        < !-- BEGIN switch_ticker_new -->.jcarousel-skin-tango .jcarousel-item {
            text-align: center;
            width: 10px;
        }

        .jcarousel-skin-tango .jcarousel-item-horizontal {
            margin-right: {
                switch_ticker.SPACING
            }
            px;
        }

        .jcarousel-skin-tango .jcarousel-item-vertical {
            margin-bottom: {
                switch_ticker.SPACING
            }
            px;
        }

        < !-- END switch_ticker_new -->
    </style>

    {HOSTING_JS}

    <!-- BEGIN google_analytics_code -->
    <script type="text/javascript">
        //<![CDATA[
        (function(i, s, o, g, r, a, m) {
            i['GoogleAnalyticsObject'] = r;
            i[r] = i[r] || function() {
                (i[r].q = i[r].q || []).push(arguments)
            }, i[r].l = 1 * new Date();
            a = s.createElement(o),
                m = s.getElementsByTagName(o)[0];
            a.async = 1;
            a.src = g;
            m.parentNode.insertBefore(a, m)
        })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');

        ga('create', '{G_ANALYTICS_ID}', 'auto');
        <!-- BEGIN google_analytics_code_bis -->
        ga('create', '{G_ANALYTICS_ID_BIS}', 'auto', 'bis');
        <!-- END google_analytics_code_bis -->
        ga('send', 'pageview');
        <!-- BEGIN google_analytics_code_bis -->
        ga('bis.send', 'pageview');
        <!-- END google_analytics_code_bis -->
        //]]>
    </script>
    <!-- END google_analytics_code -->

    <link href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,500,700,700i&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese" rel="stylesheet" />
    <link href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet" />
    <link href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" rel="stylesheet" >
    <script src="https://cdnjs.cloudflare.com/ajax/libs/smoothscroll/1.4.6/SmoothScroll.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js"></script>
    <script>
        new WOW().init();
    </script>
</head>

<body>
    {JAVASCRIPT}
    <div style="display:none">{GENERATED_NAV_BAR}</div>
    <div id="topbar">
        <div class="equinies"><i class="fas fa-leaf" style="margin-right:5px;"></i> <a href="http://equinies.forumactif.com/">Equinies</a>
            <div class="sub-header-path">{NAV_CAT_DESC}</div>
        </div>
        <div class="nav-center"><a href="http://equinies.forumactif.com/">Index</a> <a href="http://equinies.forumactif.com/c1-categorie-1">Catégories</a></div>
        <!-- BEGIN switch_user_logged_in -->
        <div class="nav-right">
            <a href="/search"><i class="fas fa-search"></i></a>
            <a href="/"><i class="fas fa-bell"></i></a>
            <a href="/privmsg?folder=inbox"><i class="fas fa-envelope"></i></a>
            <button class="nav-button"><i class="fas fa-bars"></i></button>
          <div class="nav-button-content"><a href="{U_SEARCH_NEW}">Voir les derniers messages</a>
            <a href="{U_SEARCH_SELF}">Voir ses messages</a>
            <a href="{U_MARK_READ}">Marquer tous les forums comme lus</a></div>
          <script>
document.querySelector(".nav-button").onclick = function() {
document.querySelector(".nav-button-content").style.display=(window.getComputedStyle(document.querySelector('.nav-button-content')).display=='none') ? "block" : "none";
};
setNbMpNotif();
setNbNotif();
</script>
      </div>
      <div class="dropdown">
            <div class="nav-user"><script>document.write(_userdata.avatar)</script></div>
            <div class="dropdown-content1">
                <div class="dropdown-content2 bounceIn">
                    <a id="lien"><i class="fas fa-user"></i>
<script>$("#lien").attr("href", "/u" + _userdata.user_id); </script></a>
                    <a href="/profile?mode=editprofile"><i class="fas fa-cog"></i></a>
                    <a href="/login?logout=1"><i class="fas fa-sign-out-alt"></i></a></div>
            </div>
      </div>
        <!-- END switch_user_logged_in -->
        <!-- BEGIN switch_user_logged_out -->
        <div class="nav-right">
            <a href="/search"><i class="fas fa-search"></i></a>
            <a href="/login"><i class="fas fa-sign-in-alt"></i></a>
        </div>
        <!-- END switch_user_logged_out -->
    </div>
    <header>
        <div class="header2">
            <script>document.write(localStorage.getItem('header2'))</script>
        </div>        
        <h1>Equinies</h1>
    </header>
    <div id="container">
        <!-- BEGIN switch_user_logged_in -->
        <div class="banner">
            <div class="banner-name"><script>document.write(_userdata.username)</script></div>
                        <div class="banner-links">
              <div class="link1"></div>
              <div class="link2"></div>
              <div class="link3"></div>
              <div class="link4"></div>
            </div>
            <div class="banner-stats">
                <div class="banner-element masterTooltip" title="Compte"><i class="fas fa-coins"></i>
                  <div class="element1"><script>document.write(localStorage.getItem('element1'))</script></div><span>€</span></div>
                <div class="banner-element masterTooltip" title="Expérience"><i class="fas fa-certificate"></i>
                  <div class="element2"><script>document.write(localStorage.getItem('element2'))</script></div><span>XP</span></div>
                <div class="banner-element masterTooltip" title="Crédit(s) de création"><i class="fas fa-plus-circle"></i>
                  <div class="element3"><script>document.write(localStorage.getItem('element3'))</script></div><span>CC</span></div>
            </div>
        </div>
        <!-- END switch_user_logged_in -->
        <!-- BEGIN switch_user_logged_out -->
        <div class="banner" style="background-color:#fff;">
            <div class="banner-name">Invité</div>
            <div class="banner-links"></div>
            <div class="banner-stats"></div>
        </div>
        <!-- END switch_user_logged_out -->
        <div id="wrapper">
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par Invité Dim 2 Sep 2018 - 8:55

Hello Pink,
il faudrait demander de l'aide à la personne concernée car je ne suis pas à l'aise avec ce genre de script.
Il faudra mentionner que sur mon fofo de test, je n'ai qu'un mp en attente (non lu) et le script apporte
2 divs au lieu d'une , le code source:

Nombre de MP non-lus (bis) 136


Bon courage pour la suite Wink .


a++

Anonymous

Invité
Invité


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

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Dim 2 Sep 2018 - 9:09

Re, je vais contacter la personne en question. Je vous tiens au courant Smile Merci !
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par Invité Dim 2 Sep 2018 - 9:14

De rien Pink,
n'oublie pas de lui donner la capture que je t'ai donné en lui mentionnant
que je n'ai qu'un mp non lu sur mon fofo de test Wink .


a++
Anonymous

Invité
Invité


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

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Mar 4 Sep 2018 - 8:02

Bonjour, malheureusement, la personne qui est à l'origine du script ne me répond plus :/ Si quelqu'un d'autre a une idée du coup ici...
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Mer 5 Sep 2018 - 13:14

UP
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par Invité Mer 5 Sep 2018 - 16:34

hello Pinke,

tu peux tester ce script stp, je ne connais pas la structure de ton forum mais il y avait peut être un doublon!!

Code:
$(function () {
    if (_userdata.user_id > -1) {
        $("body").append("<div id='loadProfil'></div>");
      $('.nav-right').find('a[href="/privmsg?folder=inbox"]').append('<div class="mp"></div>');
 
        // Infos du profil
        $("#loadProfil").load("/u" + _userdata.user_id + " #wrapper", function () {
            localStorage.setItem('header2', $("#loadProfil #field_id1 .field_uneditable").html());
            localStorage.setItem('element1', $("#loadProfil #field_id6 .field_uneditable").html());
            localStorage.setItem('element2', $("#loadProfil #field_id2 .field_uneditable").html());
            localStorage.setItem('element3', $("#loadProfil #field_id3 .field_uneditable").html());
            localStorage.setItem('link1', $("#loadProfil #field_id4 .field_uneditable").html());
            localStorage.setItem('link2', $("#loadProfil #field_id8 .field_uneditable").html());
            localStorage.setItem('link3', $("#loadProfil #field_id9 .field_uneditable").html());
            localStorage.setItem('link4', $("#loadProfil #field_id5 .field_uneditable").html());
            $("div#loadProfil").remove();
 
            setDataProfil();
        });
 
        // Notif MP
        $.get('/privmsg?folder=inbox', function (data) {
            var MP = $(data).find('dl.icon[style*="https://2img.net/i/fa/modernbb/topic_unread.png"]').length;
 if (MP) {
        $('.nav-right').find('a[href="/privmsg?folder=inbox"]').find('.mp').text('('+MP+')');
    }       
        });
 
        // Notif remove ()
        init_replace_notif_unread();
    };
});
 
function setDataProfil() {
    $(".header2").html(localStorage.getItem('header2'));
    $(".element1").html(localStorage.getItem('element1'));
    $(".element2").html(localStorage.getItem('element2'));
    $(".element3").html(localStorage.getItem('element3'));
    $(".link1").html('<a href="' + localStorage.getItem('link1') + '" title="Registre">Registre</a>');
    $(".link2").html('<a href="' + localStorage.getItem('link2') + '" title="Registre">Répertoire équin</a>');
    $(".link3").html('<a href="' + localStorage.getItem('link3') + '" title="Registre">Fiche cavalière</a>');
    $(".link4").html('<a href="' + localStorage.getItem('link4') + '" title="Registre">Compte bancaire</a>');
    $('.nav-user').html(_userdata.avatar);
    $('.banner-name').html(_userdata.username);
}

 
function init_replace_notif_unread() {
    var n = '#notif_unread';
    if ($(n).length > 0) {
        replace_notif_unread($(n));
        localStorage.setItem('nb_notif', $(n).text());
        $("body").on('DOMSubtreeModified', n, function () {
            localStorage.setItem('nb_notif', $(this).text());
            replace_notif_unread($(this));
        });
    } else {
        window.setTimeout(init_replace_notif_unread, 10);
    }
}
 
function replace_notif_unread(o) { o.html(o.html().replace(/[\(\)]/g, "")); }
 
function setNbNotif() {
    var nbNotif = localStorage.getItem('nb_notif');
    $("#notif_unread").html(nbNotif);
    if(parseInt(nbNotif) > 0 && ! $('#fa_notifications').hasClass('unread')) {
        $('#fa_notifications').addClass('unread');
    }
}



a++
Anonymous

Invité
Invité


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

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Mer 5 Sep 2018 - 17:53

Bonjour Milouze14, la class doublon "mp" a bien disparu. Merci !

Par contre, lorsqu'il n'y a aucun mp non-lu, cette class subsiste même si le chiffre 0 ne s'affiche plus (screen).
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par Invité Mer 5 Sep 2018 - 19:10

Re,
tu peux remplacer le script par celui-ci:
Code:
$(function () {
    if (_userdata.user_id > -1) {
        $("body").append("<div id='loadProfil'></div>");
      $('.nav-right').find('a[href="/privmsg?folder=inbox"]').append('<div class="mp"></div>');
 
        // Infos du profil
        $("#loadProfil").load("/u" + _userdata.user_id + " #wrapper", function () {
            localStorage.setItem('header2', $("#loadProfil #field_id1 .field_uneditable").html());
            localStorage.setItem('element1', $("#loadProfil #field_id6 .field_uneditable").html());
            localStorage.setItem('element2', $("#loadProfil #field_id2 .field_uneditable").html());
            localStorage.setItem('element3', $("#loadProfil #field_id3 .field_uneditable").html());
            localStorage.setItem('link1', $("#loadProfil #field_id4 .field_uneditable").html());
            localStorage.setItem('link2', $("#loadProfil #field_id8 .field_uneditable").html());
            localStorage.setItem('link3', $("#loadProfil #field_id9 .field_uneditable").html());
            localStorage.setItem('link4', $("#loadProfil #field_id5 .field_uneditable").html());
            $("div#loadProfil").remove();
 
            setDataProfil();
        });
 
        // Notif MP
        $.get('/privmsg?folder=inbox', function (data) {
            var MP = $(data).find('dl.icon[style*="https://2img.net/i/fa/modernbb/topic_unread.png"]').length;
 if (MP) {
        $('.nav-right').find('a[href="/privmsg?folder=inbox"]').find('.mp').css('backgroundColor','red').text('('+MP+')');
    }       
        });
 
        // Notif remove ()
        init_replace_notif_unread();
    };
});
 
function setDataProfil() {
    $(".header2").html(localStorage.getItem('header2'));
    $(".element1").html(localStorage.getItem('element1'));
    $(".element2").html(localStorage.getItem('element2'));
    $(".element3").html(localStorage.getItem('element3'));
    $(".link1").html('<a href="' + localStorage.getItem('link1') + '" title="Registre">Registre</a>');
    $(".link2").html('<a href="' + localStorage.getItem('link2') + '" title="Registre">Répertoire équin</a>');
    $(".link3").html('<a href="' + localStorage.getItem('link3') + '" title="Registre">Fiche cavalière</a>');
    $(".link4").html('<a href="' + localStorage.getItem('link4') + '" title="Registre">Compte bancaire</a>');
    $('.nav-user').html(_userdata.avatar);
    $('.banner-name').html(_userdata.username);
}
 
 
function init_replace_notif_unread() {
    var n = '#notif_unread';
    if ($(n).length > 0) {
        replace_notif_unread($(n));
        localStorage.setItem('nb_notif', $(n).text());
        $("body").on('DOMSubtreeModified', n, function () {
            localStorage.setItem('nb_notif', $(this).text());
            replace_notif_unread($(this));
        });
    } else {
        window.setTimeout(init_replace_notif_unread, 10);
    }
}
 
function replace_notif_unread(o) { o.html(o.html().replace(/[\(\)]/g, "")); }
 
function setNbNotif() {
    var nbNotif = localStorage.getItem('nb_notif');
    $("#notif_unread").html(nbNotif);
    if(parseInt(nbNotif) > 0 && ! $('#fa_notifications').hasClass('unread')) {
        $('#fa_notifications').addClass('unread');
    }
}

Puis dans ta feuille de style recherches ceci:
Code:
.mp {
    background-color: red;
    border-radius: 10px;
    color: #fff;
    font-size: 8px;
    line-height: 10px;
    margin-left: 115px;
    margin-top: -37px;
    padding: 1px 0 0 1.5px;
    position: absolute;
    text-align: center;
    transform: skewX(35deg);
    width: 10px;
}

Supprimes le background:
Code:
  background-color: red;


a++
Anonymous

Invité
Invité


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

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Jeu 6 Sep 2018 - 7:50

Bonjour !

J'ai testé ces modifications sur mon forum. Il s'avère que lorsqu'il n'y a aucun nouveau MP, la class "mp" ne s'affiche plus ce qui me convient parfaitement. Mais, lorsqu'il y a un ou plusieurs nouveaux MP et donc que la class est active, les parenthèses autour du chiffre qui ne doivent normalement pas être présentes (c'est ce que le script de départ devait faire entre autre) le sont :

Nombre de MP non-lus (bis) UByTg0w
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Nombre de MP non-lus (bis)

Message par Invité Jeu 6 Sep 2018 - 7:56

Hello,
si tu veux supprimer les parenthèses il faut remplacer cette partie dans le script:
Code:

 if (MP)
{
$('.nav-right').find('a[href="/privmsg?folder=inbox"]').find('.mp').css('backgroundColor','red').text('('+MP+')');
}

Par:

Code:

 if (MP)
{
$('.nav-right').find('a[href="/privmsg?folder=inbox"]').find('.mp').css('backgroundColor','red').text(MP);
}


a++
Anonymous

Invité
Invité


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

Résolu Re: Nombre de MP non-lus (bis)

Message par foxies Jeu 6 Sep 2018 - 8:00

Merci beaucoup, ça fonctionne Smile Je marque le sujet comme résolu, bien que le soucis de délai d'affichage - qui avait été traité par la personne à l'origine du nouveau script - soit revenu. Je vais essayer de voir avec elle pour ceci.

Bonne journée Milouze14 !
foxies

foxies
*****

Féminin
Messages : 607
Inscrit(e) le : 02/05/2010

http://hawkeyeriver.forumgratuit.org/
foxies 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