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

105 lines
4.2KB

  1. <?php
  2. /**
  3. * 生成Tag操作
  4. *
  5. * @version $Id: makehtml_taglist_action.php 1 11:17 2020年8月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/taglist.class.php");
  14. if (empty($pageno)) $pageno = 0;
  15. if (empty($mktime)) $mktime = time();
  16. if (empty($mkpage)) $mkpage = 1;
  17. if (empty($upall)) $upall = 0; //是否更新全部 0为更新单个 1为更新全部
  18. if (empty($ctagid)) $ctagid = 0; //当前处理的tagid
  19. if (empty($maxpagesize)) $maxpagesize = 30;
  20. $startid = isset($startid) ? intval($startid) : 0;
  21. $endid = isset($endid) ? intval($endid) : 0;
  22. $tagid = isset($tagid) ? intval($tagid) : 0;
  23. $tagsdir = str_replace("{cmspath}", $cfg_cmspath, $cfg_tags_dir);
  24. // 生成
  25. if ($tagid > 0) {
  26. $upall = 0; //更新单个模式
  27. $ctagid = $tagid;
  28. } else {
  29. $upall = 1; //更新全部模式
  30. }
  31. $allfinish = false; //是否全部完成
  32. $gwhere = ($startid == 0 ? "WHERE 1=1" : "WHERE id>=$startid");
  33. if ($endid > $startid && $startid > 0) $gwhere .= " AND id <= $endid ";
  34. // 判断生成模式
  35. if ($upall == 1 && $ctagid == 0) {
  36. $rr = $dsql->GetOne("SELECT * FROM `#@__tagindex` $gwhere AND mktime <> {$mktime} LIMIT 1");
  37. if (isset($rr['id']) && $rr['id'] > 0) {
  38. $ctagid = $rr['id'];
  39. } else {
  40. $allfinish = true;
  41. }
  42. }
  43. if ($ctagid == 0 && $allfinish) {
  44. $dlist = new TagList('', 'tag.htm');
  45. $dlist->SetTagsDir($tagsdir);
  46. $dlist->MakeHtml(1, 10);
  47. $reurl = '..'.$tagsdir;
  48. ShowMsg("更新完成TAG,<a href='$reurl' target='_blank'>浏览标签</a>", "javascript:;");
  49. exit;
  50. }
  51. $tag = $dsql->GetOne("SELECT * FROM `#@__tagindex` WHERE id='$ctagid' LIMIT 0,1;");
  52. // 创建TAGS目录
  53. $tagsDir = str_replace("{cmspath}",$cfg_cmspath,$cfg_tags_dir);
  54. MkdirAll($cfg_basedir.$tagsDir, $cfg_dir_purview);
  55. if (is_array($tag) && count($tag) > 0) {
  56. $dlist = new TagList($tag['id'], 'taglist.htm');
  57. $dlist->CountRecord();
  58. $dlist->SetTagsDir($tagsdir);
  59. $ntotalpage = $dlist->TotalPage;
  60. if ($ntotalpage <= $maxpagesize) {
  61. $dlist->MakeHtml();
  62. $finishType = TRUE; //生成一个TAG完成
  63. } else {
  64. $reurl = $dlist->MakeHtml($mkpage, $maxpagesize);
  65. $finishType = FALSE;
  66. $mkpage = $mkpage + $maxpagesize;
  67. if ($mkpage >= ($ntotalpage + 1)) $finishType = TRUE;
  68. }
  69. $nextpage = $pageno + 1;
  70. $onefinish = $nextpage >= $ntotalpage && $finishType;
  71. if (($upall == 0 && $onefinish) || ($upall == 1 && $allfinish && $onefinish)) {
  72. $dlist = new TagList('', 'tag.htm');
  73. $dlist->SetTagsDir($tagsdir);
  74. $dlist->MakeHtml(1, 10);
  75. $reurl = '..'.$tagsdir;
  76. if ($upall == 1) {
  77. ShowMsg("完成TAG更新<a href='$reurl' target='_blank'>浏览标签</a>", "javascript:;");
  78. } else {
  79. $query = "UPDATE `#@__tagindex` SET mktime=uptime WHERE id='$ctagid' ";
  80. $dsql->ExecuteNoneQuery($query);
  81. $reurl .= '/'.$ctagid;
  82. ShowMsg("更新完成TAG:".$tag['tag'].",<a href='$reurl' target='_blank'>浏览标签</a>", "javascript:;");
  83. }
  84. exit();
  85. } else {
  86. if ($finishType) {
  87. //完成了一个跳到下一个
  88. if ($upall == 1) {
  89. $query = "UPDATE `#@__tagindex` SET mktime={$mktime} WHERE id='$ctagid' ";
  90. $dsql->ExecuteNoneQuery($query);
  91. $ctagid = 0;
  92. $nextpage = 0;
  93. }
  94. $gourl = "makehtml_taglist_action.php?maxpagesize=$maxpagesize&tagid=$tagid&pageno=$nextpage&upall=$upall&ctagid=$ctagid&startid=$startid&endid=$endid&mktime=$mktime";
  95. ShowMsg("成功生成TAG:".$tag['tag'].",继续进行操作", $gourl, 0, 100);
  96. exit();
  97. } else {
  98. //继续当前这个
  99. $gourl = "makehtml_taglist_action.php?mkpage=$mkpage&maxpagesize=$maxpagesize&tagid=$tagid&pageno=$pageno&upall=$upall&ctagid=$ctagid&startid=$startid&endid=$endid&mktime=$mktime";
  100. ShowMsg("成功生成TAG:".$tag['tag'].",继续进行操作", $gourl, 0, 100);
  101. exit();
  102. }
  103. }
  104. }