Bonjour à tous, je n'ai pas trouvé de nom de sujet plus évocateur.
Je me suis un peu perdu sur une fonction qui permet d'écrire le nombre de page.
J'aimerais écrire quelque chose de la forme : n - n+1 - n+2 ... nmax-2 - nmax-1 - nmax.
Exemple, j'affiche 3news par page, j'ai 30 news, j'ai donc 10 pages.
Je veux écrire 1 - 2 - 3 ... Dernière si je suis sur la page 1
si je suis sur la page 4 : 3 - 4 - 5 ... Dernière
si je passe à la page 3 : 2 - 3 - 4 ... Dernière
et si je suis sur la dernière : première ... Dernière-1 - Dernière
J'ai commencé une fonction dans ma classe news mais elle ne marche pas très très bien. Quelqu'un pour me donner un coup de main ?
Voici mon code actuel :
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public function DonnerLiensPages() { /*A savoir Seuil = 2 NombreNews = nombre de news dans ma bdd NewsParPage = 3 PageCourante = ne numéro de la page surlaquelle nous sommes, récupéré par un $_GET['Page'] */ $NombrePages = ceil($this->NombreNews/$this->NewsParPage); $i = $this->PageCourante + $this->Seuil; $Courante = $this->PageCourante; //écriture du début sous la forme n - n+1 - n+2 if($NombrePages == 1) $this->EcrirePages .= '<a href="index.php5?Page=1">1</a>'; elseif($NombrePages == 2) $this->EcrirePages .= '<a href="index.php5?Page=1">1</a> - <a href="index.php5?Page=2">2</a>'; else { while($i >= $this->PageCourante) { $this->EcrirePages .= '<a href="index.php5?Page='.$Courante.'">'.$Courante.'</a> - '; $i--; $Courante++; } } //ajout du ... => n - n+1 - n+2 ... nmax-1 - nmax if($NombrePages > 3) { $this->EcrirePages .= '... - '; $Dernieres = $NombrePages - $this->Seuil; while($Dernieres <= $NombrePages) { if($Dernieres != $NombrePages) $this->EcrirePages .= '<a href="index.php5?Page='.$Dernieres.'">'.$Dernieres.'</a> - '; else $this->EcrirePages .= '<a href="index.php5?Page='.$Dernieres.'">'.$Dernieres.'</a>'; $Dernieres++; } } $this->tpl->assign('NewsPages',$this->EcrirePages); }
Partager