- 0Réputation du message : 100% (7 votes)
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 2 "boutons" afin de passer d'un message privé à un autre sans avoir à repasser par la boîte de réception. 
AperçuLe javascriptDirigez-vous dans:
Panneau d'administration Modules Gestion des codes Javascript |
cliquez sur 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.
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>
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 CSSPanneau 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)