func.php 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. function mymulti($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = FALSE, $simple = FALSE, $jsfunc = FALSE, $showid) {
  3. global $_G;
  4. $ajaxtarget = !empty($_GET['ajaxtarget']) ? " ajaxtarget=\"".dhtmlspecialchars($_GET['ajaxtarget'])."\" " : '';
  5. $a_name = '';
  6. if(strpos($mpurl, '#') !== FALSE) {
  7. $a_strs = explode('#', $mpurl);
  8. $mpurl = $a_strs[0];
  9. $a_name = '#'.$a_strs[1];
  10. }
  11. if($jsfunc !== FALSE) {
  12. $mpurl = 'javascript:'.$mpurl;
  13. $a_name = $jsfunc;
  14. $pagevar = '';
  15. } else {
  16. $pagevar = 'page=';
  17. }
  18. if(defined('IN_ADMINCP')) {
  19. $shownum = $showkbd = TRUE;
  20. $showpagejump = FALSE;
  21. $lang['prev'] = '&lsaquo;&lsaquo;';
  22. $lang['next'] = '&rsaquo;&rsaquo;';
  23. } else {
  24. $shownum = $showkbd = FALSE;
  25. $showpagejump = TRUE;
  26. if(defined('IN_MOBILE') && !defined('TPL_DEFAULT')) {
  27. $lang['prev'] = lang('core', 'prevpage');
  28. $lang['next'] = lang('core', 'nextpage');
  29. } else {
  30. $lang['prev'] = '&nbsp;&nbsp;';
  31. $lang['next'] = lang('core', 'nextpage');
  32. }
  33. $lang['pageunit'] = lang('core', 'pageunit');
  34. $lang['total'] = lang('core', 'total');
  35. $lang['pagejumptip'] = lang('core', 'pagejumptip');
  36. }
  37. if(defined('IN_MOBILE') && !defined('TPL_DEFAULT')) {
  38. $dot = '..';
  39. $page = intval($page) < 10 && intval($page) > 0 ? $page : 4 ;
  40. } else {
  41. $dot = '...';
  42. }
  43. $multipage = '';
  44. if($jsfunc === FALSE) {
  45. $mpurl .= strpos($mpurl, '?') !== FALSE ? '&amp;' : '?';
  46. }
  47. $realpages = 1;
  48. $_G['page_next'] = 0;
  49. $page -= strlen($curpage) - 1;
  50. if($page <= 0) {
  51. $page = 1;
  52. }
  53. if($num > $perpage) {
  54. $offset = floor($page * 0.5);
  55. $realpages = @ceil($num / $perpage);
  56. $curpage = $curpage > $realpages ? $realpages : $curpage;
  57. $pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;
  58. if($page > $pages) {
  59. $from = 1;
  60. $to = $pages;
  61. } else {
  62. $from = $curpage - $offset;
  63. $to = $from + $page - 1;
  64. if($from < 1) {
  65. $to = $curpage + 1 - $from;
  66. $from = 1;
  67. if($to - $from < $page) {
  68. $to = $page;
  69. }
  70. } elseif($to > $pages) {
  71. $from = $pages - $page + 1;
  72. $to = $pages;
  73. }
  74. }
  75. $_G['page_next'] = $to;
  76. $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="'.$mpurl.$pagevar.'1'.$a_name.'" class="first"'.$ajaxtarget.'>1 '.$dot.'</a>' : '').
  77. ($curpage > 1 && !$simple ? '<a href="'.$mpurl.$pagevar.($curpage - 1).$a_name.'" class="prev"'.$ajaxtarget.'>'.$lang['prev'].'</a>' : '');
  78. for($i = $from; $i <= $to; $i++) {
  79. $multipage .= $i == $curpage ? '<strong>'.$i.'</strong>' :
  80. '<a href="javascript:" onclick="ajaxget(\''.$mpurl.$pagevar.$i.($ajaxtarget && $i == $pages && $autogoto ? '#' : $a_name).'\',\''.$showid.'\');">'.$i.'</a>';
  81. }
  82. $multipage .= ($to < $pages ? '<a href="javascript:" onclick="ajaxget(\''.$mpurl.$pagevar.$pages.$a_name.'\',\''.$showid.'\');" class="last"'.$ajaxtarget.'>'.$dot.' '.$realpages.'</a>' : '').
  83. ($showpagejump && !$simple && !$ajaxtarget ? '<label><input type="text" name="custompage" class="px" size="2" title="'.$lang['pagejumptip'].'" value="'.$curpage.'" onkeydown="if(event.keyCode==13) {window.location=\''.$mpurl.$pagevar.'\'+this.value; doane(event);}" /><span title="'.$lang['total'].' '.$pages.' '.$lang['pageunit'].'"> / '.$pages.' '.$lang['pageunit'].'</span></label>' : '').
  84. ($curpage < $pages && !$simple ? '<a href="'.$mpurl.$pagevar.($curpage + 1).$a_name.'" class="nxt"'.$ajaxtarget.'>'.$lang['next'].'</a>' : '').
  85. ($showkbd && !$simple && $pages > $page && !$ajaxtarget ? '<kbd><input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {window.location=\''.$mpurl.$pagevar.'\'+this.value; doane(event);}" /></kbd>' : '');
  86. $multipage = $multipage ? '<div class="jlpg">'.($shownum && !$simple ? '<em>&nbsp;'.$num.'&nbsp;</em>' : '').$multipage.'</div>' : '';
  87. }
  88. $maxpage = $realpages;
  89. return $multipage;
  90. }
  91. ?>