cron_todayheats_daily.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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_todayheats_daily.php 31913 2012-10-24 06:52:26Z zhengqingpeng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. $yesterday = strtotime(dgmdate(TIMESTAMP, 'Y-m-d'))-86400;
  12. $data = $tids = $fids = $hotnum = array();
  13. $daystr = dgmdate($yesterday, 'Ymd');
  14. foreach(C::t('forum_thread')->fetch_all_for_guide('hot', 0, array(), $_G['setting']['heatthread']['guidelimit'], $yesterday, 0, 0) as $thread) {
  15. $data[$thread['tid']] = array(
  16. 'cid' => 0,
  17. 'fid' => $thread['fid'],
  18. 'tid' => $thread['tid']
  19. );
  20. $fids[$thread['fid']] = array('fid' => $thread['fid'], 'dateline' => $daystr, 'hotnum' => 0);
  21. $tids[$thread['fid']][$thread['tid']] = $thread['tid'];
  22. }
  23. if($data) {
  24. $cids = C::t('forum_threadcalendar')->fetch_all_by_fid_dateline(array_keys($fids), $daystr);
  25. foreach($cids as $fid => $cinfo) {
  26. $hotnum[$cinfo['cid']] = count($tids[$fid]);
  27. foreach($tids[$fid] as $tid) {
  28. $data[$tid]['cid'] = $cinfo['cid'];
  29. }
  30. unset($fids[$fid]);
  31. }
  32. if($fids) {
  33. C::t('forum_threadcalendar')->insert_multiterm($fids);
  34. foreach(C::t('forum_threadcalendar')->fetch_all_by_fid_dateline(array_keys($fids), $daystr) as $fid => $cinfo) {
  35. $hotnum[$cinfo['cid']] = count($tids[$fid]);
  36. foreach($tids[$fid] as $tid) {
  37. $data[$tid]['cid'] = $cinfo['cid'];
  38. }
  39. }
  40. }
  41. C::t('forum_threadhot')->insert_multiterm($data);
  42. foreach($hotnum as $cid => $num) {
  43. C::t('forum_threadcalendar')->update($cid, array('hotnum' => $num));
  44. }
  45. }
  46. ?>