国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

137 wiersze
5.7KB

  1. <?php
  2. /**
  3. * 标签管理
  4. *
  5. * @version $id:tag_test_action.php 23:07 2010年7月20日 tianya $
  6. * @package DedeBIZ.Administrator
  7. * @copyright Copyright (c) 2022 DedeBIZ.COM
  8. * @license GNU GPL v2 (https://www.dedebiz.com/license)
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__).'/config.php');
  12. CheckPurview('sys_Keyword');
  13. require_once(DEDEINC.'/datalistcp.class.php');
  14. $timestamp = time();
  15. if (empty($tag)) $tag = '';
  16. if (empty($action)) {
  17. $tag = HtmlReplace($tag, -1);
  18. $orderby = empty($orderby) ? 'id' : preg_replace("#[^a-z]#i", '', $orderby);
  19. $orderway = isset($orderway) && $orderway == 'asc' ? 'asc' : 'desc';
  20. if (!empty($tag)) $where = " WHERE tag like '%$tag%' OR id='$tag'";
  21. else $where = '';
  22. $neworderway = ($orderway == 'desc' ? 'asc' : 'desc');
  23. $query = "SELECT T.*,TI.* FROM `#@__tagindex` T LEFT JOIN `#@__tagindex_infos` TI ON TI.tagid=T.id $where ORDER BY $orderby $orderway";
  24. $dlist = new DataListCP();
  25. $tag = stripslashes($tag);
  26. $dlist->SetParameter("tag", $tag);
  27. $dlist->SetParameter("orderway", $orderway);
  28. $dlist->SetParameter("orderby", $orderby);
  29. $dlist->pagesize = 30;
  30. $dlist->SetTemplet(DEDEADMIN."/templets/tags_main.htm");
  31. $dlist->SetSource($query);
  32. $dlist->Display();
  33. exit();
  34. } else if ($action == 'update') {
  35. $tid = (empty($tid) ? 0 : intval($tid));
  36. $count = (empty($count) ? 0 : intval($count));
  37. $litpic = (empty($litpic) ? '' : HtmlReplace($litpic, -1));
  38. $title = (empty($title) ? '' : HtmlReplace($title, -1));
  39. $keywords = (empty($keywords) ? '' : HtmlReplace($keywords, -1));
  40. $description = (empty($description) ? '' : HtmlReplace($description, -1));
  41. if (empty($tid)) {
  42. die('请选择需要更新的标签');
  43. }
  44. $query = "UPDATE `#@__tagindex` SET `count`='$count',`title`='$title',`keywords`='$keywords',`description`='$description' WHERE id='$tid' ";
  45. $dsql->ExecuteNoneQuery($query);
  46. $row = $dsql->GetOne("SELECT COUNT(*) AS dd FROM `#@__tagindex_infos` WHERE tagid = $tid");
  47. if ($row['dd'] > 0) {
  48. $dsql->ExecuteNoneQuery("UPDATE `#@__tagindex_infos` SET `litpic`=='$litpic'");
  49. } else {
  50. $dsql->ExecuteNoneQuery("INSERT INTO `#@__tagindex_infos` (`tagid`,`litpic`) VALUES ('$tid','$litpic')");
  51. }
  52. echo "success";
  53. exit();
  54. } else if ($action == 'delete') {
  55. if (@is_array($ids)) {
  56. $stringids = implode(',', $ids);
  57. } else if (!empty($ids)) {
  58. $stringids = $ids;
  59. } else {
  60. ShowMsg('请选择需要删除的标签', '-1');
  61. exit();
  62. }
  63. $query = "DELETE FROM `#@__tagindex` WHERE id IN ($stringids)";
  64. if ($dsql->ExecuteNoneQuery($query)) {
  65. $query = "DELETE FROM `#@__taglist` WHERE tid IN ($stringids)";
  66. $dsql->ExecuteNoneQuery($query);
  67. $dsql->ExecuteNoneQuery("DELETE FROM `#@__tagindex_infos` WHERE tagid IN ($stringids)");
  68. ShowMsg("删除[$stringids]标签成功", 'tags_main.php');
  69. } else {
  70. ShowMsg("删除[$stringids]标签失败", 'tags_main.php');
  71. }
  72. exit();
  73. } else if ($action == 'fetch') {
  74. $wheresql = '';
  75. $start = isset($start) && is_numeric($start) ? $start : 0;
  76. $where = array();
  77. if (isset($startaid) && is_numeric($startaid) && $startaid > 0) {
  78. $where[] = " id>=$startaid ";
  79. } else {
  80. $startaid = 0;
  81. }
  82. if (isset($endaid) && is_numeric($endaid) && $endaid > 0) {
  83. $where[] = " id<=$endaid ";
  84. } else {
  85. $endaid = 0;
  86. }
  87. if (!empty($where)) {
  88. $wheresql = " WHERE arcrank>-1 AND ".implode(' AND ', $where);
  89. }
  90. $query = "SELECT id as aid,arcrank,typeid,keywords FROM `#@__archives` $wheresql LIMIT $start, 100";
  91. $dsql->SetQuery($query);
  92. $dsql->Execute();
  93. $complete = true;
  94. $now = time();
  95. while ($row = $dsql->GetArray()) {
  96. $aid = $row['aid'];
  97. $typeid = $row['typeid'];
  98. $arcrank = $row['arcrank'];
  99. $row['keywords'] = trim($row['keywords']);
  100. if ($row['keywords'] != '' && !preg_match("#,#", $row['keywords'])) {
  101. $keyarr = explode(' ', $row['keywords']);
  102. } else {
  103. $keyarr = explode(',', $row['keywords']);
  104. }
  105. foreach ($keyarr as $keyword) {
  106. $keyword = trim($keyword);
  107. if ($keyword != '' && strlen($keyword) < 24) {
  108. $keyword = addslashes($keyword);
  109. $row = $dsql->GetOne("SELECT id,total FROM `#@__tagindex` WHERE tag LIKE '$keyword'");
  110. if (is_array($row)) {
  111. $tid = $row['id'];
  112. $trow = $dsql->GetOne("SELECT COUNT(*) as dd FROM `#@__taglist` WHERE tag LIKE '$keyword'");
  113. if (intval($trow['dd']) != $row['total']) {
  114. $query = "UPDATE `#@__tagindex` SET `total`=".$trow['dd'].",uptime=$now WHERE id='$tid' ";
  115. $dsql->ExecuteNoneQuery($query);
  116. }
  117. } else {
  118. $query = "INSERT INTO `#@__tagindex` (`tag`,`count`,`total`,`weekcc`,`monthcc`,`weekup`,`monthup`,`addtime`,`uptime`) VALUES ('$keyword','0','1','0','0','$timestamp','$timestamp','$timestamp','$now');";
  119. $dsql->ExecuteNoneQuery($query);
  120. $tid = $dsql->GetLastID();
  121. }
  122. $query = "REPLACE INTO `#@__taglist` (`tid`,`aid`,`typeid`,`arcrank`,`tag`) VALUES ('$tid','$aid','$typeid','$arcrank','$keyword'); ";
  123. $dsql->ExecuteNoneQuery($query);
  124. }
  125. }
  126. $complete = FALSE;
  127. }
  128. if ($complete) {
  129. ShowMsg('完成标签获取', 'tags_main.php');
  130. exit();
  131. }
  132. $start = $start + 100;
  133. $goto = "tags_main.php?action=fetch&startaid=$startaid&endaid=$endaid&start=$start";
  134. ShowMsg('正在获取标签', $goto);
  135. exit();
  136. }
  137. ?>