Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Customising the CMS

Pagination for Multiple Page Types


4 Posts   2727 Views


19 February 2009 at 5:15pm (Last edited: 19 February 2009 5:19pm), Community Member, 16 Posts

Hi all,

I'm attempting to output some pagination for more than one page type. My function gets all the data as expected, but ".MoreThanOnePage" returns false. I followed the [url= in the wiki[/url] and it works for one page type, but not in this instance.

Here's what I have in my page controller:

function LatestNews($pageLimit=2) {

if(!isset($_GET['start']) || !is_numeric($_GET['start']) || (int)$_GET['start'] < 1) $_GET['start'] = 0;

$SQL_start = (int)$_GET['start'];

$articles = DataObject::get("Page", "`ClassName` IN ('DocPage', 'TechDocPage')");

$returnarticles = $articles->getRange($SQL_start, $pageLimit);

return $returnarticles;

And in my template I have the controller returning the page data as it should, but there is never any output for the pagination:

<% control LatestNews %>
<p>$DateAdded.Format(j F Y)</p>
<% end_control %>
<% if LatestNews.MoreThanOnePage %>
<% if LatestNews.PrevLink %>
<a href="$LatestNews.PrevLink">&lt;&lt; Prev</a> |
<% end_if %>

<% control LatestNews.Pages %>
<% if CurrentBool %>
<% else %>
<a href="$Link" title="Go to page $PageNum">$PageNum</a>
<% end_if %>
<% end_control %>

<% if LatestNews.NextLink %>
| <a href="$LatestNews.NextLink">Next &gt;&gt;</a>
<% end_if %>
<% end_if %>

I must be missing something in my data object call?


27 April 2010 at 5:14am Community Member, 15 Posts

I am having a similar problem - did you have any luck resolving?


27 April 2010 at 10:30am Community Member, 243 Posts

If you follow the pagination recipe, it is fairly straight forward, the SQL_Limit needs to go in the DataObject::get(), rather than getRange once you pull all of the pages out.


27 April 2010 at 8:07pm Community Member, 15 Posts

I was being a moron; hadn't updated my template page properly!! So I wasn't having a similar problem at all!