misc_ranklist_index.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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: misc_ranklist_index.php 27449 2012-02-01 05:32:35Z zhangguosheng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. loadcache('ranklist_index');
  12. $cache_time = $ranklist_setting['cache_time'];
  13. if($cache_time <= 0 ) $cache_time = 1;
  14. $cache_time = $cache_time * 3600;
  15. define('RANKLIST_INDEX_CACHE_TIME', $cache_time);
  16. function is_ranklistcache_available($name) {
  17. global $_G;
  18. if(!is_array($_G['cache']['ranklist_index'])) {
  19. $_G['cache']['ranklist_index'] = array();
  20. }
  21. if($_G['cache']['ranklist_index'][$name]['lastupdated'] && TIMESTAMP - $_G['cache']['ranklist_index'][$name]['lastupdated'] < RANKLIST_INDEX_CACHE_TIME) {
  22. return true;
  23. }
  24. return false;
  25. }
  26. function getranklistcache($name, $dateline = '') {
  27. global $_G;
  28. if(is_ranklistcache_available($name) || $_G['ranklist_cacheupdated']) {
  29. $ranklist = $_G['cache']['ranklist_index'][$name];
  30. unset($ranklist['lastupdated']);
  31. return $ranklist;
  32. }
  33. switch($name) {
  34. case 'pictures':
  35. $ranklist = getranklist_pictures_index(9);
  36. break;
  37. case 'threads_hot':
  38. $ranklist = getranklist_thread(10, 'heats', $dateline);
  39. break;
  40. case 'blogs_hot':
  41. $ranklist = getranklist_blog(10, 'hot', $dateline);
  42. break;
  43. case 'polls_hot':
  44. $ranklist = getranklist_poll(10, 'heats', $dateline);
  45. break;
  46. case 'activities_hot':
  47. $ranklist = getranklist_activity(10, 'heats', $dateline);
  48. break;
  49. case 'girllist':
  50. $ranklist = getranklist_girls(0, 10);
  51. break;
  52. }
  53. $ranklist['lastupdated'] = TIMESTAMP;
  54. ranklist_cache_push($name, $ranklist);
  55. return $ranklist;
  56. }
  57. function ranklist_cache_push($name, $ranklist) {
  58. global $_G;
  59. $_G['cache']['ranklist_index'][$name] = $ranklist;
  60. $_G['cache']['ranklist_index']['lastupdated'] = $ranklist['lastupdated'];
  61. $_G['ranklist_cacheupdated'] = true;
  62. }
  63. $dateline = $before = '';
  64. $before = $ranklist_setting['index_select'] ? $ranklist_setting['index_select'] : 'thisweek';
  65. switch($before) {
  66. case 'all':
  67. $dateline = '0';
  68. break;
  69. case 'today':
  70. $dateline = '86400';
  71. break;
  72. case 'thisweek':
  73. $dateline = '604800';
  74. break;
  75. case 'thismonth':
  76. $dateline = '2592000';
  77. break;
  78. default: $dateline = '604800';
  79. }
  80. $dateline = !empty($dateline) ? TIMESTAMP - $dateline : 0;
  81. $i = 0;
  82. if($ranklist_setting['picture']['available']) {
  83. $pictures = getranklistcache('pictures');
  84. }
  85. if($ranklist_setting['thread']['available']) {
  86. $threads_hot = getranklistcache('threads_hot', $before);
  87. $i++;
  88. $thread_pos = $i;
  89. }
  90. if($ranklist_setting['blog']['available']) {
  91. $blogs_hot = getranklistcache('blogs_hot', $before);
  92. $i++;
  93. $blog_pos = $i;
  94. }
  95. if($ranklist_setting['poll']['available']) {
  96. $polls_hot = getranklistcache('polls_hot', $before);
  97. $i++;
  98. $poll_pos = $i;
  99. }
  100. if($ranklist_setting['activity']['available']) {
  101. $activities_hot = getranklistcache('activities_hot', $before);
  102. $i++;
  103. $activity_pos = $i;
  104. }
  105. if($ranklist_setting['member']['available']) {
  106. $memberlist = getranklist_members(0, 27);
  107. }
  108. if($_G['ranklist_cacheupdated']) {
  109. savecache('ranklist_index', $_G['cache']['ranklist_index']);
  110. }
  111. unset($pictures['lastupdated'], $threads_hot['lastupdated'], $blogs_hot['lastupdated']);
  112. unset($polls_hot['lastupdated'], $activities_hot['lastupdated'], $memberlist['lastupdated']);
  113. $navtitle = $_G['setting']['navs'][8]['navname'];
  114. $metakeywords = $navtitle;
  115. $metadescription = $navtitle;
  116. include template('diy:ranklist/ranklist');
  117. ?>