PRO: Pagination by twig – 1 feed, many pages

This page demonstrates how you can paginate data. All data comes in 1 feed (see here for data in several feeds)

Create a new JCI-Template for that:

{% set noonpage = 20 %}
{% set noofitems = ( days | length ) %}
{% if urlparam.no %}{% set selno = urlparam.no %}{% else %}{% set selno = 1 %}{% endif %}

number of data-items: {{ noofitems  }} at <a href="https://api.json-content-importer.com/extra/paginationdata.php" target="_blank">https://api.json-content-importer.com/extra/paginationdata.php</a><br>
{% set noofpages = (noofitems /noonpage) | round(0, 'ceil') %} show on {{noofpages}} pages:

{% set start = noonpage *(selno-1) %}
{% set end= start + noonpage %} 

{% for i in 1..noofpages %} 
{% if i==selno %} 
<b>this is page: </b> {{selno}} ({{start+1}} - {{end}})
{% else %} 
<a href=?no={{i}}>{{i}}</a>
{% endif %} 
{% endfor %}
<hr>
{% if noofitems ==0 %} No data-items found {% endif %} 
<ul>
{% for day in days | slice(start, noonpage) %} 
<li>
{% set currno = start + loop.index0+1 %} {{currno}}. {{day.FORENAMES}} {{day.SURNAME}}
</li>
{% endfor %} 
</ul>

Shortcode:

[[jsoncontentimporterpro nameoftemplate=pagination]]

Example in action:

number of data-items: 165 at http://api.json-content-importer.com/extra/paginationdata.php
show on 9 pages: 1 2 3 4 5 6 7 this is page: 8 (141 – 160) 9
  • 141. Delgado Valdez
  • 142. Pena Rios
  • 143. Douglas Sandoval
  • 144. Barrett Hopkins
  • 145. Keller Guerrero
  • 146. Stanley Bates
  • 147. Alvarado Beck
  • 148. Ortega Wade
  • 149. Estrada Contreras
  • 150. Barnett Caldwell
  • 151. Santiago Lambert
  • 152. Powers Chambers
  • 153. Nunez Craig
  • 154. Leonard Lowe
  • 155. Rhodes Byrd
  • 156. Gregory Shelton
  • 157. Frazier Becker
  • 158. Maldonado Fleming
  • 159. Vega Sutton
  • 160. Cohen Jennings