AphrontPagerView to create a control which allows '. 'users to paginate through large amounts of content.'; } public function renderExample() { $request = $this->getRequest(); $offset = (int)$request->getInt('offset'); $page_size = 20; $item_count = 173; $rows = array(); for ($ii = $offset; $ii < min($item_count, $offset + $page_size); $ii++) { $rows[] = array( 'Item #'.($ii + 1), ); } $table = new AphrontTableView($rows); $table->setHeaders( array( 'Item', )); $panel = new AphrontPanelView(); $panel->appendChild($table); $panel->appendChild( '

'. 'Use AphrontPagerView to render a pager element.'. '

'); $pager = new AphrontPagerView(); $pager->setPageSize($page_size); $pager->setOffset($offset); $pager->setCount($item_count); $pager->setURI($request->getRequestURI(), 'offset'); $panel->appendChild($pager); $panel->appendChild( '

'. 'You can show more or fewer pages of surrounding context.'. '

'); $many_pages_pager = new AphrontPagerView(); $many_pages_pager->setPageSize($page_size); $many_pages_pager->setOffset($offset); $many_pages_pager->setCount($item_count); $many_pages_pager->setURI($request->getRequestURI(), 'offset'); $many_pages_pager->setSurroundingPages(7); $panel->appendChild($many_pages_pager); $panel->appendChild( '

'. 'When it is prohibitively expensive or complex to attain a complete '. 'count of the items, you can select one extra item and set '. 'hasMorePages(true) if it exists, creating an inexact pager.'. '

'); $inexact_pager = new AphrontPagerView(); $inexact_pager->setPageSize($page_size); $inexact_pager->setOffset($offset); $inexact_pager->setHasMorePages($offset < ($item_count - $page_size)); $inexact_pager->setURI($request->getRequestURI(), 'offset'); $panel->appendChild($inexact_pager); return $panel; } }