cache_globalstick.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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: cache_globalstick.php 24152 2011-08-26 10:04:08Z zhangguosheng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. function build_cache_globalstick() {
  12. $data = array();
  13. $query = C::t('forum_forum')->fetch_all_valid_forum();
  14. $fuparray = $threadarray = array();
  15. foreach($query as $forum) {
  16. switch($forum['type']) {
  17. case 'forum':
  18. $fuparray[$forum['fid']] = $forum['fup'];
  19. break;
  20. case 'sub':
  21. $fuparray[$forum['fid']] = $fuparray[$forum['fup']];
  22. break;
  23. }
  24. }
  25. foreach(C::t('forum_thread')->fetch_all_by_displayorder(array(2, 3)) as $thread) {
  26. switch($thread['displayorder']) {
  27. case 2:
  28. $threadarray[$fuparray[$thread['fid']]][] = $thread['tid'];
  29. break;
  30. case 3:
  31. $threadarray['global'][] = $thread['tid'];
  32. break;
  33. }
  34. }
  35. foreach(array_unique($fuparray) as $gid) {
  36. if(!empty($threadarray[$gid])) {
  37. $data['categories'][$gid] = array(
  38. 'tids' => dimplode($threadarray[$gid]),
  39. 'count' => intval(@count($threadarray[$gid]))
  40. );
  41. }
  42. }
  43. $data['global'] = array(
  44. 'tids' => empty($threadarray['global']) ? '' : dimplode($threadarray['global']),
  45. 'count' => intval(@count($threadarray['global']))
  46. );
  47. savecache('globalstick', $data);
  48. }
  49. ?>