国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

makehtml_list_action.php 4.4KB

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