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

115 lines
4.4KB

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