Partage
  • Partager sur Facebook
  • Partager sur Twitter

page par page avancé

Sujet résolu
Anonyme
    20 août 2006 à 2:04:38

    Bonjour je voulais savoir si quelqu'un saurait comment faire un système de navigation page par page perfectionné !

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 août 2006 à 2:29:07

      Euh, j'ai rien compris, c'est normal?
      explique un peu, parce que la, je nage dans ke brouillard ^^'
      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2006 à 2:38:24

        Petit code rapide ;)
        Il te permet de sélectionner l'ordre( croissant ou décroissant ), si il y apparait un lien avec le message Suivant ou Précédant et l'URL voulue( les liens apparentrons sous la forme
        url?page=X )
        Par défaut les options sont :
        • Ordre décroissant
        • Message suivant ou précédent désactivé

        <?php
            function pagination( $page, $nb_page, $url, $nb = 4, $suiv = FALSE, $ordre = FALSE )
            {
                $liste = array();
               
                if ( $suiv )
                {
                    if ( $ordre && $page > 1 )
                    {
                        $liste[] = sprintf( '<a href="%s?page=%d">Précédent</a>&nbsp;', $url, $page - 1 );
                    }
                    elseif ( !$ordre && $page < $nb_page )
                    {
                        $liste[] = sprintf( '<a href="%s?page=%d">Suivant</a>&nbsp;', $url, $page + 1 );
                    }
                }
               
                if ( $ordre )
                {
                    $i = 1;
                    while ( $i <= $nb_page )
                    {
                        if ( $i == $page )
                        {
                            $liste[] = sprintf( '<span class="page_on">%d</span>&nbsp;', $page ); // Clin d'oeil au SdZ ;)
                        }
                        else
                        {
                            if ( $i < $nb || ( $i > $page - $nb && $i < $page + $nb ) || $i > $nb_page - $nb )
                            {
                                $liste[] = sprintf( '<a href="%s?page=%d">%d</a>&nbsp;', $url, $i, $i );
                            }
                            else
                            {
                                if ( $i >= $nb && $i <= $page - $nb )
                                {
                                    $i = $page - $nb;
                                }
                                elseif ( $i >= $page + $nb && $i <= $nb_page - $nb )
                                {
                                    $i = $page - $nb;
                                }
                               
                                $liste[] = '...&nbsp;';
                            }
                        }
                    }
                   
                    $i++;
                }
                else
                {
                    $i = $nb_page;
                    while ( $i >= 1 )
                    {
                        if ( $i == $page )
                        {
                            $liste[] = sprintf( '<span class="page_on">%d</span>&nbsp;', $page );
                        }
                        else
                        {
                            if ( $i > $nb_page - $nb || ( $i < $page + $nb && $i > $page - $nb ) || $i < $nb )
                            {
                            $liste[] = sprintf( '<a href="%s?page=%d">%d</a>&nbsp;', $url, $i, $i );
                            }
                            else
                            {
                                if ( $i <= $nb_page - $nb && $i >= $page + $nb )
                                {
                                    $i = $page + $nb;
                                }
                                elseif ( $i <= $page - $nb && $i >= $nb )
                                {
                                    $i = $nb;
                                }
                           
                                $liste[] = '...&nbsp;';
                            }
                        }
                       
                        $i--;
                    }
                }
               
                if ( $suiv )
                {
                    if ( $ordre && $page < $nb_page )
                    {
                        $liste[] = sprintf( '<a href="%s?page=%d">Suivant</a>', $url, $page + 1 );
                    }
                    elseif ( !$ordre && $page > 1 )
                    {
                        $liste[] = sprintf( '<a href="%s?page=%d">Précédent</a>', $url, $page - 1 );
                    }
                }
               
                return $liste;
            }
           
        ?>

        Ce code est addapté du code initial de winzou et modifié par moi
        (Merci de mettre un petit copyright ^^)

        N'hésite pas si tu ne comprends pas un passage ;)</span>
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          20 août 2006 à 2:59:39

          Whaou exelent ca traite l'affichage page par apge et l'affichage decroissant croissant si je comprend bien c'est ca??
          • Partager sur Facebook
          • Partager sur Twitter
            20 août 2006 à 3:02:40

            Oui, c'est un petit + de la fonction initiale ;)
            n'oublie pas le copyright hein ^^

            [EDIT] Tu peux modifier le code ;) , je te donne mon accord ^^
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              20 août 2006 à 3:05:23

              Mdr ok si tu veux un copiryght y a pas de probblème seuelement si je l'utilise dans son intégralité ou si tu travaille pour moi lol Pas mal le code sinon :)
              Bahamutzero c'est mieu que bahamut 800 ^^ mdrr et ca vas avec site du zero :)o_O les ff y a rien de meiux ..........!!!!!!

              • Partager sur Facebook
              • Partager sur Twitter
                20 août 2006 à 3:08:03

                J'aurais bien aimer avoir Bahamut tout court...
                Mais il était déjà pris :(
                our le copyright je blaguais ;) mais tu peux le mettre si tu veux
                A moin que winzou ne te l'interdise :-°
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  20 août 2006 à 3:08:48

                  Je crois que Winzou n'est pas du genre à s'embêter pour si peu :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    20 août 2006 à 3:11:14

                    Pourquoi ton texte est t'il en minuscule ? :o Non je sais mais je décèle deja des fautes sur la fonction lol et puis je ne vois pas comment m'en servir.

                    Peux tu m'expliquer ?

                    > Je crois que Winzou n'est pas du genre à s'embêter pour si peu

                    Qui s'embeterait pour si peu :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 août 2006 à 3:17:57

                      J'ai pas compris ta première question :o
                      Mais pour t'en servir, expample :
                      <?php
                          $page = $_GET[ 'page' ]; // A sécuriser
                          $nb_page = 85;
                          $url = 'index.php';
                         
                          echo 'Page : ';
                          $liste_page = pagination( $page, $nb_page, $url );
                          foreach ( $liste_page as $page )
                          {
                              echo $page;
                          }
                         
                          /* Affiche sans les liens
                      Page : 82 83 84 85 ... 1 2 3
                          */

                      ?>


                      [EDIT] Autre example :
                      <?php
                          $page = $_GET[ 'page' ]; // A sécuriser
                          $nb_page = 85;
                          $url = 'index.php';
                         
                          echo 'Page : ';
                          $liste_page = pagination( $page, $nb_page, $url, 4, TRUE );
                          foreach ( $liste_page as $page )
                          {
                              echo $page;
                          }
                         
                          /* Affiche sans les liens
                      Page : 82 83 84 85 ... 3 2 1 Précédant
                          */

                      ?>

                      Tu peux par la suite l'utiliser pour les news ;)</span>
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        20 août 2006 à 3:19:49

                        Citation : sylorion

                        > Je crois que Winzou n'est pas du genre à s'embêter pour si peu

                        Qui s'embeterait pour si peu :)



                        Bien des gens se prennent la tête pour des trucs insignifiants :(
                        ( quoi, petite dérivation psychologique, ca fait pas de mal :-° )
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          20 août 2006 à 3:22:18

                          Incroyable je suis convaincu exelent systeme je t'engage !!

                          Si tu veux jte met ton copyright tu l'as bien mérité pour un si bo code.

                          corrige

                                      }
                                     
                                      $i++;
                                  }
                              }


                          doit donner cà =>

                                      }
                                     
                                      $i++;
                                  }


                          Sinon ca fait une erreur :)

                          Lol Yondaime joli pseudo :). Personnelement j'aime les sujets polimique et pertinents!
                          Et dont l'etude de la psycologie humaine :D:D:D

                          Il est vrai que certaine personne offre un interet peu comprehensible des choses les plus désinteressantes qu'il puisse exister mais que veux tu ? ^^
                          C'est l'homme !
                          • Partager sur Facebook
                          • Partager sur Twitter
                            20 août 2006 à 3:28:18

                            Arf, il y avait d'autre erreurs( et peut-être encor :-° )
                            Je les ai corrigé ;)

                            Beau code, beau code... que déloge :p
                            J'ai pas compris pourquoi tu disais que mon texte était en minuscule :o
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              20 août 2006 à 3:31:40

                              Il y a un truc qui me dérange dans ta fonction :D
                              Je sais pas quoi.
                              Peut-être l'indentation. Non.
                              Buh, tant pis.
                              Pas contre, 'précédant', ca le fait pas, c'est mieux 'précédent' :)
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                20 août 2006 à 3:32:10

                                Je vois ton texte en miniscule moi en mode 12pixel un truk comme ca !

                                Or le texte de Yondaime Est normalement exrit !

                                Je voulais demander... Vous êtes d'où ? il est 4heures du matin bientôt.

                                Edit: mdrr juste déranger => merci j'avais même pas remarquer le précédant :) Mais bon remarque pour le moment c'est le code qui m'interesse ;)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  20 août 2006 à 3:33:19

                                  Erf, désolé pour l'orthographe :euh:
                                  Pour l'indentation, relis le début de mon premier post ;) : Petit code rapide lol

                                  [EDIT] j'utilise la police optima, c'est peut-être pour sa...
                                  Moi j'habite à coté de Paris, il est 3h 36 min ;) ( roh, l'insomniaque ^^ )
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    20 août 2006 à 3:35:39

                                    Bahamut comment faire pour changer l'ordre décroissant!
                                    Et afficher suivant précédent ? :p

                                    lol moi suis à paris !

                                    Je me leve ( pdt les vaccances ) à 17-20 heures et me couche à 11 13 heures ^^:D
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      20 août 2006 à 3:36:30

                                      Moi, je suis de Belgique, il est 3h37 :D
                                      Et je pars demain en vacances ^^'
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        20 août 2006 à 3:40:39

                                        Les multiple possibilités sont :<citation nom="Pas de
                                        • pagination( x, y, z, 4, TRUE ) => affiche une liste avec précédent et suivant
                                        • pagination( x, y, z, 4, FALSE, TRUE ) => affiche une liste en ordre croissant
                                        • pagination( x, y, z, 4, TRUE, TRUE ) => affiche une liste en ordre croissant avec suivant et précédent
                                        Pfiuuou ^^
                                        En mot de fonction sa donne
                                        Array ( int page, int nb_page, string url[, int nb[, bool suiv[, bool ordre]]] ) ;)

                                        [EDIT] Même pas dans l'ordre ^^

                                        [REDIT] Bonne nuit ^^</span>
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          20 août 2006 à 3:45:40

                                          Lol ok ok :D pas de souci merci bcp pour ce code ;) tu es maintenant inscrit dans les page où se trouveron ce code :)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            20 août 2006 à 3:47:46

                                            Il n'y a pas de problème
                                            A vrai dire, je ne trouvais pas le moment pour montrer ce code ^^
                                            Donc merci à toi d'avoir pu me le permettre ;)
                                            Encore une fois bonne nuit :p

                                            [EDIT]( oui je sais, beaucoup d'édit ^^ ) Si tu as besoin d'aide pour ton site, les MPs existent ;)
                                            ++
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            Anonyme
                                              20 août 2006 à 3:48:31

                                              oui v me couché à 11 heures bonne nuit à vous !

                                              JE re ouvre le topic DSL !

                                              Oui je voulais proposer de l'amélioré le script ( malgré qu'il est asser avancer on peux l'amélioré encore !
                                              En trotre grace au javascript. On pourrait permetre lorsqu'on clique sur les trois petit point de choisir quel page afficher non?? ! Seulement en js je ne suis aps top .
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              page par page avancé

                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                              • Editeur
                                              • Markdown