Pulsanti Avanti e Indietro per i messaggi privati


Tutorial Pulsanti Avanti e Indietro per i messaggi privati

Messaggio Da Niko Dom 17 Gen 2021 - 1:55

Pulsanti Avanti e Indietro per i messaggi privati


Panoramica

Questo tutorial ti consente di aggiungere 2 "pulsanti" per passare da un messaggio privato a un altro senza dover passare di nuovo dalla posta in arrivo.

Pulsanti Avanti e Indietro per i messaggi privati Navmp11

Codice Javascript

Andiamo verso Pannello di amministrazione ► Moduli ► HTML & Javascript ► Gestione del codice Javascript e creiamo un nuovo codice con le seguenti impostazioni:
  • Titolo: a tua scelta
  • Dove: in tutte le pagine
  • Codice:
    Codice:
    $(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]));
            }
        }
    });


Non dimenticare di convalidare!

Importante Il codice javascript è progettato per essere compatibile con tutte le versioni (phpbb2 /3-invision-punbb), se vuoi decidere da solo dove posizionare i pulsanti successivo e precedente devi solo modificare il tuo modello "privmsgs_read_body" e aggiungi il seguente codice dove vuoi:
Codice:
<div id="navMP"></div>

Importante La visualizzazione dei pulsanti può richiedere più o meno tempo a seconda della velocità di connessione e della configurazione del numero di soggetti per pagina del tuo forum, minore è il numero di soggetti per pagina, più lo script sarà costretto a fare richieste, più lento sarà.
Puoi controllare il valore del numero di soggetti per pagina come segue:
Pannello di amministrazione ► Messaggi e Contatto generale ► Numero di messaggi per pagina

Personalizzazione CSS

Ora affinché il popup venga visualizzato correttamente, è necessario aggiungere alcuni CSS. Incolla il seguente codice nel tuo foglio di stile CSS a Pannello di amministrazione ► Visualizzazione ► CSS ► Foglio di stile CSS
Codice:
#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:"Precedente";
}
#navMP-suivant::before{
    content:"Successivo";
}

Ovviamente puoi modificare questo codice a tuo piacimento.
Ancora una volta, non dimenticare di convalidare :good:


Niko
Niko
Moderatore
Moderatore

Sesso : Maschio
Età : 24
Messaggi : 8308
Località : Provincia di Varese

Visualizza il profilo https://www.openstudio.one
Niko è stato ringraziato dall'autore di questo topic.

Visualizza l'argomento precedente Visualizza l'argomento successivo Torna in alto


 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.