varias truncar texto suspensivos puntos parte palabra mostrar lineas cortar cortado con php pagination

truncar - Agregar puntos suspensivos en la paginación de PHP



truncar texto con puntos suspensivos (3)

Esto debería ser más que suficiente para comenzar, al menos,

$count = 7; // number to show // start at half threshold down from the current location. $number = $current - round($count/2); if( $number > 1 ) echo ''...''; else $ // increase to have number start at 1. for( $number; $number < $number + $count; $number++) { // your for loop as normal } if( $number < $total ) echo ''...'';

. //Prev . for($number = 1; $number <= $num_pages; $number++) { if($page == $number) { $navigator .= "<b>[$number]</b> "; } else { $navigator .= "<a href=''?c=".$_SESSION[''cID'']".&rows=".$per_page."&page=$number''>$number</a> "; } } . //Next .

Este es el fragmento que imprime el número de páginas.

Muestra de salida:

Anterior 1 2 3 4 [5] 6 7 8 9 10 Siguiente

5 es la página actual.

Problema: los números de página se muestran en secuencia sin restricciones. Si tengo 100 páginas, aparecen todos los números.

Pregunta: Necesito que mis números de búsqueda aparezcan de la siguiente manera ...

Supongamos que solo tenemos 7 ($ num_pages) páginas:

Anterior 1 2 [3] 4 5 6 7 Siguiente

Supongamos que tenemos 90 páginas:

[1] 2 3 4 5 6 7 ... 90 Siguiente

Supongamos que el usuario hizo clic en la 7ma página:

Anterior 1 ... 5 6 [7] 8 9 10 11 ... 90 Siguiente

Supongamos que el usuario hizo clic en la página 11:

Anterior 1 ... 9 10 [11] 12 13 14 15 ... 90 Siguiente

Supongamos que el usuario hizo clic en la 15ª página:

Anterior 1 ... 13 14 [15] 16 17 18 19 ... 90 Siguiente

Supongamos que el usuario hizo clic en la página 90:

Anterior 1 ... 84 85 86 87 88 89 [90]

Cualquier ayuda será apreciada.


$radius = 3; for($i = 1; $i <= $total; $i++){ if(($i >= 1 && $i <= $radius) || ($i > $current - $radius && $i < $current + $radius) || ($i <= $total && $i > $total - $radius)){ if($i == $current) echo "<b>".$i."</b>"; } elseif($i == $current - $radius || $i == $current + $radius) { echo "... "; } }


Una solución elegante para este tipo de cosas es usar "navegación de página logarítmica". Ver mi respuesta a esta pregunta (código PHP incluido):

¿Cómo hacer navegación de página para muchas, muchas páginas? Navegación de página logarítmica