public function PaginatedHeatmapsList() { $member = Member::currentUser(); $paginatedList = new PaginatedList(Heatmaps::get()->filter(array('MemberID' => $member->ID, 'Deleted' => 0))->sort('Created', 'DESC'), $this->request); if (isset($_GET['start'])) { if ($paginatedList->CurrentPage() > $paginatedList->TotalPages()) { $this->redirect($paginatedList->LastLink()); } } return $paginatedList; }
/** * Return all sitemaps * * @param null * @return ArrayList */ public static function get_sitemaps() { self::init_sitetree(); $sitemaps = new ArrayList(); if (count(self::$dataobjects) > 0) { foreach (self::$dataobjects as $class => $config) { $items = self::get_filtered_results($class); if ($items->Count() > 0) { $list = new PaginatedList($items); $list->setPageLength(1000); $pages = $list->TotalPages(); for ($x = 1; $x <= $pages; $x++) { $latest = $items->limit(1000, ($x - 1) * 1000)->Sort('LastEdited', 'DESC')->first(); $sitemaps->push(new ArrayData(array('ClassName' => $class, 'LastEdited' => date('Y-m-d', strtotime($latest->LastEdited)), 'Page' => $x == 1 ? false : $x))); } } } } return $sitemaps; }
public function testTotalPages() { $list = new PaginatedList(new ArrayList()); $list->setPageLength(1); $this->assertEquals(0, $list->TotalPages()); $list->setTotalItems(1); $this->assertEquals(1, $list->TotalPages()); $list->setTotalItems(5); $this->assertEquals(5, $list->TotalPages()); // Disable paging $list->setPageLength(0); $this->assertEquals(1, $list->TotalPages()); $list->setTotalItems(0); $this->assertEquals(0, $list->TotalPages()); }