Bonjour, j'avais implémenter dans ma librairie une fonction pour faire une pagination de manière simple.
Je me rend compte avec le recul que j'ai oublier quelque chose et je voulais avoir vos conseils et pourquoi pas un exemple.
En faite ma fonction retourne une pagination simple voir trop simple car si j'ai plus de 10000 pages qu'arrive t-il ?
En gros la pagination retourne:
1 2 3 4 5 6 7 5 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23> >>
C'est bien mais si trop de page, la numérotation continue et ce si j'ai 500 onglets dans celle-ci c'est illisible.
c'est du à une mauvaise interprétation de ma part dans la boucle.
Je souhaite avoir :
1 2 3 4 5 6 7 8 9 10 ... 20 21 22 23 > >>
Voici le code:
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
function pagerData($request,$as,$limit=10,$getpage,$url=false,$host=false,$rewrite=false,$namepage=null,$debug=false){
	  	$num = '';
	  	foreach ($request as $t) $num_pages = $t[$as];
	  	$num_pages = ceil($num_pages/$limit);
	  	$page = max($getpage, 1);
    	$page = min($getpage, $num_pages);
		if($getpage > $limit || $getpage <= 0) {
			$page = 1;
		}
		$debug?self::debugPager($page,$num_pages,$limit,$getpage):false;
		$offset = $getpage;
		if($offset > $num_pages)
		{
		  $offset = $num_pages;
		}
	    $offset = $this->pageOffset($limit,$getpage);
	    if ($rewrite == false) {
	    	$rewrite = 'page=';
	    }else{
	    	$rewrite = $namepage.'/';
	    }
	    if($getpage > 1)
		    {
		    	$num .= '<a href="'..$url.$rewrite.(min($getpage, 1)).$host.'">««</a>';
		        $num .= '<a href="'.$url.$rewrite.($getpage - 1).$host.'">«</a>';
		    }
	    if($num_pages>1){
			for($i=1; $i<=$num_pages; $i++){
				if($i==$getpage){
				   $num .= '<div class="current">'.$i.'</div>'; 
				}else{
				  $num .= '<a href="'.$url.$rewrite.$i.$host.'">'.$i.'</a>';  
				}
			}
		}
		if ($getpage < $num_pages)  {
		    $num .= '<a href="'.$url.$rewrite.($getpage + 1).$host.'">»</a>';
		    $num .= '<a href="'.$url.$rewrite.max($getpage, $num_pages).$host.'">»»</a>';
		}
		return $num;
	  }