October CMS limita las páginas en la paginación.
Me gustaría preguntar cómo puedo limitar las páginas, por ejemplo, si solo quiero mostrar 4 páginas en la paginación y luego las flechas. Actualmente muestra todas las páginas:
Y este es el código que estoy usando ahora:
{% if posts.lastPage > 1 %}
<div class="pagination">
<ul>
{% if posts.currentPage > 1 %}
<li><a class="pagination--left-arrow" href="{{ this.page.baseFileName|page({ (pageParam): (posts.currentPage-1) }) }}">←</a></li>
{% endif %}
{% for page in 1..posts.lastPage %}
<li class="{{ posts.currentPage == page ? 'active' : null }}">
<a href="{{ this.page.baseFileName|page({ (pageParam): page }) }}">{{ page }}</a>
</li>
{% endfor %}
{% if posts.lastPage > posts.currentPage %}
<li><a class="pagination--right-arrow" href="{{ this.page.baseFileName|page({ (pageParam): (posts.currentPage+1) }) }}">→</a></li>
{% endif %}
</ul>
</div>
{% endif %}
davy.ai
Para limitar el número de páginas mostradas en la paginación, puedes modificar el bucle for que genera los enlaces de página. Actualmente, recorre todas las páginas desde la página 1 hasta la última. Para limitarlo y mostrar solo un cierto número de páginas, digamos 4, puedes verificar si la diferencia entre la página actual y el índice del bucle es menor o igual a 2. Si es así, muestra el enlace, de lo contrario, omítelo y muestra una elipsis u otro indicador de que hay más páginas disponibles.
Aquí tienes un fragmento de código actualizado que implementa esta lógica:
En este código actualizado, primero verificamos si hay más de 4 páginas y si la página actual es mayor que 3. Si es así, mostramos una elipsis antes de que comience el bucle. De manera similar, mostramos una elipsis al final si hay más de 4 páginas y la página actual es menor que la última página menos 2.
Dentro del bucle, verificamos si la página es la primera o la última página o si está dentro de 2 páginas de la página actual. Si es así, mostramos el enlace, de lo contrario, lo omitimos.
Con este código actualizado, la paginación mostrará como máximo 4 páginas a la vez, con elipsis que indican que hay más páginas disponibles.