diff options
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/functions.php | 33 | ||||
-rw-r--r-- | phpBB/includes/functions_admin.php | 54 | ||||
-rw-r--r-- | phpBB/includes/session.php | 24 |
3 files changed, 53 insertions, 58 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 1e72f42fc4..4f8aca41e7 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -337,7 +337,7 @@ function make_jumpbox($action, $forum_id = false, $select_all = false) function language_select($default = '') { global $db, $phpbb_root_path, $phpEx; -/* + $sql = "SELECT lang_iso, lang_local_name FROM " . LANG_TABLE . " ORDER BY lang_english_name"; @@ -352,37 +352,6 @@ function language_select($default = '') $db->sql_freeresult($result); return $lang_options; -*/ - $dir = @opendir($phpbb_root_path . 'language'); - - $user = array(); - while ($file = readdir($dir)) - { - $path = $phpbb_root_path . 'language/' . $file; - - if (is_file($path) || is_link($path) || $file == '.' || $file == '..') - { - continue; - } - - if (file_exists($path . '/iso.txt')) - { - list($displayname) = @file($path . '/iso.txt'); - $lang[$displayname] = $file; - } - } - @closedir($dir); - - @asort($lang); - @reset($lang); - - foreach ($lang as $displayname => $filename) - { - $selected = (strtolower($default) == strtolower($filename)) ? ' selected="selected"' : ''; - $user_select .= '<option value="' . $filename . '"' . $selected . '>' . ucwords($displayname) . '</option>'; - } - - return $user_select; } // Pick a template/theme combo, diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index c14f105f41..4760e88905 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -1059,22 +1059,26 @@ function verify_data($type, $fieldname, &$need_update, &$data) } } -function prune($forum_id, $prune_date = '', $auto_sync = TRUE) +function prune($forum_id, $prune_date, $prune_flags = 0, $auto_sync = true) { global $db; - // Those without polls ... - // NOTE: can't remember why only those without polls :) -- Ashe - $sql = 'SELECT topic_id - FROM ' . TOPICS_TABLE . " - WHERE t.forum_id = $forum_id - AND poll_start = 0 - AND t.topic_type <> " . POST_ANNOUNCE; - - if ($prune_date != '') + $sql_and = ''; + if (!($prune_flags & 4)) + { + $sql_and .= ' AND topic_type <> ' . POST_ANNOUNCE; + } + if (!($prune_flags & 8)) { - $sql .= ' AND topic_last_post_time < ' . $prune_date; + $sql_and .= ' AND topic_type <> ' . POST_STICKY; } + + $sql = 'SELECT topic_id + FROM ' . TOPICS_TABLE . " + WHERE forum_id = $forum_id + AND topic_last_post_time < $prune_date + AND poll_start = 0 + $sql_and"; $result = $db->sql_query($sql); $topic_list = array(); @@ -1084,18 +1088,40 @@ function prune($forum_id, $prune_date = '', $auto_sync = TRUE) } $db->sql_freeresult($result); + if ($prune_flags & 2) + { + $sql = 'SELECT topic_id + FROM ' . TOPICS_TABLE . " + WHERE forum_id = $forum_id + AND poll_start > 0 + AND poll_last_vote < $prune_date + AND topic_last_post_time < $prune_date + $sql_and"; + $result = $db->sql_query($sql); + + while ($row = $db->sql_fetchrow($result)) + { + $topic_list[] = $row['topic_id']; + } + $db->sql_freeresult($result); + + $topic_list = array_unique($topic_list); + } + return delete_topics('topic_id', $topic_list, $auto_sync); } // Function auto_prune(), this function now relies on passed vars -function auto_prune($forum_id, $prune_days, $prune_freq) +function auto_prune($forum_id, $prune_flags, $prune_days, $prune_freq) { + global $db; + $prune_date = time() - ($prune_days * 86400); $next_prune = time() + ($prune_freq * 86400); - prune($forum_id, $prune_date); + prune($forum_id, $prune_date, $prune_flags, true); - $sql = "UPDATE " . FORUMS_TABLE . " + $sql = 'UPDATE ' . FORUMS_TABLE . " SET prune_next = $next_prune WHERE forum_id = $forum_id"; $db->sql_query($sql); diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 9f350c868e..ee234922d0 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -289,12 +289,12 @@ class session $SID = '?sid='; // Delete existing session, update last visit info first! - $sql = "UPDATE " . USERS_TABLE . " - SET user_lastvisit = " . intval($this->data['session_time']) . " - WHERE user_id = " . $this->data['user_id']; + $sql = 'UPDATE ' . USERS_TABLE . ' + SET user_lastvisit = ' . $this->data['session_time'] . ' + WHERE user_id = ' . $this->data['user_id']; $db->sql_query($sql); - $sql = "DELETE FROM " . SESSIONS_TABLE . " + $sql = 'DELETE FROM ' . SESSIONS_TABLE . " WHERE session_id = '" . $this->session_id . "' AND session_user_id = " . $this->data['user_id']; $db->sql_query($sql); @@ -310,10 +310,10 @@ class session global $db, $config; // Get expired sessions, only most recent for each user - $sql = "SELECT session_user_id, session_page, MAX(session_time) AS recent_time - FROM " . SESSIONS_TABLE . " - WHERE session_time < " . ($current_time - $config['session_length']) . " - GROUP BY session_user_id, session_page"; + $sql = 'SELECT session_user_id, session_page, MAX(session_time) AS recent_time + FROM ' . SESSIONS_TABLE . ' + WHERE session_time < ' . ($current_time - $config['session_length']) . ' + GROUP BY session_user_id, session_page'; $result = $db->sql_query_limit($sql, 5); $del_user_id = ''; @@ -322,10 +322,10 @@ class session { do { - if (intval($row['session_user_id']) != ANONYMOUS) + if ($row['session_user_id'] != ANONYMOUS) { - $sql = "UPDATE " . USERS_TABLE . " - SET user_lastvisit = " . $row['recent_time'] . ", user_lastpage = '" . $db->sql_escape($row['session_page']) . "' + $sql = 'UPDATE ' . USERS_TABLE . ' + SET user_lastvisit = ' . $row['recent_time'] . ", user_lastpage = '" . $db->sql_escape($row['session_page']) . "' WHERE user_id = " . $row['session_user_id']; $db->sql_query($sql); } @@ -339,7 +339,7 @@ class session if ($del_user_id != '') { // Delete expired sessions - $sql = "DELETE FROM " . SESSIONS_TABLE . " + $sql = 'DELETE FROM ' . SESSIONS_TABLE . " WHERE session_user_id IN ($del_user_id) AND session_time < " . ($current_time - $config['session_length']); $db->sql_query($sql); |