国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

102 linhas
4.0KB

  1. <?php
  2. /**
  3. * 生成文档操作
  4. *
  5. * @version $Id: makehtml_archives_action.php 1 9:11 2010年7月19日Z 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."/archive/archives.class.php");
  14. $est1 = ExecTime();
  15. $startid = (empty($startid) ? -1 : $startid);
  16. $endid = (empty($endid) ? 0 : $endid);
  17. $startdd = (empty($startdd) ? 0 : $startdd);
  18. $pagesize = (empty($pagesize) ? 30 : $pagesize);
  19. $totalnum = (empty($totalnum) ? 0 : $totalnum);
  20. $typeid = (empty($typeid) ? 0 : $typeid);
  21. $seltime = (empty($seltime) ? 0 : $seltime);
  22. $stime = (empty($stime) ? '' : $stime);
  23. $etime = (empty($etime) ? '' : $etime);
  24. $sstime = (empty($sstime) ? 0 : $sstime);
  25. $mkvalue = (empty($mkvalue) ? 0 : $mkvalue);
  26. //一键更新传递的参数
  27. if (!empty($uptype)) {
  28. if ($uptype != 'time') $startid = $mkvalue;
  29. else $t1 = $mkvalue;
  30. } else {
  31. $uptype = '';
  32. }
  33. //获取条件
  34. $idsql = '';
  35. $gwhere = ($startid == -1 ? " WHERE arcrank=0 " : " WHERE id>=$startid AND arcrank=0 ");
  36. if ($endid > $startid && $startid > 0) $gwhere .= " AND id <= $endid ";
  37. if ($typeid != 0) {
  38. $ids = GetSonIds($typeid);
  39. $gwhere .= " AND typeid in($ids) ";
  40. }
  41. if ($idsql == '') $idsql = $gwhere;
  42. if ($seltime == 1) {
  43. $t1 = GetMkTime($stime);
  44. $t2 = GetMkTime($etime);
  45. $idsql .= " And (senddate >= $t1 And senddate <= $t2) ";
  46. } else if (isset($t1) && is_numeric($t1)) {
  47. $idsql .= " And senddate >= $t1 ";
  48. }
  49. //统计记录总数
  50. if ($totalnum == 0) {
  51. $row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `#@__arctiny` $idsql");
  52. $totalnum = $row['dd'];
  53. //清空缓存
  54. $dsql->ExecuteNoneQuery("DELETE FROM `#@__arccache` ");
  55. }
  56. //获取记录,并生成HTML
  57. if ($totalnum > $startdd + $pagesize) {
  58. $limitSql = " LIMIT $startdd,$pagesize";
  59. } else {
  60. $limitSql = " LIMIT $startdd,".($totalnum - $startdd);
  61. }
  62. $tjnum = $startdd;
  63. if (empty($sstime)) $sstime = time();
  64. //如果生成数量大于500,并且没选栏目,按栏目排序生成
  65. if ($totalnum > 500 && empty($typeid)) {
  66. $dsql->Execute('out', "SELECT id FROM `#@__arctiny` $idsql ORDER BY typeid ASC $limitSql");
  67. } else {
  68. $dsql->Execute('out', "SELECT id FROM `#@__arctiny` $idsql $limitSql");
  69. }
  70. while ($row = $dsql->GetObject('out')) {
  71. $tjnum++;
  72. $id = $row->id;
  73. $ac = new Archives($id);
  74. $rurl = $ac->MakeHtml(0);
  75. }
  76. $t2 = ExecTime();
  77. $t2 = ($t2 - $est1);
  78. $ttime = time() - $sstime;
  79. $ttime = number_format(($ttime / 60), 2);
  80. //返回提示信息
  81. $tjlen = $totalnum > 0 ? ceil(($tjnum / $totalnum) * 100) : 100;
  82. $dvlen = $tjlen * 2;
  83. $tjsta = "<div style='width:260px;height:16px;border:1px solid #28a745;text-align:left'><div style='width:$dvlen%;height:16px;background:#28a745'></div></div>";
  84. $tjsta .= "<br>本次用时:".number_format($t2, 2).",总用时:$ttime 分钟,到达位置:".($startdd + $pagesize)."<br>完成创建文件总数的 $tjlen %";
  85. //速度测试
  86. if ($tjnum < $totalnum) {
  87. $nurl = "makehtml_archives_action.php?endid=$endid&startid=$startid&typeid=$typeid";
  88. $nurl .= "&totalnum=$totalnum&startdd=".($startdd + $pagesize)."&pagesize=$pagesize";
  89. $nurl .= "&seltime=$seltime&sstime=$sstime&stime=".urlencode($stime)."&etime=".urlencode($etime)."&uptype=$uptype&mkvalue=$mkvalue";
  90. ShowMsg($tjsta, $nurl, 0, 100);
  91. exit();
  92. } else {
  93. if ($typeid != '') {
  94. ShowMsg("生成文件:$totalnum,总用时:{$ttime} 分钟,现转向当前栏目更新", "makehtml_list_action.php?typeid=$typeid&uptype=all&maxpagesize=50&upnext=1");
  95. } else {
  96. if ($uptype == '') {
  97. ShowMsg("生成文件:$totalnum,总用时:{$ttime} 分钟,完成所有所有任务", "javascript:;");
  98. } else {
  99. ShowMsg("完成文档更新任务,现在开始进行主页更新", "makehtml_all.php?action=make&step=3&uptype=$uptype&mkvalue=$mkvalue");
  100. }
  101. }
  102. }