Vérifiez vos informations

Il semblerait que les informations techniques de votre profil n'aient pas été actualisées depuis un certain temps... Pour que l'aide apportée vous soit efficace, il est important que ces informations soient à jour : prenez quelques secondes pour confirmer ou compléter les informations suivantes.


Lien de votre forum
Version de ce forum
Vous êtes le fondateur de ce forum
Vous avez modifié le CSS de ce forum
Vous avez modifié les templates de ce forum
Votre navigateur

Boutons suivant et précédent pour la messagerie privée

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

  • 0

Tutoriel Boutons suivant et précédent pour la messagerie privée

Message par Shadow Jeu 25 Juin 2015 - 11:44

Boutons suivant et précédent pour la messagerie privée

Ce tutoriel vous permet d'ajouter deux boutons (suivant et / ou précédent) afin de passer d'un message privé à un autre sans avoir à repasser par la boîte de réception.

Voir illustration :
Boutons suivant et précédent pour la messagerie privée Navmp11

Création du script


Panneau d'administration  Modules  HTML & JAVASCRIPT - Gestion des codes Javascript

Assurez-vous que la gestion des codes Javascript soit activée, puis créez un nouveau javascript ayant pour titre "Boutons Précédent & Suivant MP" et pour placement "Sur toutes les pages" (plus d'informations sur la gestion des scripts).

Code:
$(function(){
    "use strict";
    var a=["inbox","savebox"],b,dl=document.location.search;
    for(b in a){
        if(dl.indexOf("folder="+a[b]+"&mode=read&p=")!=-1){
            (function(box){
                $.get("/privmsg?folder="+box,function(mpStart){
                    var messages=$("a[href^='/privmsg?folder="+box+"&mode=read&p=']",mpStart).toArray();
                    var linkToObject=function(lc){return {"href":lc.href,"title":lc.title,"text":lc.textContent}};
                    var setButtons=function(){
                        var getPid=function(a){return /p=(\d+)/.exec(a)[1]},message;
                        for(i=0;i<messages.length;i++){
                            message=messages[i];
                            if(getPid(dl)==getPid(message.href)){
                                if(i||i<messages.length-1){
                                    var $navMP=$("<div>",{id:"navMP"});
                                    if(i<messages.length-1)$navMP.append($('<a>',{"id":"navMP-precedent","href":messages[i+1].href,"title":messages[i+1].title||messages[i+1].text}));
                                    if(i)$navMP.append($('<a>',{"id":"navMP-suivant","href":messages[i-1].href,"title":messages[i-1].title||messages[i-1].text}));
                                    $("#navMP").length?$("#navMP").html($navMP.html()):$("form[action^='/privmsg']").before($navMP);
                                }
                                break;
                            }
                        }
                    };
                    var requests=$("a[href^='/privmsg?folder="+box+"&start=']",mpStart).slice(0,-1).toArray();
                    if(requests.length){
                        requests=requests.map(function(e){return $.get(e.href)});
                        $.when.apply(null,requests).done(function(){
                            var d_msg,requestData;
                            if(requests.length>1){
                                for(i=0;i<arguments.length;i++){
                                    requestData=arguments[i][0];
                                    d_msg=$("a[href^='/privmsg?folder="+box+"&mode=read&p=']",requestData).toArray();
                                    messages=messages.concat(d_msg);
                                }
                                messages.map(linkToObject);
                                setButtons();
                            }else{
                                requestData=arguments[0];
                                d_msg=$("a[href^='/privmsg?folder="+box+"&mode=read&p=']",requestData).toArray();
                                messages=messages.concat(d_msg).map(linkToObject);
                                setButtons();
                            }
                        });
                    }else{
                        messages=messages.map(linkToObject);
                        setButtons();
                    }
                });
            }(a[b]));
        }
    }
});

N'oubliez pas de cliquer sur le bouton Valider pour sauvegarder les modifications.

Insertion du CSS


Panneau d'administration  Affichage  Images et Couleurs - Couleurs (Onglet Feuille de style CSS)

Ajoutez le code suivant :

Code:
#navMP{
    height:16px;
    height:1rem;
}
#navMP>a{
    display:inline-block;
    padding-left:.75em;
    padding-right:.75em;
    font-size:1.2em;
    line-height:1.2em;
    color:#000000;
    background:#ffffff;
    text-decoration:none !important;
    border:1px solid #aaa;
}
#navMP>a:hover{
    color:#ffffff;
    background:#000000;
    text-decoration:none !important;
}
#navMP-precedent{
    float:left;
    border-radius:.6em 0 0 .6em;
}
#navMP-suivant{
    float:right;
    border-radius:0 1.2em 1.2em 0;
}
#navMP-precedent::before{
    content:"Précédent";
}
#navMP-suivant::before{
    content:"Suivant";
}

N'oubliez pas de cliquer sur le bouton Valider pour sauvegarder les modifications.

Remarques techniques


  • Le code javascript est conçu pour être compatible avec les versions (PhpBB2, PhpBB3, PunBB, Invision et ModernBB). Si vous souhaitez décider par vous même où placer les boutons suivant et précédent, il vous suffit d'éditer votre template "privmsgs_read_body" et d'y ajouter le code suivant où vous le désirez :

    Panneau d'administration  Affichage  Templates  Poster & Messages privés, privmsgs_read_body

    Code:
    <div id="navMP"></div>

  • L'affichage des boutons peut prendre plus ou moins de temps selon votre vitesse de connexion et la configuration du nombre de sujets par page de votre forum, plus le nombre de sujets par page est faible, plus le script sera obligé de faire des requêtes, plus il sera lent. Vous pouvez vérifier la valeur du nombre de sujets par page ainsi :

    Panneau d'administration  Général  Messages et Email  Configuration, Nombre de sujets par page




Dernière édition par Walt le Mer 14 Juil 2021 - 16:01, édité 7 fois (Raison : Typo,Mise à jour du script et du CSS + support modernBB)
Shadow

Shadow
Modéractive
Modéractive

Féminin
Messages : 24353
Inscrit(e) le : 30/03/2007

Voir le profil de l'utilisateur
Shadow 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