Catégorie rétractable sans invision

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

  • 0

Astuce Catégorie rétractable sans invision

Message par Ea Mar 12 Jan 2010 - 10:53

Catégories rétractables

Cette astuce sert à être capable de rétracter des catégories et mémoriser l'état comme c'est le cas pour les forums version Invision.

Voir illustration :

Dans cette astuce, nous n'utliserons pas une image, mais le clic sur la barre de titre afin d'ouvrir ou fermer une catégorie.

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 "Catégories rétractables" et pour placement "Sur l'index" (plus d'informations sur la gestion des scripts).

Code:
$(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)))
    })
  })
});

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

Autres possibilités


Catégories rétractables seulement pour les administrateurs


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 "Catégories rétractables" et pour placement "Sur l'index" (plus d'informations sur la gestion des scripts).

Code:
$(function() {
  if(_userdata.user_level == 1) {
        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)))
            })
        })
    }
});

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

Catégories rétractables seulement pour les administrateurs et modérateurs


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 "Catégories rétractables" et pour placement "Sur l'index" (plus d'informations sur la gestion des scripts).

Code:
$(function() {
  i  if(_userdata.user_level == -1 | _userdata.user_level == 0) {
        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)))
            })
        })
    }
});

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

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea 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