国内流行的内容管理系统(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.

81 lines
2.8KB

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