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

120 lines
4.3KB

  1. <?php
  2. /**
  3. * 更新列表栏目操作
  4. *
  5. * @version $id:makehtml_list_action.php 11:09 2010年7月19日 tianya $
  6. * @package DedeBIZ.Administrator
  7. * @copyright Copyright (c) 2022 DedeBIZ.COM
  8. * @license https://www.dedebiz.com/license
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__)."/config.php");
  12. CheckPurview('sys_MakeHtml');
  13. require_once(DEDEINC."/channelunit.func.php");
  14. if (!isset($upnext)) $upnext = 1;
  15. if (empty($gotype)) $gotype = '';
  16. if (empty($gotype)) UpDateCatCache();
  17. require_once(DEDEDATA."/cache/inc_catalog_base.inc");
  18. if (empty($pageno)) $pageno = 0;
  19. if (empty($mkpage)) $mkpage = 1;
  20. if (empty($typeid)) $typeid = 0;
  21. if (!isset($uppage)) $uppage = 0;
  22. if (empty($maxpagesize)) $maxpagesize = 30;
  23. $adminID = $cuserLogin->getUserID();
  24. //检测获取所有栏目id,普通更新或一键更新时更新所有栏目
  25. if ($gotype == '' || $gotype == 'mkallct') {
  26. if ($upnext == 1 || $typeid == 0) {
  27. if ($typeid > 0) {
  28. $tidss = GetSonIds($typeid, 0);
  29. $idArray = explode(',', $tidss);
  30. } else {
  31. foreach ($cfg_Cs as $k => $v) $idArray[] = $k;
  32. }
  33. } else {
  34. $idArray = array();
  35. $idArray[] = $typeid;
  36. }
  37. }
  38. //一键更新带缓存的情况
  39. else if ($gotype == 'mkall') {
  40. $uppage = 1;
  41. $mkcachefile = DEDEDATA."/mkall_cache_{$adminID}.php";
  42. $idArray = array();
  43. if (file_exists($mkcachefile)) require_once($mkcachefile);
  44. }
  45. if (!$idArray) {
  46. ShowMsg("暂无栏目", "javascript:;");
  47. exit;
  48. }
  49. //当前更新栏目id
  50. $totalpage = count($idArray);
  51. if (isset($idArray[$pageno])) {
  52. $tid = $idArray[$pageno];
  53. } else {
  54. if ($gotype == '') {
  55. ShowMsg("完成所有栏目更新", "javascript:;");
  56. exit();
  57. } else if ($gotype == 'mkall' || $gotype == 'mkallct') {
  58. ShowMsg("完成所有栏目更新,数据已优化", "makehtml_all.php?action=make&step=10");
  59. exit();
  60. }
  61. }
  62. if ($pageno == 0 && $mkpage == 1) //清空缓存
  63. {
  64. $dsql->ExecuteNoneQuery("DELETE FROM `#@__arccache`");
  65. }
  66. $reurl = '';
  67. //更新数组所记录栏目
  68. if (!empty($tid)) {
  69. if (!isset($cfg_Cs[$tid])) {
  70. ShowMsg('没有该栏目数据,缓存文件没有更新,请检查是否有写入权限', 'javascript:;');
  71. exit();
  72. }
  73. if ($cfg_Cs[$tid][1] > 0) {
  74. require_once(DEDEINC."/archive/listview.class.php");
  75. $lv = new ListView($tid);
  76. $position = MfTypedir($lv->Fields['typedir']);
  77. } else {
  78. require_once(DEDEINC."/archive/sglistview.class.php");
  79. $lv = new SgListView($tid);
  80. }
  81. //这里统一统计
  82. $lv->CountRecord();
  83. if ($lv->TypeLink->TypeInfos['ispart'] == 0 && $lv->TypeLink->TypeInfos['isdefault'] != -1) $ntotalpage = $lv->TotalPage;
  84. else $ntotalpage = 1;
  85. //如果栏目的文档太多,分多批次更新
  86. if ($ntotalpage <= $maxpagesize || $lv->TypeLink->TypeInfos['ispart'] != 0 || $lv->TypeLink->TypeInfos['isdefault'] == -1) {
  87. $reurl = $lv->MakeHtml('', '', 0);
  88. $finishType = TRUE;
  89. } else {
  90. $reurl = $lv->MakeHtml($mkpage, $maxpagesize, 0);
  91. $finishType = FALSE;
  92. $mkpage = $mkpage + $maxpagesize;
  93. if ($mkpage >= ($ntotalpage + 1)) $finishType = TRUE;
  94. }
  95. }
  96. $nextpage = $pageno + 1;
  97. if ($nextpage >= $totalpage && $finishType) {
  98. if ($gotype == '') {
  99. if (empty($reurl)) {
  100. $reurl = '../apps/list.php?tid='.$tid;
  101. }
  102. ShowMsg("完成所有栏目更新,<a href='$reurl' target='_blank'>点击浏览</a>", "javascript:;");
  103. exit();
  104. } else if ($gotype == 'mkall' || $gotype == 'mkallct') {
  105. ShowMsg("完成所有栏目更新,数据已优化", "makehtml_all.php?action=make&step=10");
  106. exit();
  107. }
  108. } else {
  109. $typename = isset($cfg_Cs[$tid][3])? base64_decode($cfg_Cs[$tid][3]) : "";
  110. if ($finishType) {
  111. $gourl = "makehtml_list_action.php?gotype={$gotype}&uppage=$uppage&maxpagesize=$maxpagesize&typeid=$typeid&pageno=$nextpage";
  112. ShowMsg("更新{$typename}栏目[id:".$tid."],继续更新栏目", $gourl, 0, 100);
  113. exit();
  114. } else {
  115. $gourl = "makehtml_list_action.php?gotype={$gotype}&uppage=$uppage&mkpage=$mkpage&maxpagesize=$maxpagesize&typeid=$typeid&pageno=$pageno";
  116. ShowMsg("更新{$typename}栏目[id:".$tid."],继续更新栏目", $gourl, 0, 100);
  117. exit();
  118. }
  119. }
  120. ?>