[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /*+*********************************************************************************** 3 * The contents of this file are subject to the vtiger CRM Public License Version 1.0 4 * ("License"); You may not use this file except in compliance with the License 5 * The Original Code is: vtiger CRM Open Source 6 * The Initial Developer of the Original Code is vtiger. 7 * Portions created by vtiger are Copyright (C) vtiger. 8 * All Rights Reserved. 9 *************************************************************************************/ 10 11 /** 12 * Vtiger Paging Model Class 13 */ 14 class Vtiger_Paging_Model extends Vtiger_Base_Model { 15 16 const DEFAULT_PAGE = 1; 17 const PAGE_LIMIT = 20; 18 19 /** 20 * Function to get the current page number 21 * @return <Number> 22 */ 23 function getCurrentPage() { 24 $currentPage = $this->get('page'); 25 if(empty($currentPage)) { 26 $currentPage = self::DEFAULT_PAGE; 27 } 28 return $currentPage; 29 } 30 31 /** 32 * Function to get the Next page number 33 * @return <Number> 34 */ 35 function getNextPage() { 36 $currentPage = $this->get('page'); 37 if(empty($currentPage)) { 38 $currentPage = self::DEFAULT_PAGE; 39 } 40 return $currentPage+1; 41 } 42 43 /** 44 * Function to get the limit on the number of records per page 45 * @return <Number> 46 */ 47 function getPageLimit() { 48 $pageLimit = $this->get('limit'); 49 if(empty($pageLimit)) { 50 $pageLimit = vglobal('list_max_entries_per_page'); 51 if(empty($pageLimit)) { 52 $pageLimit = self::PAGE_LIMIT; 53 } 54 } 55 return $pageLimit; 56 } 57 58 function getStartIndex() { 59 $currentPage = $this->getCurrentPage(); 60 $pageLimit = $this->getPageLimit(); 61 return ($currentPage-1)*$pageLimit; 62 } 63 64 /** 65 * Retrieves start sequence number of records in the page 66 * @return <Integer> 67 */ 68 function getRecordStartRange() { 69 $rangeInfo = $this->getRecordRange(); 70 return $rangeInfo['start']; 71 } 72 73 /** 74 * Retrieves end sequence number of records in the page 75 * @return <Integer> 76 */ 77 function getRecordEndRange() { 78 $rangeInfo = $this->getRecordRange(); 79 return $rangeInfo['end']; 80 } 81 82 /** 83 * Retrieves start and end sequence number of records in the page 84 * @return <array> - array of values 85 * - start key which gives start sequence number 86 * - end key which gives end sequence number 87 */ 88 function getRecordRange() { 89 return $this->get('range'); 90 } 91 92 /** 93 * Function to specify if previous page exists 94 * @return <Boolean> - true/false 95 */ 96 public function isPrevPageExists() { 97 $prevPageExists = $this->get('prevPageExists'); 98 if(isset($prevPageExists)) { 99 return $prevPageExists; 100 } 101 return true; 102 } 103 104 /** 105 * Function to specify if next page exists 106 * @return <Boolean> - true/false 107 */ 108 public function isNextPageExists() { 109 $nextPageExists = $this->get('nextPageExists'); 110 if(isset($nextPageExists)) { 111 return $nextPageExists; 112 } 113 return true; 114 } 115 116 /** 117 * calculates page range 118 * @param <type> $recordList - list of records which is show in current page 119 * @return Vtiger_Paging_Model - 120 */ 121 function calculatePageRange($recordList) { 122 $rangeInfo = array(); 123 $recordCount = count($recordList); 124 $pageLimit = $this->getPageLimit(); 125 if( $recordCount > 0) { 126 //specifies what sequencce number of last record in prev page 127 $prevPageLastRecordSequence = (($this->getCurrentPage()-1)*$pageLimit); 128 129 $rangeInfo['start'] = $prevPageLastRecordSequence+1; 130 if($rangeInfo['start'] == 1){ 131 $this->set('prevPageExists', false); 132 } 133 //Have less number of records than the page limit 134 if($recordCount < $pageLimit) { 135 $this->set('nextPageExists', false); 136 $rangeInfo['end'] = $prevPageLastRecordSequence+$recordCount; 137 }else { 138 $rangeInfo['end'] = $prevPageLastRecordSequence+$pageLimit; 139 } 140 $this->set('range',$rangeInfo); 141 } else { 142 //Disable previous page only if page is first page and no records exists 143 if($this->getCurrentPage() == 1) { 144 $this->set('prevPageExists', false); 145 } 146 $this->set('nextPageExists', false); 147 148 } 149 return $this; 150 } 151 152 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |