cron_threadexpiry_hourly.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: cron_threadexpiry_hourly.php 33625 2013-07-19 06:03:49Z nemohou $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. C::t('common_seccheck')->delete_expiration();
  12. $actionarray = array();
  13. foreach(C::t('forum_threadmod')->fetch_all_by_expiration_status($_G['timestamp']) as $expiry) {
  14. switch($expiry['action']) {
  15. case 'EST': $actionarray['UES'][] = $expiry['tid']; break;
  16. case 'EHL': $actionarray['UEH'][] = $expiry['tid']; break;
  17. case 'ECL': $actionarray['UEC'][] = $expiry['tid']; break;
  18. case 'EOP': $actionarray['UEO'][] = $expiry['tid']; break;
  19. case 'EDI': $actionarray['UED'][] = $expiry['tid']; break;
  20. case 'TOK': $actionarray['UES'][] = $expiry['tid']; break;
  21. case 'CCK': $actionarray['UEH'][] = $expiry['tid']; break;
  22. case 'CLK': $actionarray['UEC'][] = $expiry['tid']; break;
  23. case 'SPA': $actionarray['SPD'][] = $expiry['tid']; break;
  24. }
  25. }
  26. if($actionarray) {
  27. foreach($actionarray as $action => $tids) {
  28. switch($action) {
  29. case 'UES':
  30. C::t('forum_thread')->update($actionarray[$action], array('displayorder'=>0), true);
  31. C::t('forum_threadmod')->update_by_tid_action($tids, array('EST', 'TOK'), array('status'=>0));
  32. require_once libfile('function/cache');
  33. updatecache('globalstick');
  34. break;
  35. case 'UEH':
  36. C::t('forum_thread')->update($actionarray[$action], array('highlight'=>0), true);
  37. C::t('forum_threadmod')->update_by_tid_action($tids, array('EHL', 'CCK'), array('status'=>0));
  38. break;
  39. case 'UEC':
  40. case 'UEO':
  41. $closed = $action == 'UEO' ? 1 : 0;
  42. C::t('forum_thread')->update($actionarray[$action], array('closed'=>$closed), true);
  43. C::t('forum_threadmod')->update_by_tid_action($tids, array('EOP', 'ECL', 'CLK'), array('status'=>0));
  44. break;
  45. case 'UED':
  46. C::t('forum_threadmod')->update_by_tid_action($tids, array('EDI'), array('status'=>0));
  47. $digestarray = $authoridarry = array();
  48. foreach(C::t('forum_thread')->fetch_all_by_tid($actionarray[$action]) as $digest) {
  49. $authoridarry[] = $digest['authorid'];
  50. $digestarray[$digest['digest']][] = $digest['authorid'];
  51. }
  52. foreach($digestarray as $digest => $authorids) {
  53. batchupdatecredit('digest', $authorids, array("digestposts=digestposts+'-1'"), -$digest, $fid = 0);
  54. }
  55. C::t('forum_thread')->update($actionarray[$action], array('digest'=>0), true);
  56. break;
  57. case 'SPD':
  58. C::t('forum_thread')->update($actionarray[$action], array('stamp'=>-1), true);
  59. C::t('forum_threadmod')->update_by_tid_action($tids, array('SPA'), array('status'=>0));
  60. break;
  61. }
  62. }
  63. require_once libfile('function/post');
  64. foreach($actionarray as $action => $tids) {
  65. updatemodlog(implode(',', $tids), $action, 0, 1);
  66. }
  67. }
  68. ?>