Pagination appellation d'une page

3 participants

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

Résolu Pagination appellation d'une page

Message par soul.eater Lun 12 Aoû - 20: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û - 20:42, édité 2 fois
soul.eater

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 Lun 12 Aoû - 20:39

Pagination appellation d'une page Ecrire2Bonjour,

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
Tech

Tech
Membre actif

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

https://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 Lun 12 Aoû - 20: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

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 Ven 16 Aoû - 0:37

Pagination appellation d'une page 558123Pagination appellation d'une page 558123Pagination appellation d'une page 558123
soul.eater

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 Ven 16 Aoû - 10: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

Ea
Aidactif
Aidactif

Messages : 23583
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 Ven 16 Aoû - 15: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

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

- Sujets similaires

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