国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.7KB

  1. <?php
  2. if (!defined('DEDEINC')) exit('dedebiz');
  3. /**
  4. *
  5. * @version $Id: arcpagelist.lib.php 1 9:29 2010年7月6日Z tianya $
  6. * @package DedeBIZ.Taglib
  7. * @copyright Copyright (c) 2022, DedeBIZ.COM
  8. * @license https://www.dedebiz.com/license
  9. * @link https://www.dedebiz.com
  10. */
  11. function lib_arcpagelist(&$ctag, &$refObj)
  12. {
  13. global $dsql;
  14. $attlist = "tagid|,style|1";
  15. FillAttsDefault($ctag->CAttribute->Items, $attlist);
  16. extract($ctag->CAttribute->Items, EXTR_SKIP);
  17. $row = $dsql->GetOne("SELECT * FROM `#@__arcmulti` WHERE tagid='$tagid'");
  18. if (is_array($row)) {
  19. $ids = explode(',', $row['arcids']);
  20. $totalnum = count($ids);
  21. $pagestr = '<div id="page_'.$tagid.'">';
  22. if ($row['pagesize'] < $totalnum) {
  23. $pagestr .= multipage($totalnum, 1, $row['pagesize'], $tagid);
  24. } else {
  25. $pagestr .= '共1页';
  26. }
  27. $pagestr .= '</div>';
  28. return $pagestr;
  29. } else {
  30. $pagestr = '<div id="page_'.$tagid.'">';
  31. $pagestr .= '没有检索到对应分页';
  32. $pagestr .= '</div>';
  33. return $pagestr;
  34. }
  35. }
  36. /**
  37. * 分页函数
  38. *
  39. * @access public
  40. * @param string $allItemTotal 所有记录
  41. * @param string $currPageNum 当前页面数
  42. * @param string $pageSize 显示条数
  43. * @param string $tagid 标签ID
  44. * @return string
  45. */
  46. function multipage($allItemTotal, $currPageNum, $pageSize, $tagid = '')
  47. {
  48. if ($allItemTotal == 0) return "";
  49. //计算总页数
  50. $pagesNum = ceil($allItemTotal / $pageSize);
  51. //第一页显示
  52. $firstPage = ($currPageNum <= 1) ? $currPageNum."</b>&lt;&lt;" : "<a href='javascript:multi(1,\"{$tagid}\")' title='第1页'>1&lt;&lt;</a>";
  53. //最后一页显示
  54. $lastPage = ($currPageNum >= $pagesNum) ? "&gt;&gt;".$currPageNum : "<a href='javascript:multi(".$pagesNum.",\"{$tagid}\")' title='第".$pagesNum."页'>&gt;&gt;".$pagesNum."</a>";
  55. //上一页显示
  56. $prePage = ($currPageNum <= 1) ? "上页" : "<a href='javascript:multi(".($currPageNum - 1).",\"{$tagid}\")' accesskey='p' title='上一页'>[上一页]</a>";
  57. //下一页显示
  58. $nextPage = ($currPageNum >= $pagesNum) ? "下页" : "<a href='javascript:multi(".($currPageNum + 1).",\"{$tagid}\")' title='下一页'>[下一页]</a>";
  59. //按页显示
  60. $listNums = "";
  61. for ($i = ($currPageNum - 4); $i < ($currPageNum + 9); $i++) {
  62. if ($i < 1 || $i > $pagesNum) continue;
  63. if ($i == $currPageNum) $listNums .= "<a href='javascript:void(0)' class='thislink'>".$i."</a>";
  64. else $listNums .= " <a href='javascript:multi(".$i.",\"{$tagid}\")' title='".$i."'>".$i."</a> ";
  65. }
  66. $returnUrl = $listNums;
  67. return $returnUrl;
  68. }