PageRenderTime 45ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/PhpOnAzure.Web/data/class/SC_PageNavi.php

http://eccubeonwaz.codeplex.com
PHP | 147 lines | 82 code | 18 blank | 47 comment | 32 complexity | 1c3c95439f7c8981a87b78fc50c26a0d MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
  1. <?php
  2. /*
  3. * This file is part of EC-CUBE
  4. *
  5. * Copyright(c) 2000-2011 LOCKON CO.,LTD. All Rights Reserved.
  6. *
  7. * http://www.lockon.co.jp/
  8. *
  9. * This program is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU General Public License
  11. * as published by the Free Software Foundation; either version 2
  12. * of the License, or (at your option) any later version.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with this program; if not, write to the Free Software
  21. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  22. */
  23. /* ??????
  24. ?form???????????
  25. <input type="hidden" name="pageno" value="<!--{$tpl_pageno}-->">
  26. ????????????????
  27. $objPage->tpl_pageno = $_POST['pageno'];
  28. ?$func_name?????JavaScript??
  29. // ??????????
  30. function fnNaviPage(pageno) {
  31. document.form1['pageno'].value = pageno;
  32. document.form1.submit();
  33. }
  34. */
  35. class SC_PageNavi {
  36. var $now_page; // ????????
  37. var $max_page; // ????????
  38. var $start_row; // ??????
  39. var $strnavi; // ????????
  40. var $arrPagenavi = array(); // ???
  41. // ???????
  42. function SC_PageNavi($now_page, $all_row, $page_row, $func_name, $navi_max = NAVI_PMAX, $urlParam = '', $display_number = true) {
  43. $this->arrPagenavi['mode'] = 'search';
  44. //?????($now_page)???????????
  45. if (!preg_match("/^[[:digit:]]+$/", $now_page) || $now_page < 1 || strlen($now_page) == 0) {
  46. $this->now_page = 1;
  47. } else {
  48. $this->now_page = htmlspecialchars($now_page, ENT_QUOTES, CHAR_CODE);
  49. }
  50. $this->arrPagenavi['now_page'] = $this->now_page;
  51. // ????????
  52. $this->max_page = ceil($all_row/$page_row);
  53. // ???????????????????????????
  54. if ($this->max_page < $this->now_page) {
  55. $this->now_page = 1;
  56. }
  57. $this->start_row = ($this->now_page - 1) * $page_row;
  58. $this->all_row = $all_row;
  59. // ?????????
  60. if (!($this->start_row < $all_row && $this->start_row >= 0)) {
  61. $this->start_row = 0;
  62. }
  63. if ($all_row > 1) {
  64. //???????????
  65. $before = "";
  66. $next = "";
  67. if ($this->now_page > 1) {
  68. $this->arrPagenavi['before'] = $this->now_page - 1;
  69. $urlParamThis = str_replace('#page#', $this->arrPagenavi['before'], $urlParam);
  70. $urlParamThis = htmlentities($urlParamThis, ENT_QUOTES);
  71. $before = "<a href=\"?$urlParamThis\" onclick=\"$func_name('{$this->arrPagenavi['before']}'); return false;\">&lt;&lt;??</a> ";
  72. } else {
  73. $this->arrPagenavi['before'] = $this->now_page;
  74. }
  75. if ($this->now_page < $this->max_page) {
  76. $this->arrPagenavi['next'] = $this->now_page + 1;
  77. $urlParamThis = str_replace('#page#', $this->arrPagenavi['next'], $urlParam);
  78. $urlParamThis = htmlentities($urlParamThis, ENT_QUOTES);
  79. $next = " <a href=\"?$urlParamThis\" onclick=\"$func_name('{$this->arrPagenavi['next']}'); return false;\">??&gt;&gt;</a>";
  80. } else {
  81. $this->arrPagenavi['next'] = $this->now_page;
  82. }
  83. // ??????????????
  84. if ($navi_max == "" || $navi_max > $this->max_page) {
  85. // ??????????????????????????????
  86. $disp_max = $this->max_page;
  87. } else {
  88. // ???????????????????
  89. $disp_max = $this->now_page + $navi_max - 1;
  90. // ????????????????????????????
  91. if ($disp_max > $this->max_page) {
  92. $disp_max = $this->max_page;
  93. }
  94. }
  95. // ??????????????
  96. if ($navi_max == "" || $navi_max > $this->now_page) {
  97. // ???????????????????????????????
  98. $disp_min = 1;
  99. } else {
  100. // ??????-????????????
  101. $disp_min = $this->now_page - $navi_max + 1;
  102. }
  103. $this->arrPagenavi['arrPageno'] = array();
  104. $page_number = "";
  105. for ($i = $disp_min; $i <= $disp_max; $i++) {
  106. if ($i == $this->now_page) {
  107. $page_number .= "<li><strong>$i</strong></li>";
  108. } else {
  109. $urlParamThis = str_replace('#page#', $i, $urlParam);
  110. $urlParamThis = htmlentities($urlParamThis, ENT_QUOTES);
  111. $page_number .= "<li><a href=\"?$urlParamThis\" onclick=\"$func_name('$i'); return false;\">$i</a></li>";
  112. }
  113. $page_number .= ' ';
  114. // FIXME CSS ????
  115. $this->arrPagenavi['arrPageno'][$i] = $i;
  116. }
  117. if ($before && $next) {
  118. $this->strnavi = $before .(($display_number) ? $page_number : ' | ') .$next;
  119. } else if ($before || $next) {
  120. $this->strnavi = $before .(($display_number) ? $page_number : '') .$next;
  121. }
  122. } else {
  123. $this->arrPagenavi['arrPageno'][0] = 1;
  124. $this->arrPagenavi['before'] = 1;
  125. $this->arrPagenavi['next'] = 1;
  126. }
  127. }
  128. }
  129. ?>