PageRenderTime 59ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/e/class/hinfofun.php

https://github.com/westeast/xwdede
PHP | 2207 lines | 1970 code | 30 blank | 207 comment | 275 complexity | d86fc904a6b6735f311b6f71a0ddbe47 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. //*************************** 信息 ***************************
  3. //增加投票
  4. function AddInfoVote($classid,$id,$add){
  5. global $empire,$dbtbpre,$class_r;
  6. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}enewsinfovote where id='$id' and classid='$classid' limit 1");
  7. $votename=$add['vote_name'];
  8. $votenum=$add['vote_num'];
  9. //统计总票数
  10. for($i=0;$i<count($votename);$i++)
  11. {
  12. $t_votenum+=$votenum[$i];
  13. }
  14. $t_votenum=(int)$t_votenum;
  15. $voteclass=(int)$add['vote_class'];
  16. $width=(int)$add['vote_width'];
  17. $height=(int)$add['vote_height'];
  18. $doip=(int)$add['dovote_ip'];
  19. $tempid=(int)$add['vote_tempid'];
  20. //附加字段
  21. $diyotherlink=(int)$add['info_diyotherlink'];
  22. $infouptime=0;
  23. if($add['info_infouptime'])
  24. {
  25. $infouptime=to_time($add['info_infouptime']);
  26. }
  27. $infodowntime=0;
  28. if($add['info_infodowntime'])
  29. {
  30. $infodowntime=to_time($add['info_infodowntime']);
  31. }
  32. if($num) //修改
  33. {
  34. $votetext=ReturnVote($add['vote_name'],$add['vote_num'],$add['delvote_id'],$add['vote_id'],1); //返回组合
  35. $sql=$empire->query("update {$dbtbpre}enewsinfovote set title='$add[vote_title]',votetext='$votetext',voteclass=$voteclass,doip=$doip,dotime='$add[vote_dotime]',tempid=$tempid,width=$width,height=$height,diyotherlink='$diyotherlink',infouptime='$infouptime',infodowntime='$infodowntime' where id='$id' and classid='$classid' limit 1");
  36. }
  37. else //增加
  38. {
  39. $votetext=ReturnVote($add['vote_name'],$add['vote_num'],$add['delvote_id'],$add['vote_id'],0); //返回组合
  40. if(!($votetext||$diyotherlink||$infouptime||$infodowntime))
  41. {
  42. return '';
  43. }
  44. $sql=$empire->query("insert into {$dbtbpre}enewsinfovote(id,classid,title,voteip,votetext,voteclass,doip,dotime,tempid,width,height,diyotherlink,infouptime,infodowntime) values('$id','$classid','$add[vote_title]','','$votetext',$voteclass,$doip,'$add[vote_dotime]',$tempid,$width,$height,'$diyotherlink','$infouptime','$infodowntime');");
  45. }
  46. $usql=$empire->query("update {$dbtbpre}ecms_".$class_r[$classid][tbname]." set votenum=$t_votenum where id='$id'");
  47. }
  48. //增加信息处理变量
  49. function DoPostInfoVar($add){
  50. global $class_r;
  51. //组合标题属性
  52. $add[titlecolor]=RepPhpAspJspcodeText($add[titlecolor]);
  53. $add['my_titlefont']=TitleFont($add[titlefont],$add[titlecolor]);
  54. //组合专题ID
  55. $add['my_ztid']=ZtId($add[ztid]);
  56. //其它变量
  57. $add[keyboard]=RepPhpAspJspcodeText(DoReplaceQjDh($add[keyboard]));
  58. $add[titleurl]=RepPhpAspJspcodeText($add[titleurl]);
  59. $add[checked]=(int)$add[checked];
  60. $add[istop]=(int)$add[istop];
  61. $add[dokey]=(int)$add[dokey];
  62. $add[isgood]=(int)$add[isgood];
  63. $add[groupid]=(int)$add[groupid];
  64. $add[newstempid]=(int)$add[newstempid];
  65. $add[firsttitle]=(int)$add[firsttitle];
  66. $add[userfen]=(int)$add[userfen];
  67. $add[closepl]=(int)$add[closepl];
  68. $add[ttid]=(int)$add[ttid];
  69. $add[onclick]=(int)$add[onclick];
  70. $add[totaldown]=(int)$add[totaldown];
  71. $add[infotags]=RepPhpAspJspcodeText(DoReplaceQjDh($add[infotags]));
  72. $add[ispic]=$add[titlepic]?1:0;
  73. $add[filename]=RepFilenameQz($add[filename],1);
  74. $add[newspath]=RepFilenameQz($add[newspath],1);
  75. return $add;
  76. }
  77. //相关链接ID处理
  78. function DoPostDiyOtherlinkID($keyid){
  79. if(!$keyid||$keyid==',')
  80. {
  81. return '';
  82. }
  83. $new_keyid='';
  84. $dh='';
  85. $r=explode(',',$keyid);
  86. $count=count($r);
  87. for($i=0;$i<$count;$i++)
  88. {
  89. $r[$i]=(int)$r[$i];
  90. if(!$r[$i])
  91. {
  92. continue;
  93. }
  94. $new_keyid.=$dh.$r[$i];
  95. $dh=',';
  96. }
  97. return $new_keyid;
  98. }
  99. //增加信息
  100. function AddNews($add,$userid,$username){
  101. global $empire,$class_r,$class_zr,$bclassid,$public_r,$dbtbpre,$emod_r;
  102. $add[classid]=(int)$add[classid];
  103. $userid=(int)$userid;
  104. $ztid=$add[ztid];
  105. if(!$add[title]||!$add[classid])
  106. {
  107. printerror("EmptyTitle","history.go(-1)");
  108. }
  109. //操作权限
  110. $doselfinfo=CheckLevel($userid,$username,$add[classid],"news");
  111. if(!$doselfinfo['doaddinfo'])//增加权限
  112. {
  113. printerror("NotAddInfoLevel","history.go(-1)");
  114. }
  115. $ccr=$empire->fetch1("select classid,modid,listdt,haddlist,sametitle,addreinfo,wburl,repreinfo from {$dbtbpre}enewsclass where classid='$add[classid]' and islast=1");
  116. if(!$ccr['classid']||$ccr[wburl])
  117. {
  118. printerror("ErrorUrl","history.go(-1)");
  119. }
  120. if($ccr['sametitle'])//验证标题重复
  121. {
  122. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where title='$add[title]' limit 1");
  123. if($num)
  124. {
  125. printerror("ReInfoTitle","history.go(-1)");
  126. }
  127. }
  128. $add=DoPostInfoVar($add);//返回变量
  129. $ret_r=ReturnAddF($add,$class_r[$add[classid]][modid],$userid,$username,0,0,1);//返回自定义字段
  130. $newspath=FormatPath($add[classid],$add[newspath],1);//查看目录是否存在,不存在则建立
  131. //签发
  132. $isqf=0;
  133. if($class_r[$add[classid]][wfid])
  134. {
  135. $add[checked]=0;
  136. $isqf=1;
  137. }
  138. $truetime=time();
  139. $lastdotime=$truetime;
  140. //返回关键字组合
  141. if($add['info_diyotherlink'])
  142. {
  143. $keyid=DoPostDiyOtherlinkID($add['info_keyid']);
  144. }
  145. else
  146. {
  147. $keyid=GetKeyid($add[keyboard],$add[classid],0,$class_r[$add[classid]][link_num]);
  148. }
  149. //主表
  150. $sql=$empire->query("insert into {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]."(classid,onclick,newspath,keyboard,keyid,userid,username,ztid,checked,istop,truetime,ismember,dokey,isgood,titlefont,titleurl,filename,groupid,newstempid,plnum,firsttitle,isqf,userfen,totaldown,closepl,havehtml,lastdotime,haveaddfen,infopfen,infopfennum,votenum,stb,ttid,infotags,ispic".$ret_r[fields].") values($add[classid],'$add[onclick]','$newspath','".addslashes($add[keyboard])."','$keyid',$userid,'".addslashes($username)."','$add[my_ztid]',$add[checked],'$add[istop]',$truetime,0,$add[dokey],$add[isgood],'".addslashes($add[my_titlefont])."','".addslashes($add[titleurl])."','$filename',$add[groupid],$add[newstempid],0,$add[firsttitle],'$isqf',$add[userfen],'$add[totaldown]',$add[closepl],0,$lastdotime,0,0,0,0,'".$ret_r[tb]."','$add[ttid]','".addslashes($add[infotags])."','$add[ispic]'".$ret_r[values].");");
  151. $id=$empire->lastid();
  152. //副表
  153. $fsql=$empire->query("insert into {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]."_data_".$ret_r['tb']."(id,classid".$ret_r[datafields].") values('$id','$add[classid]'".$ret_r[datavalues].");");
  154. //签发
  155. if($isqf==1)
  156. {
  157. InfoInsertToWorkflow($id,$add[classid],$class_r[$add[classid]][wfid],$userid,$username);
  158. }
  159. //更新附件表
  160. UpdateTheFile($id,$add['filepass']);
  161. //取第一张图作为标题图片
  162. if($add['getfirsttitlepic']&&empty($add['titlepic']))
  163. {
  164. $firsttitlepic=GetFpicToTpic($add['classid'],$id,$add['getfirsttitlepic'],$add['getfirsttitlespic'],$add['getfirsttitlespicw'],$add['getfirsttitlespich']);
  165. if($firsttitlepic)
  166. {
  167. $addtitlepic=",titlepic='".addslashes($firsttitlepic)."',ispic=1";
  168. }
  169. }
  170. //文件命名
  171. if($add['filename'])
  172. {
  173. $filename=$add['filename'];
  174. }
  175. else
  176. {
  177. $filename=ReturnInfoFilename($add[classid],$id,'');
  178. }
  179. $usql=$empire->query("update {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." set filename='$filename'".$addtitlepic." where id='$id'");
  180. //替换图片下一页
  181. if($add['repimgnexturl'])
  182. {
  183. UpdateImgNexturl($add[classid],$id);
  184. }
  185. //投票
  186. AddInfoVote($add['classid'],$id,$add);
  187. //TAGS
  188. if($add[infotags]&&$add[infotags]<>$add[oldinfotags])
  189. {
  190. $tagtime=empty($add[newstime])?time():to_time($add[newstime]);
  191. eInsertTags($add[infotags],$add['classid'],$id,$tagtime);
  192. }
  193. //增加信息是否生成文件
  194. if($ccr['addreinfo'])
  195. {
  196. $ar=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id='$id'");
  197. GetHtml($ar,'');
  198. }
  199. //生成上一篇
  200. if($ccr['repreinfo']&&$add[checked])
  201. {
  202. $prer=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id<$id and classid='$add[classid]' and checked=1 order by id desc limit 1");
  203. GetHtml($prer,'');
  204. }
  205. //生成栏目
  206. if($ccr[haddlist]&&$add[checked])
  207. {
  208. hAddListHtml($add[classid],$ccr['modid'],$ccr['haddlist'],$ccr['listdt']);//生成信息列表
  209. for($z=0;$z<count($ztid);$z++)//生成专题列表
  210. {
  211. ListHtml(intval($ztid[$z]),'',1);
  212. }
  213. }
  214. //同时发布
  215. $copyclassid=$add[copyclassid];
  216. $cpcount=count($copyclassid);
  217. if($cpcount)
  218. {
  219. $copyids=AddInfoToCopyInfo($add[classid],$id,$copyclassid,$userid,$username);
  220. if($copyids)
  221. {
  222. $empire->query("update {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." set copyids='$copyids' where id='$id'");
  223. }
  224. }
  225. if($sql)
  226. {
  227. //返回地址
  228. if($add['ecmsfrom']&&(stristr($add['ecmsfrom'],'ListNews.php')||stristr($add['ecmsfrom'],'ListAllInfo.php')))
  229. {
  230. $ecmsfrom=$add['ecmsfrom'];
  231. }
  232. else
  233. {
  234. $ecmsfrom=$add['ecmsnfrom']==1?"ListNews.php?bclassid=$add[bclassid]&classid=$add[classid]":"ListAllInfo.php?tbname=".$class_r[$add[classid]][tbname];
  235. }
  236. $GLOBALS['ecmsadderrorurl']=$ecmsfrom;
  237. insert_dolog("classid=$add[classid]<br>id=".$id."<br>title=".$add[title]);//操作日志
  238. printerror("AddNewsSuccess","AddNews.php?enews=AddNews&ecmsnfrom=$add[ecmsnfrom]&bclassid=$add[bclassid]&classid=$add[classid]");
  239. }
  240. else
  241. {
  242. printerror("DbError","");
  243. }
  244. }
  245. //修改信息
  246. function EditNews($add,$userid,$username){
  247. global $empire,$class_r,$class_zr,$bclassid,$public_r,$dbtbpre,$emod_r;
  248. $add[classid]=(int)$add[classid];
  249. $userid=(int)$userid;
  250. $ztid=$add[ztid];
  251. $add[id]=(int)$add[id];
  252. if(!$add[id]||!$add[title]||!$add[classid]||!$add[filename])
  253. {
  254. printerror("EmptyTitle","history.go(-1)");
  255. }
  256. $doselfinfo=CheckLevel($userid,$username,$add[classid],"news");//操作权限
  257. if(!$doselfinfo['doeditinfo'])//编辑权限
  258. {
  259. printerror("NotEditInfoLevel","history.go(-1)");
  260. }
  261. $ccr=$empire->fetch1("select classid,modid,listdt,haddlist,sametitle,addreinfo,wburl,repreinfo from {$dbtbpre}enewsclass where classid='$add[classid]' and islast=1");
  262. if(!$ccr['classid']||$ccr[wburl])
  263. {
  264. printerror("ErrorUrl","history.go(-1)");
  265. }
  266. $checkr=$empire->fetch1("select id,userid,username,ismember,stb,copyids,newspath,filename,isqf,checked from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id='$add[id]' and classid='$add[classid]'");
  267. if(!$checkr[id])
  268. {
  269. printerror("ErrorUrl","history.go(-1)");
  270. }
  271. if($doselfinfo['doselfinfo']&&($checkr[userid]<>$userid||$checkr[ismember]))//只能编辑自己的信息
  272. {
  273. printerror("NotDoSelfinfo","history.go(-1)");
  274. }
  275. if($ccr['sametitle'])//验证标题重复
  276. {
  277. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where title='$add[title]' and id<>$add[id] limit 1");
  278. if($num)
  279. {
  280. printerror("ReInfoTitle","history.go(-1)");
  281. }
  282. }
  283. $mid=$class_r[$add[classid]][modid];
  284. $pf=$emod_r[$mid]['pagef'];
  285. $add=DoPostInfoVar($add);//返回变量
  286. $ret_r=ReturnAddF($add,$class_r[$add[classid]][modid],$userid,$username,1,0,1);//返回自定义字段
  287. $deloldfile=0;
  288. if($add[groupid]<>$add[oldgroupid]||($checkr['checked']&&!$add[checked]))//改变文件权限
  289. {
  290. DelNewsFile($checkr[filename],$checkr[newspath],$add[classid],$add[$pf],$add[oldgroupid]);//删除旧的文件
  291. $deloldfile=1;
  292. }
  293. //签发
  294. $a='';
  295. if($class_r[$add[classid]][wfid]&&$checkr['isqf'])
  296. {
  297. $qfr=$empire->fetch1("select checktno from {$dbtbpre}enewswfinfo where id='$add[id]' and classid='$add[classid]' limit 1");
  298. if($qfr['checktno']=='100')//已通过
  299. {
  300. $aqf=",checked='$add[checked]'";
  301. }
  302. else
  303. {
  304. if($add[reworkflow])
  305. {
  306. InfoUpdateToWorkflow($add[id],$add[classid],$class_r[$add[classid]][wfid],$userid,$username);
  307. }
  308. $aqf='';
  309. }
  310. }
  311. else
  312. {
  313. $aqf=",checked='$add[checked]'";
  314. }
  315. //日期目录
  316. $updatefile='';
  317. if($add['newspath']!=$checkr[newspath])
  318. {
  319. $add[newspath]=FormatPath($add[classid],$add[newspath],1);//查看目录是否存在,不存在则建立
  320. $updatefile.=",newspath='$add[newspath]'";
  321. if($deloldfile==0)
  322. {
  323. DelNewsFile($checkr[filename],$checkr[newspath],$add[classid],$add[$pf],$add[oldgroupid]);//删除旧文件
  324. $deloldfile=1;
  325. }
  326. }
  327. //文件名
  328. if($add['filename']&&$add['filename']!=$checkr[filename])
  329. {
  330. $newfilename=$add['filename'];
  331. $updatefile.=",filename='$newfilename'";
  332. if($deloldfile==0)
  333. {
  334. DelNewsFile($checkr[filename],$checkr[newspath],$add[classid],$add[$pf],$add[oldgroupid]);//删除旧文件
  335. $deloldfile=1;
  336. }
  337. }
  338. $lastdotime=time();
  339. //返回关键字组合
  340. if($add['info_diyotherlink'])
  341. {
  342. $keyid=DoPostDiyOtherlinkID($add['info_keyid']);
  343. }
  344. else
  345. {
  346. $keyid=GetKeyid($add[keyboard],$add[classid],$add[id],$class_r[$add[classid]][link_num]);
  347. }
  348. //主表
  349. $sql=$empire->query("update {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." set classid='$add[classid]',keyboard='".addslashes($add[keyboard])."',keyid='$keyid',ztid='$add[my_ztid]',istop=$add[istop],dokey=$add[dokey],isgood=$add[isgood],titlefont='".addslashes($add[my_titlefont])."',titleurl='".addslashes($add[titleurl])."',groupid=$add[groupid],newstempid=$add[newstempid],firsttitle=$add[firsttitle],userfen=$add[userfen],closepl=$add[closepl],lastdotime=$lastdotime,ttid='$add[ttid]',onclick='$add[onclick]',totaldown='$add[totaldown]',infotags='".addslashes($add[infotags])."',ispic='$add[ispic]'".$updatefile.$aqf.$ret_r[values]." where id='$add[id]'");
  350. //副表
  351. $stb=$checkr['stb'];
  352. $fsql=$empire->query("update {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]."_data_".$stb." set classid='$add[classid]'".$ret_r[datavalues]." where id='$add[id]'");
  353. //取第一张图作为标题图片
  354. if($add['getfirsttitlepic']&&empty($add['titlepic']))
  355. {
  356. $firsttitlepic=GetFpicToTpic($add['classid'],$add['id'],$add['getfirsttitlepic'],$add['getfirsttitlespic'],$add['getfirsttitlespicw'],$add['getfirsttitlespich']);
  357. if($firsttitlepic)
  358. {
  359. $usql=$empire->query("update {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." set titlepic='".addslashes($firsttitlepic)."',ispic=1 where id='$add[id]'");
  360. }
  361. }
  362. //更新附件
  363. UpdateTheFileEdit($add['classid'],$add['id']);
  364. //替换图片下一页
  365. if($add['repimgnexturl'])
  366. {
  367. UpdateImgNexturl($add['classid'],$add['id']);
  368. }
  369. //投票
  370. AddInfoVote($add['classid'],$add['id'],$add);
  371. //TAGS
  372. if($add[infotags]&&$add[infotags]<>$add[oldinfotags])
  373. {
  374. $tagtime=empty($add[newstime])?time():to_time($add[newstime]);
  375. eInsertTags($add[infotags],$add['classid'],$add['id'],$tagtime);
  376. }
  377. //生成文件
  378. if($ccr['addreinfo'])
  379. {
  380. $ar=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id='$add[id]'");
  381. GetHtml($ar,'');
  382. }
  383. //生成上一篇
  384. if($ccr['repreinfo']&&($add[checked]||$add[checked]<>$add[oldchecked]))
  385. {
  386. $prer=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id<$add[id] and classid='$add[classid]' and checked=1 order by id desc limit 1");
  387. GetHtml($prer,'');
  388. }
  389. //生成栏目
  390. if($ccr['haddlist']&&($add[checked]||$add[checked]<>$add[oldchecked]))
  391. {
  392. hAddListHtml($add[classid],$ccr['modid'],$ccr['haddlist'],$ccr['listdt']);//生成信息列表
  393. for($z=0;$z<count($ztid);$z++)//生成专题列表
  394. {
  395. ListHtml(intval($ztid[$z]),'',1);
  396. }
  397. //改变专题
  398. $oldztid=$add[oldztid];
  399. $myztid=$add['my_ztid'];
  400. if($oldztid<>$myztid&&$oldztid)
  401. {
  402. $o_z=explode("|",$oldztid);
  403. for($z=1;$z<count($o_z)-1;$z++)
  404. {
  405. $cr=explode("|".$o_z[$z]."|",$myztid);
  406. if($cr==1)
  407. {
  408. ListHtml(intval($o_z[$z]),'',1);
  409. }
  410. }
  411. }
  412. }
  413. //同时更新
  414. if($checkr['copyids']&&$checkr['copyids']<>'1')
  415. {
  416. EditInfoToCopyInfo($add[classid],$add[id],$userid,$username);
  417. }
  418. else
  419. {
  420. $copyclassid=$add[copyclassid];
  421. $cpcount=count($copyclassid);
  422. if($cpcount)
  423. {
  424. $copyids=AddInfoToCopyInfo($add[classid],$add[id],$copyclassid,$userid,$username);
  425. if($copyids)
  426. {
  427. $empire->query("update {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." set copyids='$copyids' where id='$add[id]'");
  428. }
  429. }
  430. }
  431. if($sql)
  432. {
  433. //返回地址
  434. if($add['ecmsfrom']&&(stristr($add['ecmsfrom'],'ListNews.php')||stristr($add['ecmsfrom'],'ListAllInfo.php')))
  435. {
  436. $ecmsfrom=$add['ecmsfrom'];
  437. }
  438. else
  439. {
  440. $ecmsfrom="ListNews.php?bclassid=$add[bclassid]&classid=$add[classid]";
  441. }
  442. insert_dolog("classid=$add[classid]<br>id=".$add[id]."<br>title=".$add[title]);//操作日志
  443. printerror("EditNewsSuccess",$ecmsfrom);
  444. }
  445. else
  446. {
  447. printerror("DbError","history.go(-1)");
  448. }
  449. }
  450. //修改信息(快速)
  451. function EditInfoSimple($add,$userid,$username){
  452. global $empire,$class_r,$class_zr,$bclassid,$public_r,$dbtbpre,$emod_r;
  453. $add[classid]=(int)$add[classid];
  454. $userid=(int)$userid;
  455. $ztid=$add[ztid];
  456. $add[id]=(int)$add[id];
  457. $closeurl='info/EditInfoSimple.php?isclose=1&reload=1';
  458. if(!$add[id]||!$add[title]||!$add[classid])
  459. {
  460. printerror("EmptyTitle","history.go(-1)",8);
  461. }
  462. $doselfinfo=CheckLevel($userid,$username,$add[classid],"news");//操作权限
  463. if(!$doselfinfo['doeditinfo'])//编辑权限
  464. {
  465. printerror("NotEditInfoLevel","history.go(-1)",8);
  466. }
  467. $ccr=$empire->fetch1("select classid,modid,listdt,haddlist,sametitle,addreinfo,wburl,repreinfo from {$dbtbpre}enewsclass where classid='$add[classid]' and islast=1");
  468. if(!$ccr['classid']||$ccr[wburl])
  469. {
  470. printerror("ErrorUrl","history.go(-1)",8);
  471. }
  472. $checkr=$empire->fetch1("select id,userid,username,ismember,stb,copyids,newspath,filename,isqf,checked from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id='$add[id]' and classid='$add[classid]'");
  473. if(!$checkr[id])
  474. {
  475. printerror("ErrorUrl","history.go(-1)",8);
  476. }
  477. if($doselfinfo['doselfinfo']&&($checkr[userid]<>$userid||$checkr[ismember]))//只能编辑自己的信息
  478. {
  479. printerror("NotDoSelfinfo","history.go(-1)",8);
  480. }
  481. if($ccr['sametitle'])//验证标题重复
  482. {
  483. $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where title='$add[title]' and id<>$add[id] limit 1");
  484. if($num)
  485. {
  486. printerror("ReInfoTitle","history.go(-1)",8);
  487. }
  488. }
  489. $mid=$class_r[$add[classid]][modid];
  490. $pf=$emod_r[$mid]['pagef'];
  491. $add=DoPostInfoVar($add);//返回变量
  492. //签发
  493. $a="";
  494. if($class_r[$add[classid]][wfid]&&$checkr['isqf'])
  495. {
  496. $qfr=$empire->fetch1("select checktno from {$dbtbpre}enewswfinfo where id='$add[id]' and classid='$add[classid]' limit 1");
  497. if($qfr['checktno']=='100')//已通过
  498. {
  499. $aqf=",checked='$add[checked]'";
  500. }
  501. else
  502. {
  503. if($add[reworkflow])
  504. {
  505. InfoUpdateToWorkflow($add[id],$add[classid],$class_r[$add[classid]][wfid],$userid,$username);
  506. }
  507. $aqf='';
  508. }
  509. }
  510. else
  511. {
  512. $aqf=",checked='$add[checked]'";
  513. }
  514. $lastdotime=time();
  515. //发布时间
  516. $newstime=empty($add['newstime'])?time():to_time($add['newstime']);
  517. //主表
  518. $sql=$empire->query("update {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." set classid='$add[classid]',istop='$add[istop]',isgood='$add[isgood]',titlefont='".addslashes($add[my_titlefont])."',titleurl='".addslashes($add[titleurl])."',firsttitle='$add[firsttitle]',closepl='$add[closepl]',lastdotime='$lastdotime',ttid='$add[ttid]',onclick='$add[onclick]',totaldown='$add[totaldown]',ispic='$add[ispic]',title='".addslashes($add[title])."',titlepic='".addslashes($add[titlepic])."',newstime='$newstime'".$aqf." where id='$add[id]'");
  519. //更新附件
  520. UpdateTheFileEdit($add['classid'],$add['id']);
  521. //生成文件
  522. if($ccr['addreinfo'])
  523. {
  524. $ar=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id='$add[id]'");
  525. GetHtml($ar,'');
  526. }
  527. //生成上一篇
  528. if($ccr['repreinfo']&&($add[checked]||$add[checked]<>$add[oldchecked]))
  529. {
  530. $prer=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id<$add[id] and classid='$add[classid]' and checked=1 order by id desc limit 1");
  531. GetHtml($prer,'');
  532. }
  533. //生成栏目
  534. if($ccr['haddlist']&&($add[checked]||$add[checked]<>$add[oldchecked]))
  535. {
  536. hAddListHtml($add[classid],$ccr['modid'],$ccr['haddlist'],$ccr['listdt']);//生成信息列表
  537. }
  538. //同时更新
  539. if($checkr['copyids']&&$checkr['copyids']<>'1')
  540. {
  541. EditInfoToCopyInfo($add[classid],$add[id],$userid,$username);
  542. }
  543. if($sql)
  544. {
  545. //返回地址
  546. if($add['ecmsfrom']&&(stristr($add['ecmsfrom'],'ListNews.php')||stristr($add['ecmsfrom'],'ListAllInfo.php')))
  547. {
  548. $ecmsfrom=$add['ecmsfrom'];
  549. }
  550. else
  551. {
  552. $ecmsfrom="ListNews.php?bclassid=$add[bclassid]&classid=$add[classid]";
  553. }
  554. insert_dolog("classid=$add[classid]<br>id=".$add[id]."<br>title=".$add[title]);//操作日志
  555. printerror("EditNewsSuccess",$closeurl,8);
  556. }
  557. else
  558. {
  559. printerror("DbError","history.go(-1)",8);
  560. }
  561. }
  562. //删除信息
  563. function DelNews($id,$classid,$userid,$username){
  564. global $empire,$class_r,$class_zr,$bclassid,$public_r,$dbtbpre,$emod_r;
  565. $id=(int)$id;
  566. $classid=(int)$classid;
  567. if(!$id||!$classid)
  568. {
  569. printerror("NotDelNewsid","history.go(-1)");
  570. }
  571. $doselfinfo=CheckLevel($userid,$username,$classid,"news");//操作权限
  572. if(!$doselfinfo['dodelinfo'])//删除权限
  573. {
  574. printerror("NotDelInfoLevel","history.go(-1)");
  575. }
  576. $ccr=$empire->fetch1("select classid,modid,listdt,haddlist,repreinfo from {$dbtbpre}enewsclass where classid='$classid'");
  577. if(!$ccr['classid'])
  578. {
  579. printerror("ErrorUrl","history.go(-1)");
  580. }
  581. $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where id='$id' and classid='$classid'");
  582. if(!$r[classid])
  583. {
  584. printerror("ErrorUrl","history.go(-1)");
  585. }
  586. if($doselfinfo['doselfinfo']&&($r[userid]<>$userid||$r[ismember]))//只能编辑自己的信息
  587. {
  588. printerror("NotDoSelfinfo","history.go(-1)");
  589. }
  590. $mid=$class_r[$classid][modid];
  591. $tbname=$class_r[$classid][tbname];
  592. $pf=$emod_r[$mid]['pagef'];
  593. $stf=$emod_r[$mid]['savetxtf'];
  594. //分页字段
  595. if($pf)
  596. {
  597. if(strstr($emod_r[$mid]['tbdataf'],','.$pf.','))
  598. {
  599. $finfor=$empire->fetch1("select ".$pf." from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$id'");
  600. $r[$pf]=$finfor[$pf];
  601. }
  602. }
  603. //存文本
  604. if($stf)
  605. {
  606. $newstextfile=$r[$stf];
  607. $r[$stf]=GetTxtFieldText($r[$stf]);
  608. DelTxtFieldText($newstextfile);//删除文件
  609. }
  610. DelNewsFile($r[filename],$r[newspath],$classid,$r[$pf],$r[groupid]);//删除信息文件
  611. $sql=$empire->query("delete from {$dbtbpre}ecms_".$tbname." where id='$id'");
  612. $fsql=$empire->query("delete from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$id'");
  613. //删除其它表记录
  614. $delsql=$empire->query("delete from {$dbtbpre}enewswfinfo where id='$id' and classid='$r[classid]'");
  615. $delsql=$empire->query("delete from {$dbtbpre}enewswfinfolog where id='$id' and classid='$r[classid]'");
  616. $delsql=$empire->query("delete from {$dbtbpre}enewsinfovote where id='$id' and classid='$r[classid]'");
  617. $delsql=$empire->query("delete from {$dbtbpre}enewsdiggips where id='$id' and classid='$r[classid]'");
  618. DelNewsTheFile($id,$classid);//删除附件
  619. if($r['checked'])
  620. {
  621. //生成上一篇
  622. if($ccr['repreinfo'])
  623. {
  624. $prer=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id<$id and classid='$classid' and checked=1 order by id desc limit 1");
  625. GetHtml($prer,'');
  626. //下一篇
  627. $nextr=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id>$id and classid='$classid' and checked=1 order by id limit 1");
  628. if($nextr['id'])
  629. {
  630. GetHtml($nextr,'');
  631. }
  632. }
  633. hAddListHtml($classid,$ccr['modid'],$ccr['haddlist'],$ccr['listdt']);//生成信息列表
  634. if($r[ztid])//如果是专题
  635. {
  636. $z_r=explode("|".$r[ztid]."|",$r[ztid]);
  637. for($z=1;$z<count($z_r)-1;$z++)
  638. {
  639. ListHtml(intval($z_r[$z]),'',1);
  640. }
  641. }
  642. }
  643. //同步删除
  644. if($r['copyids']&&$r['copyids']<>'1')
  645. {
  646. DelInfoToCopyInfo($classid,$id,$r,$userid,$username);
  647. }
  648. if($sql)
  649. {
  650. insert_dolog("classid=$classid<br>id=".$id."<br>title=".$r[title]);//操作日志
  651. printerror("DelNewsSuccess",$_SERVER['HTTP_REFERER']);
  652. }
  653. else
  654. {
  655. printerror("ErrorUrl","history.go(-1)");
  656. }
  657. }
  658. //批量删除信息
  659. function DelNews_all($id,$classid,$userid,$username,$ecms=0){
  660. global $empire,$class_r,$class_zr,$public_r,$dbtbpre,$emod_r;
  661. $classid=(int)$classid;
  662. $count=count($id);
  663. if(!$count)
  664. {
  665. printerror("NotDelNewsid","history.go(-1)");
  666. }
  667. $doselfinfo=CheckLevel($userid,$username,$classid,"news");//操作权限
  668. if(!$doselfinfo['dodelinfo'])//删除权限
  669. {
  670. printerror("NotDelInfoLevel","history.go(-1)");
  671. }
  672. $mid=$class_r[$classid][modid];
  673. $tbname=$class_r[$classid][tbname];
  674. $pf=$emod_r[$mid]['pagef'];
  675. $stf=$emod_r[$mid]['savetxtf'];
  676. if($ecms==1)
  677. {
  678. $doctb="_doc";
  679. }
  680. for($i=0;$i<$count;$i++)
  681. {
  682. $add.="id='".intval($id[$i])."' or ";
  683. }
  684. $add=substr($add,0,strlen($add)-4);
  685. for($i=0;$i<$count;$i++)//删除信息文件
  686. {
  687. $id[$i]=intval($id[$i]);
  688. $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname.$doctb." where id='$id[$i]'");
  689. if($doselfinfo['doselfinfo']&&($r[userid]<>$userid||$r[ismember]))//只能编辑自己的信息
  690. {
  691. continue;
  692. }
  693. //分页字段
  694. if($pf)
  695. {
  696. if(strstr($emod_r[$mid]['tbdataf'],','.$pf.','))
  697. {
  698. if($ecms==1)
  699. {
  700. $finfor=$empire->fetch1("select ".$pf." from {$dbtbpre}ecms_".$tbname."_doc_data where id='$id[$i]'");
  701. }
  702. else
  703. {
  704. $finfor=$empire->fetch1("select ".$pf." from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$id[$i]'");
  705. }
  706. $r[$pf]=$finfor[$pf];
  707. }
  708. }
  709. //存文本
  710. if($stf)
  711. {
  712. $newstextfile=$r[$stf];
  713. $r[$stf]=GetTxtFieldText($r[$stf]);
  714. DelTxtFieldText($newstextfile);//删除文件
  715. }
  716. DelNewsFile($r[filename],$r[newspath],$r[classid],$r[$pf],$r[groupid]);
  717. DelNewsTheFile($id[$i],$r[classid]);//删除附件
  718. //删除副表
  719. if($ecms==0)
  720. {
  721. $empire->query("delete from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$id[$i]'");
  722. }
  723. //删除其它表记录
  724. $empire->query("delete from {$dbtbpre}enewswfinfo where id='$id[$i]' and classid='$r[classid]'");
  725. $empire->query("delete from {$dbtbpre}enewswfinfolog where id='$id[$i]' and classid='$r[classid]'");
  726. $empire->query("delete from {$dbtbpre}enewsinfovote where id='$id[$i]' and classid='$r[classid]'");
  727. $empire->query("delete from {$dbtbpre}enewsdiggips where id='$id[$i]' and classid='$r[classid]'");
  728. }
  729. //删除信息
  730. $sql=$empire->query("delete from {$dbtbpre}ecms_".$tbname.$doctb." where ".$add);
  731. if(empty($doctb))
  732. {
  733. $ccr=$empire->fetch1("select classid,modid,listdt,haddlist from {$dbtbpre}enewsclass where classid='$classid'");
  734. hAddListHtml($classid,$ccr['modid'],$ccr['haddlist'],$ccr['listdt']);//生成信息列表
  735. }
  736. else
  737. {
  738. $empire->query("delete from {$dbtbpre}ecms_".$tbname."_doc_data where ".$add);
  739. }
  740. if($sql)
  741. {
  742. insert_dolog("classid=".$classid."<br>classname=".$class_r[$classid][classname]);//操作日志
  743. printerror("DelNewsAllSuccess",$_SERVER['HTTP_REFERER']);
  744. }
  745. else
  746. {
  747. printerror("DbError","history.go(-1)");
  748. }
  749. }
  750. //刷新页面
  751. function AddInfoToReHtml($classid,$dore){
  752. global $class_r;
  753. hAddListHtml($classid,$class_r[$classid]['modid'],$dore,$class_r[$classid]['listdt']);//生成信息列表
  754. insert_dolog("classid=".$classid."<br>do=".$dore);//操作日志
  755. printerror('AddInfoToReHtmlSuccess','history.go(-1)');
  756. }
  757. //增加信息生成页面
  758. function hAddListHtml($classid,$mid,$qaddlist,$listdt){
  759. global $class_r;
  760. if($qaddlist==0)//不生成
  761. {
  762. return "";
  763. }
  764. elseif($qaddlist==1)//生成当前栏目
  765. {
  766. if(!$listdt)
  767. {
  768. $sonclass="|".$classid."|";
  769. hReClassHtml($sonclass);
  770. }
  771. }
  772. elseif($qaddlist==2)//生成首页
  773. {
  774. hReIndex();
  775. }
  776. elseif($qaddlist==3)//生成父栏目
  777. {
  778. $featherclass=$class_r[$classid]['featherclass'];
  779. if($featherclass&&$featherclass!="|")
  780. {
  781. hReClassHtml($featherclass);
  782. }
  783. }
  784. elseif($qaddlist==4)//生成当前栏目与父栏目
  785. {
  786. $featherclass=$class_r[$classid]['featherclass'];
  787. if(empty($featherclass))
  788. {
  789. $featherclass="|";
  790. }
  791. if(!$listdt)
  792. {
  793. $featherclass.=$classid."|";
  794. }
  795. hReClassHtml($featherclass);
  796. }
  797. elseif($qaddlist==5)//生成父栏目与首页
  798. {
  799. hReIndex();
  800. $featherclass=$class_r[$classid]['featherclass'];
  801. if($featherclass&&$featherclass!="|")
  802. {
  803. hReClassHtml($featherclass);
  804. }
  805. }
  806. elseif($qaddlist==6)//生成当前栏目、父栏目与首页
  807. {
  808. hReIndex();
  809. $featherclass=$class_r[$classid]['featherclass'];
  810. if(empty($featherclass))
  811. {
  812. $featherclass="|";
  813. }
  814. if(!$listdt)
  815. {
  816. $featherclass.=$classid."|";
  817. }
  818. hReClassHtml($featherclass);
  819. }
  820. }
  821. //增加信息生成栏目
  822. function hReClassHtml($sonclass){
  823. global $empire,$dbtbpre,$class_r;
  824. $r=explode("|",$sonclass);
  825. $count=count($r);
  826. for($i=1;$i<$count-1;$i++)
  827. {
  828. //终极栏目
  829. if($class_r[$r[$i]]['islast'])
  830. {
  831. if(!$class_r[$r[$i]]['listdt'])
  832. {
  833. ListHtml($r[$i],'',0,$userlistr);
  834. }
  835. }
  836. elseif($class_r[$r[$i]]['islist']==1)//列表式父栏目
  837. {
  838. if(!$class_r[$r[$i]]['listdt'])
  839. {
  840. ListHtml($r[$i],'',3);
  841. }
  842. }
  843. elseif($class_r[$r[$i]]['islist']==3)//栏目绑定信息
  844. {
  845. ReClassBdInfo($r[$i]);
  846. }
  847. else//父栏目
  848. {
  849. $cr=$empire->fetch1("select classtempid from {$dbtbpre}enewsclass where classid='$r[$i]'");
  850. $classtemp=$class_r[$r[$i]]['islist']==2?GetClassText($r[$i]):GetClassTemp($cr['classtempid']);
  851. NewsBq($r[$i],$classtemp,0,0);
  852. }
  853. }
  854. }
  855. //增加信息生成首页
  856. function hReIndex(){
  857. $indextemp=GetIndextemp();
  858. NewsBq($classid,$indextemp,1,0);
  859. }
  860. //发布同时复制
  861. function AddInfoToCopyInfo($classid,$id,$to_classid,$userid,$username){
  862. global $empire,$public_r,$class_r,$dbtbpre,$emod_r;
  863. $classid=(int)$classid;
  864. $id=(int)$id;
  865. $cr=$to_classid;
  866. $count=count($cr);
  867. if(empty($classid)||empty($id)||empty($count))
  868. {
  869. return '';
  870. }
  871. $mid=$class_r[$classid][modid];
  872. $tbname=$class_r[$classid][tbname];
  873. $stf=$emod_r[$mid]['savetxtf'];
  874. //主表
  875. $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id'");
  876. if(empty($r['id']))
  877. {
  878. return '';
  879. }
  880. //副表
  881. if($emod_r[$mid]['tbdataf']&&$emod_r[$mid]['tbdataf']<>',')
  882. {
  883. $selectdataf=substr($emod_r[$mid]['tbdataf'],1,-1);
  884. $fr=$empire->fetch1("select ".$selectdataf." from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$id'");
  885. $r=array_merge($r,$fr);
  886. }
  887. if($stf)//存放文本
  888. {
  889. $r[newstext_url]=$r[$stf];
  890. $r[$stf]=GetTxtFieldText($r[$stf]);
  891. }
  892. $ids=',';
  893. for($i=0;$i<$count;$i++)
  894. {
  895. $newclassid=(int)$cr[$i];
  896. if(!$newclassid||!$class_r[$newclassid][islast]||$mid<>$class_r[$newclassid][modid]||$newclassid==$classid)
  897. {
  898. continue;
  899. }
  900. //查看目录是否存在,不存在则建立
  901. $newspath=FormatPath($newclassid,"",0);
  902. $newstempid=0;
  903. $copyids='1';
  904. //返回自定义字段
  905. $ret_r=ReturnAddF($r,$mid,$userid,$username,9,1,0);
  906. if($class_r[$newclassid][wfid])
  907. {
  908. $checked=0;
  909. $isqf=1;
  910. }
  911. else
  912. {
  913. $checked=$class_r[$newclassid][checked];
  914. $isqf=0;
  915. }
  916. $checked=(int)$checked;
  917. //主表
  918. $empire->query("insert into {$dbtbpre}ecms_".$tbname."(classid,onclick,newspath,keyboard,keyid,userid,username,ztid,checked,truetime,ismember,dokey,isgood,titlefont,titleurl,filename,groupid,newstempid,plnum,firsttitle,isqf,userfen,totaldown,closepl,havehtml,lastdotime,haveaddfen,infopfen,infopfennum,votenum,stb,copyids,ttid,infotags,ispic".$ret_r[fields].") values('$newclassid',0,'$newspath','".StripAddsData($r[keyboard])."','$r[keyid]','$r[userid]','".StripAddsData($r[username])."','',$checked,'$r[truetime]',0,$r[dokey],0,'".StripAddsData($r[titlefont])."','".StripAddsData($r[titleurl])."','$filename',$r[groupid],'".$newstempid."',0,0,'$isqf',$r[userfen],0,$r[closepl],$r[havehtml],$r[truetime],0,0,0,0,'$ret_r[tb]','$copyids','$r[ttid]','','$r[ispic]'".$ret_r[values].");");
  919. $l_id=$empire->lastid();
  920. //副表
  921. $empire->query("insert into {$dbtbpre}ecms_".$tbname."_data_".$ret_r[tb]."(id,classid".$ret_r[datafields].") values('$l_id','$newclassid'".$ret_r[datavalues].");");
  922. //签发
  923. if($isqf==1)
  924. {
  925. InfoInsertToWorkflow($l_id,$newclassid,$class_r[$newclassid][wfid],$userid,$username);
  926. }
  927. //文件命名
  928. $filename=ReturnInfoFilename($newclassid,$l_id,$r[filenameqz]);
  929. $empire->query("update {$dbtbpre}ecms_".$tbname." set filename='$filename' where id='$l_id'");
  930. //生成信息文件
  931. $addr=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$l_id'");
  932. GetHtml($addr,'');
  933. $ids.=$l_id.',';
  934. }
  935. if($ids==',')
  936. {
  937. $ids='';
  938. }
  939. return $ids;
  940. }
  941. //发布同步修改
  942. function EditInfoToCopyInfo($classid,$id,$userid,$username){
  943. global $empire,$public_r,$class_r,$dbtbpre,$emod_r;
  944. $classid=(int)$classid;
  945. $id=(int)$id;
  946. if(empty($classid)||empty($id))
  947. {
  948. return '';
  949. }
  950. $mid=$class_r[$classid][modid];
  951. $tbname=$class_r[$classid][tbname];
  952. $stf=$emod_r[$mid]['savetxtf'];
  953. //主表
  954. $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id'");
  955. $cr=explode(',',$r[copyids]);
  956. $count=count($cr);
  957. if(empty($r['id'])||$count<3)
  958. {
  959. return '';
  960. }
  961. //副表
  962. if($emod_r[$mid]['tbdataf']&&$emod_r[$mid]['tbdataf']<>',')
  963. {
  964. $selectdataf=substr($emod_r[$mid]['tbdataf'],1,-1);
  965. $fr=$empire->fetch1("select ".$selectdataf." from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$id'");
  966. $r=array_merge($r,$fr);
  967. }
  968. if($stf)//存放文本
  969. {
  970. $r[newstext_url]=$r[$stf];
  971. $r[$stf]=GetTxtFieldText($r[$stf]);
  972. }
  973. for($i=1;$i<$count-1;$i++)
  974. {
  975. $infoid=(int)$cr[$i];
  976. if(empty($infoid))
  977. {
  978. continue;
  979. }
  980. if($stf)
  981. {
  982. if(strstr($emod_r[$mid]['tbdataf'],','.$stf.','))
  983. {
  984. $infor=$empire->fetch1("select stb from {$dbtbpre}ecms_".$tbname." where id='$infoid'");
  985. if(!$infor[stb])
  986. {
  987. continue;
  988. }
  989. $infodr=$empire->fetch1("select ".$stf." from {$dbtbpre}ecms_".$tbname."_data_".$infor[stb]." where id='$infoid'");
  990. $r[newstext_url]=$infodr[$stf];
  991. }
  992. else
  993. {
  994. $infor=$empire->fetch1("select ".$stf.",stb from {$dbtbpre}ecms_".$tbname." where id='$infoid'");
  995. if(!$infor[stb])
  996. {
  997. continue;
  998. }
  999. $r[newstext_url]=$infor[$stf];
  1000. }
  1001. }
  1002. else
  1003. {
  1004. $infor=$empire->fetch1("select stb from {$dbtbpre}ecms_".$tbname." where id='$infoid'");
  1005. if(!$infor[stb])
  1006. {
  1007. continue;
  1008. }
  1009. }
  1010. //返回自定义字段
  1011. $ret_r=ReturnAddF($r,$mid,$userid,$username,8,1,0);
  1012. //主表
  1013. $empire->query("update {$dbtbpre}ecms_".$tbname." set keyboard='".StripAddsData($r[keyboard])."',keyid='$r[keyid]',checked=$r[checked],dokey=$r[dokey],titlefont='".StripAddsData($r[titlefont])."',titleurl='".StripAddsData($r[titleurl])."',groupid=$r[groupid],userfen=$r[userfen],closepl=$r[closepl],lastdotime=$r[lastdotime],ttid='$r[ttid]',ispic='$r[ispic]'".$ret_r[values]." where id='$infoid'");
  1014. //副表
  1015. $empire->query("update {$dbtbpre}ecms_".$tbname."_data_".$ret_r[tb]." set id='$infoid'".$ret_r[datavalues]." where id='$infoid'");
  1016. //生成信息文件
  1017. $addr=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$infoid'");
  1018. GetHtml($addr,'');
  1019. }
  1020. }
  1021. //发布同步删除
  1022. function DelInfoToCopyInfo($classid,$id,$r,$userid,$username){
  1023. global $empire,$public_r,$class_r,$dbtbpre,$emod_r;
  1024. $classid=(int)$classid;
  1025. $id=(int)$id;
  1026. if(empty($classid)||empty($id))
  1027. {
  1028. return '';
  1029. }
  1030. $mid=$class_r[$classid][modid];
  1031. $tbname=$class_r[$classid][tbname];
  1032. $stf=$emod_r[$mid]['savetxtf'];
  1033. $cr=explode(',',$r[copyids]);
  1034. $count=count($cr);
  1035. if(empty($r['id'])||$count<3)
  1036. {
  1037. return '';
  1038. }
  1039. $selectdataf='';
  1040. $dh='';
  1041. if($stf&&strstr($emod_r[$mid]['tbdataf'],','.$stf.','))
  1042. {
  1043. $selectdataf.=$stf;
  1044. $dh=',';
  1045. }
  1046. $pf=$emod_r[$mid]['pagef'];
  1047. if($pf&&strstr($emod_r[$mid]['tbdataf'],','.$pf.','))
  1048. {
  1049. $selectdataf.=$dh.$pf;
  1050. }
  1051. for($i=1;$i<$count-1;$i++)
  1052. {
  1053. $infoid=(int)$cr[$i];
  1054. if(empty($infoid))
  1055. {
  1056. continue;
  1057. }
  1058. $infor=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$infoid'");
  1059. if(!$infor[stb])
  1060. {
  1061. continue;
  1062. }
  1063. if($selectdataf)
  1064. {
  1065. $infodr=$empire->fetch1("select ".$selectdataf." from {$dbtbpre}ecms_".$tbname."_data_".$infor[stb]." where id='$infoid'");
  1066. $infor=array_merge($infor,$infodr);
  1067. }
  1068. //存文本
  1069. if($stf)
  1070. {
  1071. $newstextfile=$infor[$stf];
  1072. $infor[$stf]=GetTxtFieldText($infor[$stf]);
  1073. DelTxtFieldText($newstextfile);//删除文件
  1074. }
  1075. DelNewsFile($infor[filename],$infor[newspath],$infor[classid],$infor[$pf],$infor[groupid]);//删除信息文件
  1076. $empire->query("delete from {$dbtbpre}ecms_".$tbname." where id='$infoid'");
  1077. $empire->query("delete from {$dbtbpre}ecms_".$tbname."_data_".$infor[stb]." where id='$infoid'");
  1078. //删除其它表记录
  1079. $empire->query("delete from {$dbtbpre}enewswfinfo where id='$infoid' and classid='$infor[classid]'");
  1080. $empire->query("delete from {$dbtbpre}enewswfinfolog where id='$infoid' and classid='$infor[classid]'");
  1081. $empire->query("delete from {$dbtbpre}enewsinfovote where id='$infoid' and classid='$infor[classid]'");
  1082. $empire->query("delete from {$dbtbpre}enewsdiggips where id='$infoid' and classid='$infor[classid]'");
  1083. DelNewsTheFile($infoid,$infor[classid]);//删除附件
  1084. }
  1085. }
  1086. //信息置顶
  1087. function TopNews_all($classid,$id,$istop,$userid,$username){
  1088. global $empire,$bclassid,$class_r,$dbtbpre;
  1089. $classid=(int)$classid;
  1090. if(empty($classid))
  1091. {
  1092. printerror("ErrorUrl","history.go(-1)");
  1093. }
  1094. $doselfinfo=CheckLevel($userid,$username,$classid,"news");//验证权限
  1095. if(!$doselfinfo['doeditinfo'])//编辑权限
  1096. {
  1097. printerror("NotEditInfoLevel","history.go(-1)");
  1098. }
  1099. $count=count($id);
  1100. if(empty($count))
  1101. {
  1102. printerror("NotTopNewsid","history.go(-1)");
  1103. }
  1104. for($i=0;$i<$count;$i++)
  1105. {
  1106. $add.="id='".intval($id[$i])."' or ";
  1107. }
  1108. $istop=(int)$istop;
  1109. $add=substr($add,0,strlen($add)-4);
  1110. $sql=$empire->query("update {$dbtbpre}ecms_".$class_r[$classid][tbname]." set istop=$istop where ".$add);
  1111. //刷新列表
  1112. ReListHtml($classid,1);
  1113. if($sql)
  1114. {
  1115. insert_dolog("classid=".$classid."<br>classname=".$class_r[$classid][classname]);//操作日志
  1116. printerror("TopNewsSuccess",$_SERVER['HTTP_REFERER']);
  1117. }
  1118. else
  1119. {printerror("DbError","history.go(-1)");}
  1120. }
  1121. //审核信息
  1122. function CheckNews_all($classid,$id,$userid,$username){
  1123. global $empire,$class_r,$dbtbpre,$emod_r;
  1124. $classid=(int)$classid;
  1125. if(empty($classid))
  1126. {
  1127. printerror("ErrorUrl","history.go(-1)");
  1128. }
  1129. //验证权限
  1130. $doselfinfo=CheckLevel($userid,$username,$classid,"news");
  1131. //编辑权限
  1132. if(!$doselfinfo['doeditinfo'])
  1133. {
  1134. printerror("NotEditInfoLevel","history.go(-1)");
  1135. }
  1136. $count=count($id);
  1137. if(empty($count))
  1138. {
  1139. printerror("NotCheckNewsid","history.go(-1)");
  1140. }
  1141. for($i=0;$i<$count;$i++)
  1142. {
  1143. $add.="id='".intval($id[$i])."' or ";
  1144. }
  1145. $add=substr($add,0,strlen($add)-4);
  1146. $sql=$empire->query("update {$dbtbpre}ecms_".$class_r[$classid][tbname]." set checked=1 where isqf=0 and (".$add.")");
  1147. $sql=$empire->query("select * from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add);
  1148. while($r=$empire->fetch($sql))
  1149. {
  1150. //投稿增加积分
  1151. if($r[ismember]&&$r[userid]&&!$r[haveaddfen])
  1152. {
  1153. $cr=$empire->fetch1("select classid,addinfofen from {$dbtbpre}enewsclass where classid='$r[classid]'");
  1154. if($cr[addinfofen])
  1155. {
  1156. AddInfoFen($cr[addinfofen],$r[userid]);
  1157. if($cr[addinfofen]<0)
  1158. {
  1159. BakDown($r[classid],$r[id],0,$r[userid],$r[username],$r[title],abs($cr[addinfofen]),3);
  1160. }
  1161. }
  1162. $empire->query("update {$dbtbpre}ecms_".$class_r[$classid][tbname]." set haveaddfen=1 where id=$r[id]");
  1163. }
  1164. //刷新信息
  1165. GetHtml($r,'');
  1166. }
  1167. //刷新列表
  1168. //ReListHtml($classid,1);
  1169. if($sql)
  1170. {
  1171. //操作日志
  1172. insert_dolog("classid=".$classid."<br>classname=".$class_r[$classid][classname]);
  1173. printerror("CheckNewsSuccess",$_SERVER['HTTP_REFERER']);
  1174. }
  1175. else
  1176. {printerror("DbError","history.go(-1)");}
  1177. }
  1178. //取消审核信息
  1179. function NoCheckNews_all($classid,$id,$userid,$username){
  1180. global $empire,$class_r,$public_r,$dbtbpre,$emod_r;
  1181. $classid=(int)$classid;
  1182. if(empty($classid))
  1183. {
  1184. printerror("ErrorUrl","history.go(-1)");
  1185. }
  1186. //验证权限
  1187. $doselfinfo=CheckLevel($userid,$username,$classid,"news");
  1188. //编辑权限
  1189. if(!$doselfinfo['doeditinfo'])
  1190. {
  1191. printerror("NotEditInfoLevel","history.go(-1)");
  1192. }
  1193. $count=count($id);
  1194. if(empty($count))
  1195. {
  1196. printerror("NotNoCheckNewsid","history.go(-1)");
  1197. }
  1198. $mid=$class_r[$classid][modid];
  1199. $tbname=$class_r[$classid][tbname];
  1200. $pf=$emod_r[$mid]['pagef'];
  1201. $stf=$emod_r[$mid]['savetxtf'];
  1202. for($i=0;$i<$count;$i++)
  1203. {
  1204. $id[$i]=(int)$id[$i];
  1205. //主表
  1206. $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where id='".$id[$i]."'");
  1207. //分页字段
  1208. if($pf)
  1209. {
  1210. if(strstr($emod_r[$mid]['tbdataf'],','.$pf.','))
  1211. {
  1212. $finfor=$empire->fetch1("select ".$pf." from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$id[$i]'");
  1213. $r[$pf]=$finfor[$pf];
  1214. }
  1215. if($stf&&$stf==$pf)//存放文本
  1216. {
  1217. $r[$pf]=GetTxtFieldText($r[$pf]);
  1218. }
  1219. }
  1220. DelNewsFile($r[filename],$r[newspath],$r[classid],$r[$pf],$r[groupid]);
  1221. $add.="id='$id[$i]' or ";
  1222. }
  1223. $add=substr($add,0,strlen($add)-4);
  1224. $sql=$empire->query("update {$dbtbpre}ecms_".$class_r[$classid][tbname]." set checked=0,havehtml=0 where isqf=0 and (".$add.")");
  1225. //刷新列表
  1226. ReListHtml($classid,1);
  1227. if($sql)
  1228. {
  1229. //操作日志
  1230. insert_dolog("classid=".$classid."<br>classname=".$class_r[$classid][classname]);
  1231. printerror("NoCheckNewsSuccess",$_SERVER['HTTP_REFERER']);
  1232. }
  1233. else
  1234. {printerror("DbError","history.go(-1)");}
  1235. }
  1236. //移动信息
  1237. function MoveNews_all($classid,$id,$to_classid,$userid,$username){
  1238. global $empire,$class_r,$dbtbpre,$emod_r;
  1239. $classid=(int)$classid;
  1240. $to_classid=(int)$to_classid;
  1241. if(empty($classid)||empty($to_classid))
  1242. {
  1243. printerror("EmptyMoveClassid","history.go(-1)");
  1244. }
  1245. if(empty($class_r[$classid][islast])||empty($class_r[$to_classid][islast]))
  1246. {
  1247. printerror("EmptyMoveClassid","history.go(-1)");
  1248. }
  1249. if($class_r[$classid][modid]<>$class_r[$to_classid][modid])
  1250. {
  1251. printerror("DefModid","history.go(-1)");
  1252. }
  1253. //验证权限
  1254. $doselfinfo=CheckLevel($userid,$username,$classid,"news");
  1255. //编辑权限
  1256. if(!$doselfinfo['doeditinfo'])
  1257. {
  1258. printerror("NotEditInfoLevel","history.go(-1)");
  1259. }
  1260. $count=count($id);
  1261. if(empty($count))
  1262. {
  1263. printerror("NotMoveNewsid","history.go(-1)");
  1264. }
  1265. $upltbr=$empire->fetch1("select pldatatbs from {$dbtbpre}enewspublic limit 1");//评论
  1266. $tbname=$class_r[$classid][tbname];
  1267. for($i=0;$i<$count;$i++)
  1268. {
  1269. $id[$i]=(int)$id[$i];
  1270. $add.="id='$id[$i]' or ";
  1271. $r=$empire->fetch1("select stb,classid from {$dbtbpre}ecms_".$tbname." where id='$id[$i]'");
  1272. //副表
  1273. $empire->query("update {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." set classid='$to_classid' where id='$id[$i]'");
  1274. //评论转换
  1275. $empire->query("update {$dbtbpre}enewspl set classid=$to_classid where id='".$id[$i]."' and classid='$r[classid]'");
  1276. if($upltbr['pldatatbs'])
  1277. {
  1278. $pldtbr=explode(',',$upltbr['pldatatbs']);
  1279. $plcount=count($pldtbr)-1;
  1280. for($pli=1;$pli<$plcount;$pli++)
  1281. {
  1282. $empire->query("update {$dbtbpre}enewspl_data_".$pldtbr[$pli]." set classid=$to_classid where id='".$id[$i]."' and classid='$r[classid]'");
  1283. }
  1284. }
  1285. //签发转换
  1286. $empire->query("update {$dbtbpre}enewswfinfo set classid=$to_classid where id='".$id[$i]."' and classid='$r[classid]'");
  1287. $empire->query("update {$dbtbpre}enewswfinfolog set classid=$to_classid where id='".$id[$i]."' and classid='$r[classid]'");
  1288. //投票
  1289. $empire->query("update {$dbtbpre}enewsinfovote set classid=$to_classid where id='".$id[$i]."' and classid='$r[classid]'");
  1290. //digg
  1291. $empire->query("update {$dbtbpre}enewsdiggips set classid=$to_classid where id='".$id[$i]."' and classid='$r[classid]'");
  1292. }
  1293. $add=substr($add,0,strlen($add)-4);
  1294. $sql=$empire->query("update {$dbtbpre}ecms_".$tbname." set classid=$to_classid where ".$add);
  1295. //刷新列表
  1296. ReListHtml($classid,1);
  1297. ReListHtml($to_classid,1);
  1298. if($sql)
  1299. {
  1300. //操作日志
  1301. insert_dolog("classid=".$classid."<br>classname=".$class_r[$classid][classname]);
  1302. printerror("MoveNewsSuccess",$_SERVER['HTTP_REFERER']);
  1303. }
  1304. else
  1305. {printerror("DbError","history.go(-1)");}
  1306. }
  1307. //复制信息
  1308. function CopyNews_all($classid,$id,$to_classid,$userid,$username){
  1309. global $empire,$public_r,$class_r,$dbtbpre,$emod_r;
  1310. $classid=(int)$classid;
  1311. $to_classid=(int)$to_classid;
  1312. if(empty($classid)||empty($to_classid))
  1313. {
  1314. printerror("EmptyCopyClassid","history.go(-1)");
  1315. }
  1316. if(empty($class_r[$classid][islast])||empty($class_r[$to_classid][islast]))
  1317. {
  1318. printerror("EmptyCopyClassid","history.go(-1)");
  1319. }
  1320. if($class_r[$classid][modid]<>$class_r[$to_classid][modid])
  1321. {
  1322. printerror("DefModid","history.go(-1)");
  1323. }
  1324. $userid=(int)$userid;
  1325. //验证权限
  1326. $doselfinfo=CheckLevel($userid,$username,$classid,"news");
  1327. //编辑权限
  1328. if(!$doselfinfo['doeditinfo'])
  1329. {
  1330. printerror("NotEditInfoLevel","history.go(-1)");
  1331. }
  1332. $count=count($id);
  1333. if(empty($count))
  1334. {
  1335. printerror("NotCopyNewsid","history.go(-1)");
  1336. }
  1337. for($i=0;$i<$count;$i++)
  1338. {
  1339. $add.="id='".intval($id[$i])."' or ";
  1340. }
  1341. $add=substr($add,0,strlen($add)-4);
  1342. $mid=$class_r[$classid][modid];
  1343. $tbname=$class_r[$classid][tbname];
  1344. $stf=$emod_r[$mid]['savetxtf'];
  1345. //查看目录是否存在,不存在则建立
  1346. $newspath=FormatPath($to_classid,"",0);
  1347. $newstime=time();
  1348. $truetime=$newstime;
  1349. $newstempid=0;
  1350. $dosql=$empire->query("select * from {$dbtbpre}ecms_".$tbname." where ".$add);
  1351. while($r=$empire->fetch($dosql))
  1352. {
  1353. //副表
  1354. if($emod_r[$mid]['tbdataf']&&$emod_r[$mid]['tbdataf']<>',')
  1355. {
  1356. $selectdataf=substr($emod_r[$mid]['tbdataf'],1,-1);
  1357. $finfor=$empire->fetch1("select ".$selectdataf." from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$r[id]'");
  1358. $r=array_merge($r,$finfor);
  1359. }
  1360. if($stf)//存放文本
  1361. {
  1362. $r[$stf]=GetTxtFieldText($r[$stf]);
  1363. }
  1364. //返回自定义字段
  1365. $ret_r=ReturnAddF($r,$class_r[$to_classid][modid],$userid,$username,9,1,0);
  1366. if($class_r[$to_classid][wfid])
  1367. {
  1368. $checked=0;
  1369. $isqf=1;
  1370. }
  1371. else
  1372. {
  1373. $checked=$class_r[$to_classid][checked];
  1374. $isqf=0;
  1375. }
  1376. $checked=(int)$checked;
  1377. //主表
  1378. $sql=$empire->query("insert into {$dbtbpre}ecms_".$tbname."(classid,onclick,newspath,keyboard,keyid,userid,username,ztid,checked,truetime,ismember,dokey,isgood,titlefont,titleurl,filename,groupid,newstempid,plnum,firsttitle,isqf,userfen,totaldown,closepl,havehtml,lastdotime,haveaddfen,infopfen,infopfennum,votenum,stb,ttid,infotags,ispic".$ret_r[fields].") values($to_classid,0,'$newspath','$r[keyboard]','$r[keyid]',$userid,'$username','',$checked,$truetime,0,$r[dokey],0,'$r[titlefont]','$r[titleurl]','$filename',$r[groupid],'".$newstempid."',0,0,'$isqf',$r[userfen],0,$r[closepl],$r[havehtml],$truetime,0,0,0,0,'$ret_r[tb]','$r[ttid]','$r[infotags]','$r[ispic]'".$ret_r[values].");");
  1379. $l_id=$empire->lastid();
  1380. //副表
  1381. $empire->query("insert into {$dbtbpre}ecms_".$tbname."_data_".$ret_r[tb]."(id,classid".$ret_r[datafields].") values('$l_id','$to_classid'".$ret_r[datavalues].");");
  1382. //签发
  1383. if($isqf==1)
  1384. {
  1385. InfoInsertToWorkflow($l_id,$to_classid,$class_r[$to_classid][wfid],$userid,$username);
  1386. }
  1387. //文件命名
  1388. $filename=ReturnInfoFilename($to_classid,$l_id,$r[filenameqz]);
  1389. $usql=$empire->query("update {$dbtbpre}ecms_".$class_r[$to_classid][tbname]." set filename='$filename' where id='$l_id'");
  1390. //生成信息文件
  1391. $addr=$empire->fetch1("select * from {$dbtbpre}ecms_".$class_r[$to_classid][tbname]." where id='$l_id'");
  1392. GetHtml($addr,'');
  1393. }
  1394. //刷新列表
  1395. ReListHtml($to_classid,1);
  1396. //操作日志
  1397. insert_dolog("classid=".$classid."<br>classname=".$class_r[$classid][classname]);
  1398. printerror("CopyNewsSuccess",$_SERVER['HTTP_REFERER']);
  1399. }
  1400. //批量转移信息
  1401. function MoveClassNews($add,$userid,$username){
  1402. global $empire,$class_r,$dbtbpre,$emod_r;
  1403. $add[classid]=(int)$add[classid];
  1404. $add[toclassid]=(int)$add[toclassid];
  1405. if(empty($add[classid])||empty($add[toclassid]))
  1406. {
  1407. printerror("EmptyMovetoClassid","history.go(-1)");
  1408. }
  1409. if($class_r[$add[classid]][modid]<>$class_r[$add[toclassid]][modid])
  1410. {
  1411. printerror("DefModid","history.go(-1)");
  1412. }
  1413. //验证权限
  1414. CheckLevel($userid,$username,$classid,"movenews");
  1415. //终极栏目
  1416. if(!$class_r[$add[classid]][islast]||!$class_r[$add[toclassid]][islast])
  1417. {
  1418. printerror("MovetoClassidMustLastid","history.go(-1)");
  1419. }
  1420. if($add[classid]==$add[toclassid])
  1421. {
  1422. printerror("MoveClassidsame","history.go(-1)");
  1423. }
  1424. $mid=$class_r[$add[classid]][modid];
  1425. $tbname=$class_r[$add[classid]][tbname];
  1426. $sql=$empire->query("update {$dbtbpre}ecms_".$tbname." set classid=$add[toclassid] where classid='$add[classid]'");
  1427. //副表
  1428. $dtbr=explode(',',$emod_r[$mid][datatbs]);
  1429. $tbcount=count($dtbr);
  1430. for($i=1;$i<$tbcount-1;$i++)
  1431. {
  1432. $empire->query("update {$dbtbpre}ecms_".$tbname."_data_".$dtbr[$i]." set classid=$add[toclassid] where classid='$add[classid]'");
  1433. }
  1434. //评论转换
  1435. $uplsql=$empire->query("update {$dbtbpre}enewspl set classid=$add[toclassid] where classid='$add[classid]'");
  1436. $upltbr=$empire->fetch1("select pldatatbs from {$dbtbpre}enewspublic limit 1");
  1437. if($upltbr['pldatatbs'])
  1438. {
  1439. $pldtbr=explode(',',$upltbr['pldatatbs']);
  1440. $count=count($pldtbr)-1;
  1441. for($i=1;$i<$count;$i++)
  1442. {
  1443. $empire->query("update {…

Large files files are truncated, but you can click here to view the full file