Pagination appellation d'une page

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

Résolu Pagination appellation d'une page

Message par soul.eater le Lun 12 Aoû 2013 - 22:37

Bonjour,

J'ai remarqué l'astuce de pagination (merci beaucoup d'ailleurs) et je souhaite savoir s'il est possible de mettre un mot à la place du numéro de page.

Mon but étant de créer une pagination ayant le mot "Sommaire" en première page puis ensuite la numérotation des pages habituel pour faire une newsletter sous la forme d'un mini magazine.

De plus je souhaite savoir si l'on peut rajouter la fonction de pagination en masquant le bouton d'ajout de la balise [page] dans l'éditeur de texte.

Merci d'avance pour votre aide,

Jonas


Dernière édition par soul.eater le Lun 12 Aoû 2013 - 22:42, édité 2 fois

soul.eater
**

Masculin
Messages : 66
Inscrit(e) le : 20/06/2013

http://www.lesramollisdelamolette.org/
soul.eater a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Pagination appellation d'une page

Message par Tech le Lun 12 Aoû 2013 - 22:39

Bonjour,

Afin de conserver un forum lisible, l'utilisation des mises en forme suivante est interdite :
  • Le gras et la couleur (réservés au staff de ce forum),
  • L'écriture en SMS (abréviations)

Pour plus de détails sur la conduite à tenir sur ce forum, merci de lire la Charte du forum. Wink

A bientôt sur ForumActif Smile



{ Règles Générales } { Question & Réponses Fréquentes } { Le Staff de ForumActif }

Tech
Modéractif
Modéractif

Masculin
Messages : 21119
Inscrit(e) le : 01/12/2007

http://forum.forumactif.com
Tech a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Pagination appellation d'une page

Message par soul.eater le Lun 12 Aoû 2013 - 22:43

@Tech a écrit:
Le gras et la couleur (réservés au staff de ce forum),
L'écriture en SMS (abréviations)
Je vous pris de m'en excuser je ne savais pas, j'ai édité mon message.

Jonas

soul.eater
**

Masculin
Messages : 66
Inscrit(e) le : 20/06/2013

http://www.lesramollisdelamolette.org/
soul.eater a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Pagination appellation d'une page

Message par soul.eater le Ven 16 Aoû 2013 - 2:37


soul.eater
**

Masculin
Messages : 66
Inscrit(e) le : 20/06/2013

http://www.lesramollisdelamolette.org/
soul.eater a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Pagination appellation d'une page

Message par Ea le Ven 16 Aoû 2013 - 12:54

pour retirer le bouton vous pouvez retirer la partie :

Code:
  if($("#text_editor_textarea").length && $.sceditor) {
    $(function() {
      if(!$("#text_editor_textarea").sceditor("instance")) {
        return
      }
      $('<a class="sceditor-button" unselectable="on" title="Page"><div unselectable="on" style="background:url(http://i.imgur.com/a3RgTJc.gif);opacity:1">Page</div></a>').insertAfter(".sceditor-button-fahide").click(function(e) {
        $("#text_editor_textarea").sceditor("instance").insertText("[page]")
      })
    })
  }
pour que la première page soit "Sommaire" et que les suivantes soient 1..N ça demande plus de modification pour arriver à un script comme ceci :

Code:
$(function() {
  var x = "selecteur_suivant_version";
  if($("#text_editor_textarea").length && $.sceditor) {
    $(function() {
      if(!$("#text_editor_textarea").sceditor("instance")) {
        return
      }
      $('<a class="sceditor-button" unselectable="on" title="Page"><div unselectable="on" style="background:url(http://i.imgur.com/a3RgTJc.gif);opacity:1">Page</div></a>').insertAfter(".sceditor-button-fahide").click(function(e) {
        $("#text_editor_textarea").sceditor("instance").insertText("[page]")
      })
    })
  }
  var c, y, g = function(a) {
    var b;
    a = document.createElement(a);
    b = "getComputedStyle" in window;
    document.body.appendChild(a);
    b = (b ? window.getComputedStyle(a, "") : a.currentStyle).display;
    document.body.removeChild(a);
    return b
  }, t = function(o) {
    if(o.tagName == "CODE") {
      return
    }
    if(!o.hasChildNodes()) {
      return
    }
    var a = 0;
    var p = [0];
    var i;
    for(i = 0;i < o.childNodes.length;i++) {
      c = o.childNodes[i];
      if(c.nodeType == 1) {
        p.push(c);
        t(c)
      }else {
        if(c.nodeType == 3 && c.nodeValue.indexOf("[page]") != -1) {
          while((y = c.nodeValue.indexOf("[page]")) != -1) {
            if(y != 0) {
              p.push(document.createTextNode(c.nodeValue.substr(0, y)))
            }
            p.push(0);
            a++;
            c.nodeValue = c.nodeValue.substr(y + 6)
          }
          p.push(c)
        }else {
          p.push(c)
        }
      }
    }
    if(a == 0) {
      return
    }
    var b = g(o.tagName) == "block";
    for(i = 0;i < p.length;i++) {
      if(p[i] === 0) {
        y = document.createElement(b ? "DIV" : "SPAN");
        y.className = "postpage";
        o.appendChild(y)
      }else {
        y.appendChild(p[i])
      }
    }
    $("> .postpage", o).not(":first").hide();
    y = document.createElement(b ? "DIV" : "SPAN");
    y.className = "postpagination";
    var f = "Sommaire";
    $(y).append('<span class="pp_current">' + f + "</span><span>1</span>");
    if(a > 1) {
      if(a > 2) {
        if(a > 3) {
          $(y).append("<span>2 ...</span>")
        }else {
          $(y).append("<span>2</span>")
        }
      }
      $(y).append("<span>" + (a < 4 ? "" : "... ") + a + "</span>")
    }
    if(b) {
      $(y).append('<span class="pp_next">Suivant</span><span class="pp_all">Voir tout</span>')
    }else {
      $(y).append('<span class="pp_next"></span>')
    }
    o.appendChild(y);
    $(y).on("click", "span", function() {
      if($(this).hasClass("pp_all")) {
        $(this).parent().parent().children().show();
        $(this).parent().remove();
        return
      }
      var pagin = $(this).parent();
      var num = parseInt($(".pp_next", pagin).prev().text().replace(/ ?\.\.\. ?/, "")) + 1;
      if($(".pp_current", pagin).text() == f) {
        var cur = 1
      }else {
        var cur = parseInt($(".pp_current", pagin).text().replace(/ ?\.\.\. ?/, "")) + 1
      }
      if($(this).hasClass("pp_next")) {
        cur += 1
      }else {
        if($(this).text() == f) {
          cur = 1
        }else {
          cur = parseInt($(this).text().replace(/ ?\.\.\. ?/, "")) + 1
        }
      }
      if(cur < 1) {
        cur = 1
      }else {
        if(cur > num) {
          cur = num
        }
      }
      $(".pp_next", pagin).prevUntil().remove();
      console.log([cur, num]);
      if(cur < num - 1) {
        $(pagin).prepend("<span>" + (num < 5 || cur >= num - 2 ? "" : "... ") + (num - 1) + "</span>")
      }else {
        if(cur == num) {
          $(pagin).prepend('<span class="pp_current">' + (num - 1) + "</span>")
        }
      }
      if(cur < num) {
        $(".pp_next", pagin).show();
        if(!(cur - 1) && num > 3) {
          $(pagin).prepend("<span>2" + (num == 4 ? "" : " ...") + "</span>")
        }
        $(pagin).prepend('<span class="pp_current">' + (cur - 1 ? cur - 1 : f) + "</span><span>" + cur + (num > 4 && cur != 1 && cur < num - 2 ? " ..." : "") + "</span>")
      }else {
        $(".pp_next", pagin).hide()
      }
      if(cur > 1) {
        if(cur == 2) {
          $(pagin).prepend("<span>" + f + "</span>")
        }else {
          $(pagin).prepend("<span>" + (cur > 5 ? "... " : "") + (cur - 2) + "</span>")
        }
        if(cur > 2) {
          if(cur > 4) {
            $(pagin).prepend("<span>1</span><span>2" + (cur == 5 ? "" : " ...") + "</span>")
          }else {
            if(cur > 3) {
              $(pagin).prepend("<span>1</span>")
            }
          }
          $(pagin).prepend("<span>" + f + "</span>")
        }
      }
      $(".postpage", $(pagin).parent()).hide();
      $(".postpage", $(pagin).parent()).eq(cur - 1).show()
    })
  };
  $(x).each(function() {
    t(this)
  })
});

Ea
Aidactif
Aidactif

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

Ea a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Pagination appellation d'une page

Message par soul.eater le Ven 16 Aoû 2013 - 17:42

C'est parfait, ça fonctionne très bien. Very Happy 

Merci beaucoup pour votre aide Ea et pour le temps que vous avez passé là-dessus.

Je place le sujet en résolu.

Encore mille mercis,

Jonas

soul.eater
**

Masculin
Messages : 66
Inscrit(e) le : 20/06/2013

http://www.lesramollisdelamolette.org/
soul.eater 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