aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/functions.php33
-rw-r--r--phpBB/includes/functions_admin.php54
-rw-r--r--phpBB/includes/session.php24
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);