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 le Jeu 25 Juin 2015 - 11:44

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

Ce tutoriel vous permet d'ajouter 2 "boutons" afin de passer d'un message privé à un autre sans avoir à repasser par la boîte de réception. Smile

Aperçu

Le javascript

Dirigez-vous dans:

Panneau d'administration Modules Gestion des codes Javascript

cliquez sur Ajout Créer un nouveau javascript
puis remplissez le formulaire comme suit:
  • Titre: choisissez un titre qui soit explicite.
  • Placement: sur toutes les pages.
  • Code Javascript:

    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 valider.

Warning Le code javascript est conçu pour être compatible avec toutes les versions (phpbb2/3-invision-punbb), 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:

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

Warning 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 Sujets Par Page

Le CSS

Panneau d'administration Affichage couleurs Feuille de style CSS

Ajoutez le code CSS 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";
}

Vous pouvez bien entendu modifier ce code à votre convenance.
Là aussi n'oubliez pas de valider.



Dernière édition par no_way le Jeu 27 Juil 2017 - 10:59, édité 5 fois (Raison : Typo,Mise à jour du script et du CSS + support modernBB)


Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe
avatar

Shadow
Adminactive
Adminactive

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

http://forum.forumactif.com
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