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

203 lines
6.8KB

  1. <?php
  2. /**
  3. * 文档描述管理
  4. *
  5. * @version $Id: article_description_main.php 1 14:12 2010年7月12日Z tianya $
  6. * @package DedeCMS.Administrator
  7. * @copyright Copyright (c) 2007 - 2018, DesDev, Inc.
  8. * @copyright Copyright (c) 2020, DedeBIZ.COM
  9. * @license https://www.dedebiz.com/license/v6
  10. * @link https://www.dedebiz.com
  11. */
  12. @ob_start();
  13. @set_time_limit(3600);
  14. require_once(dirname(__FILE__)."/config.php");
  15. CheckPurview('sys_Keyword');
  16. if(empty($dojob)) $dojob = '';
  17. if($dojob=='')
  18. {
  19. include DedeInclude("templets/article_description_main.htm");
  20. exit();
  21. }
  22. else
  23. {
  24. if(empty($startdd)) $startdd = 0;
  25. if(empty($pagesize)) $pagesize = 100;
  26. if(empty($totalnum)) $totalnum = 0;
  27. if(empty($sid)) $sid = 0;
  28. if(empty($eid)) $eid = 0;
  29. if(empty($dojob)) $dojob = 'des';
  30. $table = preg_replace("#[^0-9a-zA-Z_\#@]#", "", $table);
  31. $field = preg_replace("#[^0-9a-zA-Z_\[\]]#", "", $field);
  32. $channel = intval($channel);
  33. if($dsize>250) $dsize = 250;
  34. $tjnum = 0;
  35. //获取自动摘要
  36. if($dojob=='des')
  37. {
  38. if(empty($totalnum))
  39. {
  40. $addquery = "";
  41. if($sid!=0)
  42. {
  43. $addquery .= " AND id>='$sid' ";
  44. }
  45. if($eid!=0)
  46. {
  47. $addquery .= " AND id<='$eid' ";
  48. }
  49. $tjQuery = "SELECT COUNT(*) AS dd FROM #@__archives WHERE channel='{$channel}' $addquery";
  50. $row = $dsql->GetOne($tjQuery);
  51. $totalnum = $row['dd'];
  52. }
  53. if($totalnum > 0)
  54. {
  55. $addquery = "";
  56. if($sid!=0)
  57. {
  58. $addquery .= " AND #@__archives.id>='$sid' ";
  59. }
  60. if($eid!=0)
  61. {
  62. $addquery .= " AND #@__archives.id<='$eid' ";
  63. }
  64. $fquery = "SELECT #@__archives.id,#@__archives.title,#@__archives.description,{$table}.{$field}
  65. FROM #@__archives LEFT JOIN {$table} ON {$table}.aid=#@__archives.id
  66. WHERE #@__archives.channel='{$channel}' $addquery LIMIT $startdd,$pagesize ; ";
  67. $dsql->SetQuery($fquery);
  68. $dsql->Execute();
  69. while($row=$dsql->GetArray())
  70. {
  71. $body = $row[$field];
  72. $description = $row['description'];
  73. if(strlen($description)>10 || $description=='-')
  74. {
  75. continue;
  76. }
  77. $bodytext = preg_replace("/#p#|#e#|副标题|分页标题/isU","",Html2Text($body));
  78. if(strlen($bodytext) < $msize)
  79. {
  80. continue;
  81. }
  82. $des = trim(addslashes(cn_substr($bodytext,$dsize)));
  83. if(strlen($des)<3)
  84. {
  85. $des = "-";
  86. }
  87. $dsql->ExecuteNoneQuery("UPDATE #@__archives SET description='{$des}' WHERE id='{$row['id']}';");
  88. }
  89. //返回进度信息
  90. $startdd = $startdd + $pagesize;
  91. if($totalnum > $startdd)
  92. {
  93. $tjlen = ceil( ($startdd/$totalnum) * 100 );
  94. } else {
  95. $tjlen=100;
  96. ShowMsg('完成所有任务', 'javascript:;');
  97. exit();
  98. }
  99. $dvlen = $tjlen * 2;
  100. $tjsta = "<div style='width:200;height:15;border:1px solid #898989;text-align:left'><div style='width:$dvlen;height:15;background-color:#829D83'></div></div>";
  101. $tjsta .= "<br/>完成处理文档总数的:$tjlen %,继续执行任务...";
  102. $nurl = "article_description_main.php?totalnum=$totalnum&startdd={$startdd}&pagesize=$pagesize&table={$table}&field={$field}&dsize={$dsize}&msize={$msize}&channel={$channel}&dojob={$dojob}";
  103. ShowMsg($tjsta,$nurl,0,500);
  104. exit();
  105. }
  106. else
  107. {
  108. ShowMsg('完成所有任务', 'javascript:;');
  109. exit();
  110. }
  111. }//获取自动摘要代码结束
  112. //更新自动分页
  113. if($dojob=='page')
  114. {
  115. require_once(DEDEADMIN."/inc/inc_archives_functions.php");
  116. $addquery = "";
  117. if($sid!=0)
  118. {
  119. $addquery .= " and aid>='$sid' ";
  120. }
  121. if($eid!=0)
  122. {
  123. $addquery .= " and aid<='$eid' ";
  124. }
  125. //统计记录总数
  126. if($totalnum==0)
  127. {
  128. $sql = "SELECT COUNT(*) AS dd FROM $table WHERE 1 $addquery";
  129. $row = $dsql->GetOne($sql);
  130. $totalnum = $row['dd'];
  131. }
  132. //获取记录,并分析
  133. if($totalnum > $startdd+$pagesize)
  134. {
  135. $limitSql = " LIMIT $startdd,$pagesize";
  136. }
  137. else if(($totalnum-$startdd)>0)
  138. {
  139. $limitSql = " LIMIT $startdd,".($totalnum - $startdd);
  140. }
  141. else
  142. {
  143. $limitSql = "";
  144. }
  145. $tjnum = $startdd;
  146. if($limitSql!="")
  147. {
  148. $fquery = "SELECT aid,$field FROM $table WHERE 1 $addquery $limitSql ;";
  149. $dsql->SetQuery($fquery);
  150. $dsql->Execute();
  151. while($row=$dsql->GetArray())
  152. {
  153. $tjnum++;
  154. $body = $row[$field];
  155. $aid = $row['aid'];
  156. if(strlen($body) < $msize)
  157. {
  158. continue;
  159. }
  160. if(!preg_match("/#p#/iU",$body))
  161. {
  162. $body = SpLongBody($body,$cfg_arcautosp_size*1024,"#p#分页标题#e#");
  163. $body = addslashes($body);
  164. $dsql->ExecuteNoneQuery("UPDATE $table SET $field='$body' WHERE aid='$aid' ; ");
  165. }
  166. }
  167. }//end if limit
  168. //返回进度提示
  169. if($totalnum>0)
  170. {
  171. $tjlen = ceil( ($tjnum/$totalnum) * 100 );
  172. }
  173. else
  174. {
  175. $tjlen=100;
  176. }
  177. $dvlen = $tjlen * 2;
  178. $tjsta = "<div style='width:200;height:15;border:1px solid #898989;text-align:left'><div style='width:$dvlen;height:15;background-color:#829D83'></div></div>";
  179. $tjsta .= "<br/>完成处理文档总数的:$tjlen %,继续执行任务...";
  180. if($tjnum < $totalnum)
  181. {
  182. $nurl = "article_description_main.php?totalnum=$totalnum&startdd=".($startdd+$pagesize)."&pagesize=$pagesize&table={$table}&field={$field}&dsize={$dsize}&msize={$msize}&channel={$channel}&dojob={$dojob}";
  183. ShowMsg($tjsta,$nurl,0,500);
  184. exit();
  185. }
  186. else
  187. {
  188. ShowMsg('完成所有任务', 'javascript:;');
  189. exit();
  190. }
  191. }//更新自动分页处理代码结束
  192. }