Experimental project

This is a sandbox project, which contains experimental code for developer use only.

Paging API tries to provide an intelligent paging system, that let's you browse through nodes (via previous - next links) after going to a node detail page from within a node overview.

Currently, the module provides support for Views & Apache Solr.

Usage scenario:

  • A user browse a list of news items in a View, or is presented a list of search results through Apache Solr
  • He clicks one of the items that interests him, and goes to it's node detail page
  • On that node page he sees a previous and next link that lets him browse the previous/next news item, search result, ...

Architecture:

This module tries to avoid the performance problems that would generally arise when you try to find out where in the result set of nodes a particular node is situated, in order to find the preceding and following node ID.
How this is (attempted to be) solved here:

If a context is reached where we want to use the Paging API (a View, Apachesolr search results page, ...), the module creates a fingerprint for that context, through hashing the important state info (e.g. Views arguments & filters, Apache Solr filters, sorting, keywords, ...).
At that point we store the set of node IDs that resulted from that page (e.g. first 10 nodes that are being displayed on page 1 of the View) in a cache table.

When the user goes to a node detail page, we retrieve the node ID array, so we can show a link to the previous and next node that was displayed on the overview page earlier.

Once the user reaches the last node of the cached results, this module will get the next page of results in the background. So in case of a View with 10 results per page, result 10 through 20 gets fetched.
This will allow the user to continuously browse all the nodes in the order relevant to the overview page, while the system is only progressively caching the whole array with node IDs, to avoid performance issues.

Project information

  • caution Minimally maintained
    Maintainers monitor issues, but fast responses are not guaranteed.
  • Module categories: Content Display
  • Created by svendecabooter on , updated