[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorUIPagerExample extends PhabricatorUIExample { 4 5 public function getName() { 6 return 'Pager'; 7 } 8 9 public function getDescription() { 10 return hsprintf( 11 'Use <tt>AphrontPagerView</tt> to create a control which allows '. 12 'users to paginate through large amounts of content.'); 13 } 14 15 public function renderExample() { 16 17 $request = $this->getRequest(); 18 19 $offset = (int)$request->getInt('offset'); 20 $page_size = 20; 21 $item_count = 173; 22 23 $rows = array(); 24 for ($ii = $offset; $ii < min($item_count, $offset + $page_size); $ii++) { 25 $rows[] = array( 26 'Item #'.($ii + 1), 27 ); 28 } 29 30 $table = new AphrontTableView($rows); 31 $table->setHeaders( 32 array( 33 'Item', 34 )); 35 $panel = new AphrontPanelView(); 36 $panel->appendChild($table); 37 38 $panel->appendChild(hsprintf( 39 '<p class="phabricator-ui-example-note">'. 40 'Use <tt>AphrontPagerView</tt> to render a pager element.'. 41 '</p>')); 42 43 $pager = new AphrontPagerView(); 44 $pager->setPageSize($page_size); 45 $pager->setOffset($offset); 46 $pager->setCount($item_count); 47 $pager->setURI($request->getRequestURI(), 'offset'); 48 $panel->appendChild($pager); 49 50 $panel->appendChild(hsprintf( 51 '<p class="phabricator-ui-example-note">'. 52 'You can show more or fewer pages of surrounding context.'. 53 '</p>')); 54 55 $many_pages_pager = new AphrontPagerView(); 56 $many_pages_pager->setPageSize($page_size); 57 $many_pages_pager->setOffset($offset); 58 $many_pages_pager->setCount($item_count); 59 $many_pages_pager->setURI($request->getRequestURI(), 'offset'); 60 $many_pages_pager->setSurroundingPages(7); 61 $panel->appendChild($many_pages_pager); 62 63 $panel->appendChild(hsprintf( 64 '<p class="phabricator-ui-example-note">'. 65 'When it is prohibitively expensive or complex to attain a complete '. 66 'count of the items, you can select one extra item and set '. 67 '<tt>hasMorePages(true)</tt> if it exists, creating an inexact pager.'. 68 '</p>')); 69 70 $inexact_pager = new AphrontPagerView(); 71 $inexact_pager->setPageSize($page_size); 72 $inexact_pager->setOffset($offset); 73 $inexact_pager->setHasMorePages($offset < ($item_count - $page_size)); 74 $inexact_pager->setURI($request->getRequestURI(), 'offset'); 75 $panel->appendChild($inexact_pager); 76 77 return $panel; 78 } 79 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |