diff options
Diffstat (limited to 'phpBB/includes/prune.php')
-rw-r--r-- | phpBB/includes/prune.php | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/phpBB/includes/prune.php b/phpBB/includes/prune.php deleted file mode 100644 index 1d2f17e57d..0000000000 --- a/phpBB/includes/prune.php +++ /dev/null @@ -1,159 +0,0 @@ -<?php -/*************************************************************************** -* prune.php -* ------------------- -* begin : Thursday, June 14, 2001 -* copyright : (C) 2001 The phpBB Group -* email : support@phpbb.com -* -* $Id$ -* -* -***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -if ( !defined('IN_PHPBB') ) -{ - die("Hacking attempt"); -} - -require($phpbb_root_path . 'includes/functions_search.'.$phpEx); - -function prune($forum_id, $prune_date) -{ - global $db, $lang; - - // - // Those without polls ... - // - $sql = "SELECT t.topic_id - FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t - WHERE t.forum_id = $forum_id - AND t.topic_vote = 0 - AND t.topic_type <> " . POST_ANNOUNCE . " - AND ( p.post_id = t.topic_last_post_id - OR t.topic_last_post_id = 0 )"; - if ( $prune_date != '' ) - { - $sql .= " AND p.post_time < $prune_date"; - } - - if ( !($result = $db->sql_query($sql)) ) - { - message_die(GENERAL_ERROR, 'Could not obtain lists of topics to prune', '', __LINE__, __FILE__, $sql); - } - - $sql_topics = ''; - while( $row = $db->sql_fetchrow($result) ) - { - $sql_topics .= ( ( $sql_topics != '' ) ? ', ' : '' ) . $row['topic_id']; - } - - if( $sql_topics != '' ) - { - $sql = "SELECT post_id - FROM " . POSTS_TABLE . " - WHERE forum_id = $forum_id - AND topic_id IN ($sql_topics)"; - if ( !($result = $db->sql_query($sql)) ) - { - message_die(GENERAL_ERROR, 'Could not obtain list of posts to prune', '', __LINE__, __FILE__, $sql); - } - - $sql_post = ''; - while ( $row = $db->sql_fetchrow($result) ) - { - $sql_post .= ( ( $sql_post != '' ) ? ', ' : '' ) . $row['post_id']; - } - - if ( $sql_post != '' ) - { - $sql = "DELETE FROM " . TOPICS_TABLE . " - WHERE topic_id IN ($sql_topics)"; - if ( !$db->sql_query($sql, BEGIN_TRANSACTION) ) - { - message_die(GENERAL_ERROR, 'Could not delete topics during prune', '', __LINE__, __FILE__, $sql); - } - - $pruned_topics = $db->sql_affectedrows(); - - $sql = "DELETE FROM " . POSTS_TABLE . " - WHERE post_id IN ($sql_post)"; - if ( !$db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, 'Could not delete post_text during prune', '', __LINE__, __FILE__, $sql); - } - - $pruned_posts = $db->sql_affectedrows(); - - $sql = "DELETE FROM " . POSTS_TEXT_TABLE . " - WHERE post_id IN ($sql_post)"; - if ( !$db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, 'Could not delete post during prune', '', __LINE__, __FILE__, $sql); - } - - $sql = "DELETE FROM " . SEARCH_MATCH_TABLE . " - WHERE post_id IN ($sql_post)"; - if ( !$db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, 'Could not delete search matches', '', __LINE__, __FILE__, $sql); - } - - remove_search_post($sql_post); - - return array ('topics' => $pruned_topics, 'posts' => $pruned_posts); - } - } - - return array('topics' => 0, 'posts' => 0); -} - -// -// Function auto_prune(), this function will read the configuration data from -// the auto_prune table and call the prune function with the necessary info. -// -function auto_prune($forum_id = 0) -{ - global $db, $lang; - - $sql = "SELECT * - FROM " . PRUNE_TABLE . " - WHERE forum_id = $forum_id"; - if ( !($result = $db->sql_query($sql)) ) - { - message_die(GENERAL_ERROR, 'Could not read auto_prune table', '', __LINE__, __FILE__, $sql); - } - - if ( $row = $db->sql_fetchrow($result) ) - { - if ( $row['prune_freq'] && $row['prune_days'] ) - { - $prune_date = time() - ( $row['prune_days'] * 86400 ); - $next_prune = time() + ( $row['prune_freq'] * 86400 ); - - prune($forum_id, $prune_date); - sync('forum', $forum_id); - - $sql = "UPDATE " . FORUMS_TABLE . " - SET prune_next = $next_prune - WHERE forum_id = $forum_id"; - if ( !$db->sql_query($sql) ) - { - message_die(GENERAL_ERROR, 'Could not update forum table', '', __LINE__, __FILE__, $sql); - } - } - } - - return; -} - -?>
\ No newline at end of file |