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

157 lines
5.0KB

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