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

142 lines
4.3KB

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