Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <style>
- .pageing{text-align:right;padding:3px;font-weight:bold;color:#879057;display:block;margin:5px 0;clear:both;}
- .pageing a{text-decoration:none;color:#7D0000;}
- /*.pageing a{text-decoration:none;padding:0px 4px;text-align:center;height:16px;line-height:15px;
- font-size:12px;font-weight:bold;font-family:Arial, Helvetica, sans-serif;border:1px solid #09C;
- background-color:#EDEFE0;color:#718224;border:1px solid #718224;}
- .pageing a.current{background-color:#718224;color:#EDEFE0;border:1px solid #718224;}
- .pageing a.current:hover{text-decoration:none;color:#EDEFE0;}
- .pageing a:hover{text-decoration:none;color:#718224;}*/
- /* /Page Navigator */
- .pageing .p_r{padding:0;margin:0;display:inline-block;}
- .pageing .p_l{padding:0;margin:0;display:inline-block;}
- .pageing .p_m{padding:2px 4px;margin:0;display:inline-block;border:1px solid #C6C6C6;}
- .p_norm ,.p_act ,.p_hover{}
- .p_norm .p_r{}
- .p_norm .p_l{}
- .p_norm .p_m{background:#F1F1F1;color:#7D0000}
- .p_norm:hover .p_r{}
- .p_norm:hover .p_l{}
- .p_norm:hover .p_m{background:#7D0000;}
- .p_norm:hover .p_m a{color:#FFFFFF}
- .p_hover .p_r{}
- .p_hover .p_l{}
- .p_hover .p_m{background:#fff;}
- .p_act .p_r{}
- .p_act .p_l{}
- .p_act .p_m{background:#000;color:#fff}
- .p_act a{text-decoration:none;color:#fff;}
- </style>
- <cffunction name="Pageing">
- <cfargument name="Query" required="yes" type="query">
- <cfargument name="MaxRow" default="50" type="numeric">
- <cfargument name="pageURL" required="yes" type="string">
- <cfset var local = StructNew()>
- <cfset local.q = arguments.Query>
- <cfset local.ret.startRow = 1>
- <cfset local.ret.endRow = local.q.recordCount>
- <cfset local.ret.offset = arguments.maxRow>
- <cfset local.ret.pageCount = Ceiling(local.q.recordCount / local.ret.offset)> <!--- 5.4 = 6 --->
- <cfset local.ret.HTML = "">
- <cfif IsDefined("URL.page") AND URL.page LTE local.ret.pageCount AND URL.page GT 0>
- <cfset local.ret.page = Val(url.page)>
- <cfelse>
- <cfset local.ret.page = 1>
- </cfif>
- <cfif NOT local.q.recordCount>
- <cfreturn local.ret>
- </cfif>
- <cfset local.ret.startRow = ((local.ret.page * arguments.maxRow) - arguments.maxRow) + 1>
- <!--- <cfset local.ret.endRow = (local.ret.page * arguments.maxRow)> --->
- <cfset local.ret.lastRow = (local.ret.page * arguments.maxRow)>
- <cfset local.ret.endRow = local.ret.lastRow>
- <cfif local.q.recordCount GT local.ret.offset>
- <cfif local.ret.lastRow GT local.q.recordCount>
- <cfset local.ret.lastRow = local.q.recordCount>
- <cfset local.ret.endRow = local.ret.lastRow>
- </cfif>
- <cfsavecontent variable="local.ret.HTML">
- <cfoutput>
- <div class="pageing">
- <!--- Get Median of the page --->
- <cfset median = 1>
- <cfset median_range = 5>
- <!--- display as median sets --->
- <cfif local.ret.page LT median_range>
- <cfset startpage = 1>
- <cfset endpage = median_range>
- <cfif endpage GT local.ret.pagecount>
- <cfset endpage = local.ret.pagecount>
- <cfset startpage = 1>
- </cfif>
- <cfelse>
- <cfset startpage = local.ret.page - 2>
- <cfset endpage = local.ret.page + 2>
- <cfif endpage GTE local.ret.pagecount>
- <cfset endpage = local.ret.pagecount>
- <cfset startpage = endpage - median_range + 1>
- </cfif>
- <!--- again a small manipulation to maintain the look and feel --->
- <cfif startpage EQ 3>
- <cfset startpage = 1>
- <cfset endpage = median_range>
- </cfif>
- <cfif endpage EQ local.ret.pagecount-1>
- <cfset endpage = endpage-1>
- </cfif>
- <!--- /again a small manipulation to maintain the look and feel --->
- </cfif>
- <cfset page = local.ret.page>
- <!--- <a href="##">Pages #page# of #local.ret.pagecount#</a> --->
- <cfif local.ret.page GT 1>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"><a href="#arguments.pageURL#&page=#page-1#">السابقة</a></span></span></span></span>
- </cfif>
- <cfif page GT median_range>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"><a href="#arguments.pageURL#&page=1">1</a></span></span></span></span>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"><a href="#arguments.pageURL#&page=2">2</a></span></span></span></span>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"> ... </span></span></span></span>
- </cfif>
- <cfloop from="#startpage#" to="#endpage#" index="j">
- <!--- #<div dir="ltr">#startpage# GT 0 AND #j# LTE #endpage#</div># --->
- <cfif j EQ page>
- <span class="p_act"><span class="p_r"><span class="p_l"><span class="p_m"><a href="javascript:void(0);" class="current">#j#</a></span></span></span></span>
- <cfelse>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"><a href="#arguments.pageURL#&page=#j#">#j#</a></span></span></span></span>
- </cfif>
- </cfloop>
- <cfif endpage LT local.ret.pagecount>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"> ... </span></span></span></span>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"><a href="#arguments.pageURL#&page=#local.ret.pagecount-1#">#local.ret.pagecount-1#</a></span></span></span></span>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"><a href="#arguments.pageURL#&page=#local.ret.pagecount#">#local.ret.pagecount#</a></span></span></span></span>
- </cfif>
- <cfif local.ret.page LT local.ret.pagecount>
- <span class="p_norm"><span class="p_r"><span class="p_l"><span class="p_m"><a href="#arguments.pageURL#&page=#page+1#">التالية</a></span></span></span></span>
- </cfif>
- </div>
- </cfoutput>
- </cfsavecontent>
- <cfset local.ret.HTML = REReplace(local.ret.HTML,">[[:space:]]+",">","ALL")>
- <cfset local.ret.HTML = REReplace(local.ret.HTML,"[[:space:]]+<","<","ALL")>
- <cfset local.ret.HTML = Replace(local.ret.HTML,"><","> <","ALL")>
- </cfif>
- <cfreturn local.ret>
- </cffunction>
Advertisement
Add Comment
Please, Sign In to add comment