/scripts/php/auto_cache.php

https://github.com/AndyRixon/LayerBulletin · PHP · 195 lines · 123 code · 52 blank · 20 comment · 12 complexity · 268732f58ae93ac80740f7a8d1221f44 MD5 · raw file

  1. <?php
  2. /*
  3. +--------------------------------------------------------------------------
  4. | LayerBulletin
  5. | ========================================
  6. | By The LayerBulletin team
  7. | Released under the Artistic License 2.0
  8. | http://layerbulletin.com/
  9. | ========================================
  10. |+--------------------------------------------------------------------------
  11. | autocache.php - re-caches forum index & stats
  12. */
  13. if (!defined('LB_RUN')){
  14. echo "<h1>ACCESS DENIED</h1>You cannot access this file directly.";
  15. exit();
  16. }
  17. if ($_GET['page']!='auto_cache'){
  18. // upgdate stats first...
  19. $query2 = "select ID from {$db_prefix}posts WHERE TITLE=''" ;
  20. $result2 = mysql_query($query2) or die("online.php - Error in query: $query2") ;
  21. $posts=mysql_num_rows($result2);
  22. $query2 = "select DISTINCT TOPIC_ID from {$db_prefix}posts" ;
  23. $result2 = mysql_query($query2) or die("online.php - Error in query: $query2") ;
  24. $topics=mysql_num_rows($result2);
  25. $query2 = "select ID from {$db_prefix}members WHERE verified='1'";
  26. $result2 = mysql_query($query2) or die("online.php - Error in query: $query2") ;
  27. $members=mysql_num_rows($result2);
  28. $query21 = "select ID, NAME from {$db_prefix}members WHERE verified='1' ORDER BY ID desc LIMIT 1" ;
  29. $result21 = mysql_query($query21) or die("online.php - Error in query: $query21") ;
  30. while ($results21 = mysql_fetch_array($result21)){
  31. $member_id = $results21['ID'];
  32. $name = $results21['NAME'];
  33. }
  34. $query21 = "select ID, TITLE, TIME, TOPIC_ID, FORUM_ID from {$db_prefix}posts WHERE APPROVED='1' ORDER BY ID desc LIMIT 1" ;
  35. $result21 = mysql_query($query21) or die("online.php - Error in query: $query21") ;
  36. while ($results21 = mysql_fetch_array($result21)){
  37. $id = $results21['ID'];
  38. $title = addslashes($results21['TITLE']);
  39. $topic_id = $results21['TOPIC_ID'];
  40. $forum_id = $results21['FORUM_ID'];
  41. $time = $results21['TIME'];
  42. }
  43. if ($title==''){
  44. $query29 = "select TITLE from {$db_prefix}posts WHERE TOPIC_ID='$topic_id' AND TITLE!='' AND APPROVED='1'" ;
  45. $result29 = mysql_query($query29) or die("online.php - Error in query: $query29") ;
  46. $title = addslashes(mysql_result($result29, 0));
  47. }
  48. mysql_query("UPDATE {$db_prefix}settings SET stats_topics='$topics', stats_posts='$posts', stats_member_id='$member_id', stats_member_name='$name', stats_members='$members', stats_post_id='$id', stats_post_title='$title', stats_post_forum='$forum_id', stats_post_time='$time', stats_post_topic='$topic_id'");
  49. # Remove out-of-date cache
  50. $Cache->delete('settings');
  51. // check for sub-forums..
  52. $query_sub = "select ID from {$db_prefix}categories WHERE PARENT!='0' ORDER BY ID asc";
  53. $result_sub = mysql_query($query_sub) or die("index.php - Error in query: $query_sub");
  54. while ($results_sub = mysql_fetch_array($result_sub)){
  55. $sub_id = $results_sub['ID'];
  56. $topics="";
  57. $posts="";
  58. $id="";
  59. $topic_id="";
  60. $title="";
  61. $time="";
  62. $member="";
  63. $name="";
  64. // update sub forums first...
  65. $query211 = "select ID from {$db_prefix}posts WHERE FORUM_ID='$sub_id' AND TITLE!='' AND APPROVED='1'" ;
  66. $result211 = mysql_query($query211) or die("index.php - Error in query: $query211") ;
  67. $topics=mysql_num_rows($result211);
  68. $query211 = "select ID from {$db_prefix}posts WHERE FORUM_ID='$sub_id' AND TITLE='' AND APPROVED='1'" ;
  69. $result211 = mysql_query($query211) or die("index.php - Error in query: $query211") ;
  70. $posts=mysql_num_rows($result211);
  71. $query211 = "select ID, MEMBER, TITLE, TIME, TOPIC_ID from {$db_prefix}posts WHERE FORUM_ID='$sub_id' AND APPROVED='1' ORDER BY ID desc LIMIT 1" ;
  72. $result211 = mysql_query($query211) or die("index.php - Error in query: $query211") ;
  73. while ($results211 = mysql_fetch_array($result211)){
  74. $id = $results211['ID'];
  75. $member = $results211['MEMBER'];
  76. $title = addslashes($results211['TITLE']);
  77. $time = $results211['TIME'];
  78. $topic_id = $results211['TOPIC_ID'];
  79. $name="0";
  80. $query2111 = "select NAME from {$db_prefix}members WHERE ID='$member'" ;
  81. $result2111 = mysql_query($query2111) or die("index.php - Error in query: $query2111") ;
  82. $name = mysql_result($result2111, 0);
  83. if ($title==''){
  84. $query29 = "select TITLE from {$db_prefix}posts WHERE TOPIC_ID='$topic_id' AND TITLE!='' AND APPROVED='1'" ;
  85. $result29 = mysql_query($query29) or die("index.php - Error in query: $query29") ;
  86. $title = addslashes(mysql_result($result29, 0));
  87. }
  88. }
  89. // update here
  90. mysql_query("UPDATE {$db_prefix}categories SET cat_topics='$topics', cat_posts='$posts', cat_latest_id='$id', cat_latest_topic='$topic_id', cat_latest_title='$title', cat_latest_time='$time', cat_latest_member_id='$member', cat_latest_member_name='$name' WHERE id='$sub_id'");
  91. }
  92. // now put in total posts for each forum on index...
  93. $query2 = "select ID from {$db_prefix}categories WHERE PARENT='0' ORDER BY ID asc" ;
  94. $result2 = mysql_query($query2) or die("index.php - Error in query: $query2") ;
  95. while ($results2 = mysql_fetch_array($result2)){
  96. $first_id = $results2['ID'];
  97. $query2x = "select ID from {$db_prefix}categories WHERE PARENT='$first_id' ORDER BY ID asc" ;
  98. $result2x = mysql_query($query2x) or die("index.php - Error in query: $query2x") ;
  99. while ($results2x = mysql_fetch_array($result2x)){
  100. $parent_id = $results2x['ID'];
  101. $topics="";
  102. $posts="";
  103. $id="";
  104. $topic_id="";
  105. $title="";
  106. $time="";
  107. $member="";
  108. $name="";
  109. // update index now...
  110. $query211 = "select ID from {$db_prefix}posts WHERE FORUM_ID IN(select ID from {$db_prefix}categories WHERE FORUM_ID='$parent_id' OR PARENT='$parent_id') AND TITLE!='' AND APPROVED='1'" ;
  111. $result211 = mysql_query($query211) or die("index.php - Error in query: $query211") ;
  112. $topics=mysql_num_rows($result211);
  113. $query211 = "select ID from {$db_prefix}posts WHERE FORUM_ID IN(select ID from {$db_prefix}categories WHERE FORUM_ID='$parent_id' OR PARENT='$parent_id') AND TITLE='' AND APPROVED='1'" ;
  114. $result211 = mysql_query($query211) or die("index.php - Error in query: $query211") ;
  115. $posts=mysql_num_rows($result211);
  116. $query211 = "select ID, MEMBER, TITLE, TIME, TOPIC_ID from {$db_prefix}posts WHERE FORUM_ID IN(select ID from {$db_prefix}categories WHERE FORUM_ID='$parent_id' OR PARENT='$parent_id') AND APPROVED='1' ORDER BY ID desc LIMIT 1" ;
  117. $result211 = mysql_query($query211) or die("index.php - Error in query: $query211") ;
  118. while ($results211 = mysql_fetch_array($result211)){
  119. $id = $results211['ID'];
  120. $member = $results211['MEMBER'];
  121. $title = addslashes($results211['TITLE']);
  122. $time = $results211['TIME'];
  123. $topic_id = $results211['TOPIC_ID'];
  124. $name="0";
  125. $query2111 = "select NAME from {$db_prefix}members WHERE ID='$member'" ;
  126. $result2111 = mysql_query($query2111) or die("index.php - Error in query: $query2111") ;
  127. $name = mysql_result($result2111, 0);
  128. if ($title==''){
  129. $query29 = "select TITLE from {$db_prefix}posts WHERE TOPIC_ID='$topic_id' AND TITLE!='' AND APPROVED='1'" ;
  130. $result29 = mysql_query($query29) or die("index.php - Error in query: $query29") ;
  131. $title = addslashes(mysql_result($result29, 0));
  132. }
  133. // update here
  134. mysql_query("UPDATE {$db_prefix}categories SET cat_topics='$topics', cat_posts='$posts', cat_latest_id='$id', cat_latest_topic='$topic_id', cat_latest_title='$title', cat_latest_time='$time', cat_latest_member_id='$member', cat_latest_member_name='$name' WHERE id='$parent_id'");
  135. }
  136. }
  137. }
  138. }
  139. else{
  140. lb_redirect("index.php?page=error","error");
  141. }
  142. ?>