Astuces Forumactif
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Membres connectés récemment
Voir tous les membres

[PHPBB3] Catégories rétractables

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

avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 18 Mai 2021 - 14:19

  • Version du forum :
    PHPBB3
  • Templates modifiés :
    oui
  • Navigateur :
    Firefox
Bonjour à tous les milouziens,

Serait-il possible de compléter ce code qui permet de rétracter les catégories.
En ajoutant si possible un "-" et un "+" quand on masque ou démasque une catégorie, comme cela est fait sur ce fofo.

L'ajout d'une infobulle quand on positionne le curseur sur le "+" ou le "-" serait un plus.


Code:
/* categories retractables */
    $(function() {
      if(window.localStorage) {
        var b = JSON.parse(localStorage.getItem("catRet")) || {}
      }
      var f = 0;
      if($("body#phpbb").length) {
        var a = "div.table-title h2", e = "ul.topiclist", c = ":not(ul.topiclist.forums)"
      }else {
        $("#pun-intro").length ? (a = "div.page-title h2", e = "div.main-head", c = ":not(div.main-content)") : (a = "th.secondarytitle h2", e = "tr", c = ":not(tr)")
      }
      $(a).closest(e).css("cursor", "pointer").each(function() {
        var d = "c" + f++, a;
        window.localStorage ? b[d] && (a = !0) : a = !1;
        a && $(this).nextUntil(c).toggle();
        $(this).click(function() {
          $(this).nextUntil(c).toggle();
          window.localStorage && (b[d] ? delete b[d] : b[d] = 1, localStorage.setItem("catRet", JSON.stringify(b)))
        })
      })
    });

Merci pour votre aide.


Dernière édition par photoclic le Mar 18 Mai 2021 - 19:32, édité 1 fois
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 18 Mai 2021 - 16:46

Salut Serge,
alors, ce script utilise un toggle et non un hi ou show, c'est a dire que 'on clique sur la barre et le dessous s 'affiche ou non.
Testes ce script en remplacement pour t'en apercevoir, il faut actualiser la page pour afficher les boutons correspondants:

Code:
/* categories retractables */
        $(function() {
          if(window.localStorage) {
            var b = JSON.parse(localStorage.getItem("catRet")) || {}
          }
          var f = 0;
          if($("body#phpbb").length) {
            var a = "div.table-title h2", e = "ul.topiclist", c = ":not(ul.topiclist.forums)"
          }else {
            $("#pun-intro").length ? (a = "div.page-title h2", e = "div.main-head", c = ":not(div.main-content)") : (a = "th.secondarytitle h2", e = "tr", c = ":not(tr)")
          }
          $(a).closest('dl').find('dd.lastpost').after('<span class="M14_open_slideCat"title="Afficher les forums">+</span><span class="M14_closed_slideCat"title="Masquer les forums">-</span>');
       
          $(a).closest(e).css("cursor", "pointer").each(function() {
           
            var d = "c" + f++, a;
            window.localStorage ? b[d] && (a = !0) : a = !1;
       
       
            a && $(this).nextUntil(c).toggle();
         
            $(this).click(function() {
              $(this).nextUntil(c).toggle();
              window.localStorage && (b[d] ? delete b[d] : b[d] = 1, localStorage.setItem("catRet", JSON.stringify(b)))
            })
          })
           
        });
$(function(){
  $('ul.topiclist.forums').each(function(){
    var t=$(this).is(":visible");
    if(t==true){
      $(this).prev().find('.M14_open_slideCat').hide();
      $(this).prev().find('.M14_closed_slideCat').show();
   
    }
   
    if(t==false){
      $(this).prev().find('.M14_open_slideCat').show();
      $(this).prev().find('.M14_closed_slideCat').hide();
    }
 
});});


avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 18 Mai 2021 - 17:39

Bonjour Philippe,

Merci pour ce script et les explications.

Alors cela fonctionne Phil mais j'ai cru que ça ne fonctionnait pas car l'actualisation des boutons se fait au rafraichissement de page. C'est en te relisant que j'ai fini par comprendre

Ce n'est pas le cas sur ton fofo où les signes changent au clic.
peut-être que cela n'est pas possible en phpbb3.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 18 Mai 2021 - 18:53

Re serge,
alors j'avais dans mes archives un script qu'Ange tuteur avait amélioré avec des images.
Par contre l'infobulle il faudra mettre cette idée au placard Serge:

Code:
$(function() {
 var img_moins= 'https://i.servimg.com/u/f20/20/11/87/27/remove12.png';
 var img_plus= 'https://i.servimg.com/u/f20/20/11/87/27/add_it11.png';
 if(window.localStorage) {
   var b = JSON.parse(localStorage.getItem("catRet")) || {}
 }
 var f = 0;
 if($("body#phpbb").length) {
   var a = ".header .lastpost", e = "ul.topiclist", c = ":not(ul.topiclist.forums)"
 }else {
   $("#pun-intro").length ? (a = "div.page-title h2", e = "div.main-head", c = ":not(div.main-content)") : (a = "th.secondarytitle h2", e = "tr", c = ":not(tr)")
 }
 $(a).each(function() {
   var p= $(this).closest(e);
   var d = "c" + f++, a;
   window.localStorage ? b[d] && (a = !0) : a = !1;
   a && $(p).nextUntil(c).toggle();
   $('<dd><img src="'+(a?img_plus:img_moins)+'" /> </dd>').css("cursor", "pointer").insertAfter(this).click(function() {
     $("img",this).attr('src',($("img",this).attr('src')==img_moins?img_plus:img_moins));
     $(this).closest(e).nextUntil(c).toggle();
     window.localStorage && (b[d] ? delete b[d] : b[d] = 1, localStorage.setItem("catRet", JSON.stringify(b)))
   })
 })
});

Les images se trouvent en début de script.

photoclic a écrit:Ce n'est pas le cas sur ton fofo où les signes changent au clic.
peut-être que cela n'est pas possible en phpbb3.

Pour l'information, j'ai l'identique sur mon fofo pour le script concerné Serge ok .
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 18 Mai 2021 - 19:31

Re Phil,

Vraiment très sympa de ta part de fournir ton astuce.

ça fonctionne parfaitement.
Pas grave pour l'infobulle.

Un grand merci l'ami pour tout ça tape la
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 18 Mai 2021 - 19:41

De rien Serge,

Hello


Sujet résolu et déplacé dans le forum adéquate

A bientôt pour une prochaine demande clin oeil

Voir le sujet précédent Voir le sujet suivant Revenir en haut

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum