Merge commit 'release-3.0.1'

This commit is contained in:
Nils Adermann 2010-03-02 01:05:38 +01:00
commit 5324afeffd
19 changed files with 529 additions and 439 deletions

View file

@ -148,6 +148,8 @@
<li>[Fix] If pruning users based on last activity, do not include users never logged in before (Bug #18105)</li> <li>[Fix] If pruning users based on last activity, do not include users never logged in before (Bug #18105)</li>
<li>[Sec] Only allow searching by email address in memberlist for users having the a_user permission (reported by evil&lt;3)</li> <li>[Sec] Only allow searching by email address in memberlist for users having the a_user permission (reported by evil&lt;3)</li>
<li>[Sec] Limit private message attachments to be viewable only by the recipient(s)/sender (Report #s23535) - reported by AlleyKat</li> <li>[Sec] Limit private message attachments to be viewable only by the recipient(s)/sender (Report #s23535) - reported by AlleyKat</li>
<li>[Sec] Check for non-empty config.php within style.php (Report #s24575) - reported by bantu</li>
<li>[Fix] Find and display colliding usernames correctly when converting from one database to another (Bug #23925)</li>
</ul> </ul>
<a name="v30rc8"></a><h3>1.i. Changes since 3.0.RC8</h3> <a name="v30rc8"></a><h3>1.i. Changes since 3.0.RC8</h3>

View file

@ -99,9 +99,13 @@ class acp_attachments
$display_vars = array( $display_vars = array(
'title' => 'ACP_ATTACHMENT_SETTINGS', 'title' => 'ACP_ATTACHMENT_SETTINGS',
'vars' => array( 'vars' => array(
'img_max_width' => false, 'img_max_height' => false, 'img_link_width' => false, 'img_link_height' => false,
'legend1' => 'ACP_ATTACHMENT_SETTINGS', 'legend1' => 'ACP_ATTACHMENT_SETTINGS',
'img_max_width' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
'img_max_height' => array('lang' => 'MAX_IMAGE_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
'img_link_width' => array('lang' => 'IMAGE_LINK_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
'img_link_height' => array('lang' => 'IMAGE_LINK_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
'allow_attachments' => array('lang' => 'ALLOW_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false), 'allow_attachments' => array('lang' => 'ALLOW_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
'allow_pm_attach' => array('lang' => 'ALLOW_PM_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false), 'allow_pm_attach' => array('lang' => 'ALLOW_PM_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
'upload_path' => array('lang' => 'UPLOAD_DIR', 'validate' => 'wpath', 'type' => 'text:25:100', 'explain' => true), 'upload_path' => array('lang' => 'UPLOAD_DIR', 'validate' => 'wpath', 'type' => 'text:25:100', 'explain' => true),

View file

@ -102,7 +102,11 @@ class acp_board
'title' => 'ACP_AVATAR_SETTINGS', 'title' => 'ACP_AVATAR_SETTINGS',
'vars' => array( 'vars' => array(
'legend1' => 'ACP_AVATAR_SETTINGS', 'legend1' => 'ACP_AVATAR_SETTINGS',
'avatar_min_height' => false, 'avatar_min_width' => false, 'avatar_max_height' => false, 'avatar_max_width' => false,
'avatar_min_width' => array('lang' => 'MIN_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
'avatar_min_height' => array('lang' => 'MIN_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
'avatar_max_width' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
'avatar_max_height' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
'allow_avatar_local' => array('lang' => 'ALLOW_LOCAL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false), 'allow_avatar_local' => array('lang' => 'ALLOW_LOCAL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
'allow_avatar_remote' => array('lang' => 'ALLOW_REMOTE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true), 'allow_avatar_remote' => array('lang' => 'ALLOW_REMOTE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),

View file

@ -341,6 +341,7 @@ class acp_database
break; break;
case 'postgres': case 'postgres':
$delim = ";\n";
while (($sql = $fgetd($fp, $delim, $read, $seek, $eof)) !== false) while (($sql = $fgetd($fp, $delim, $read, $seek, $eof)) !== false)
{ {
$query = trim($sql); $query = trim($sql);

View file

@ -2945,7 +2945,7 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
{ {
if (@extension_loaded('zlib') && !headers_sent()) if (@extension_loaded('zlib') && !headers_sent())
{ {
ob_flush(); @ob_flush();
} }
} }
@ -3215,7 +3215,7 @@ function obtain_users_online($forum_id = 0)
*/ */
function obtain_users_online_string($online_users, $forum_id = 0) function obtain_users_online_string($online_users, $forum_id = 0)
{ {
global $db, $user, $auth; global $config, $db, $user, $auth;
$user_online_link = $online_userlist = ''; $user_online_link = $online_userlist = '';
@ -3256,34 +3256,45 @@ function obtain_users_online_string($online_users, $forum_id = 0)
{ {
$online_userlist = $user->lang['REGISTERED_USERS'] . ' ' . $online_userlist; $online_userlist = $user->lang['REGISTERED_USERS'] . ' ' . $online_userlist;
} }
else else if ($config['load_online_guests'])
{ {
$l_online = ($online_users['guests_online'] === 1) ? $user->lang['BROWSING_FORUM_GUEST'] : $user->lang['BROWSING_FORUM_GUESTS']; $l_online = ($online_users['guests_online'] === 1) ? $user->lang['BROWSING_FORUM_GUEST'] : $user->lang['BROWSING_FORUM_GUESTS'];
$online_userlist = sprintf($l_online, $online_userlist, $online_users['guests_online']); $online_userlist = sprintf($l_online, $online_userlist, $online_users['guests_online']);
} }
else
{
$online_userlist = sprintf($user->lang['BROWSING_FORUM'], $online_userlist);
}
// Build online listing // Build online listing
$vars_online = array( $vars_online = array(
'ONLINE' => array('total_online', 'l_t_user_s'), 'ONLINE' => array('total_online', 'l_t_user_s', 0),
'REG' => array('visible_online', 'l_r_user_s'), 'REG' => array('visible_online', 'l_r_user_s', !$config['load_online_guests']),
'HIDDEN' => array('hidden_online', 'l_h_user_s'), 'HIDDEN' => array('hidden_online', 'l_h_user_s', $config['load_online_guests']),
'GUEST' => array('guests_online', 'l_g_user_s') 'GUEST' => array('guests_online', 'l_g_user_s', 0)
); );
foreach ($vars_online as $l_prefix => $var_ary) foreach ($vars_online as $l_prefix => $var_ary)
{ {
if ($var_ary[2])
{
$l_suffix = '_AND';
}
else
{
$l_suffix = '';
}
switch ($online_users[$var_ary[0]]) switch ($online_users[$var_ary[0]])
{ {
case 0: case 0:
${$var_ary[1]} = $user->lang[$l_prefix . '_USERS_ZERO_TOTAL']; ${$var_ary[1]} = $user->lang[$l_prefix . '_USERS_ZERO_TOTAL' . $l_suffix];
break; break;
case 1: case 1:
${$var_ary[1]} = $user->lang[$l_prefix . '_USER_TOTAL']; ${$var_ary[1]} = $user->lang[$l_prefix . '_USER_TOTAL' . $l_suffix];
break; break;
default: default:
${$var_ary[1]} = $user->lang[$l_prefix . '_USERS_TOTAL']; ${$var_ary[1]} = $user->lang[$l_prefix . '_USERS_TOTAL' . $l_suffix];
break; break;
} }
} }
@ -3292,7 +3303,13 @@ function obtain_users_online_string($online_users, $forum_id = 0)
$l_online_users = sprintf($l_t_user_s, $online_users['total_online']); $l_online_users = sprintf($l_t_user_s, $online_users['total_online']);
$l_online_users .= sprintf($l_r_user_s, $online_users['visible_online']); $l_online_users .= sprintf($l_r_user_s, $online_users['visible_online']);
$l_online_users .= sprintf($l_h_user_s, $online_users['hidden_online']); $l_online_users .= sprintf($l_h_user_s, $online_users['hidden_online']);
if ($config['load_online_guests'])
{
$l_online_users .= sprintf($l_g_user_s, $online_users['guests_online']); $l_online_users .= sprintf($l_g_user_s, $online_users['guests_online']);
}
return array( return array(
'online_userlist' => $online_userlist, 'online_userlist' => $online_userlist,
@ -3645,6 +3662,9 @@ function exit_handler()
} }
} }
// As a pre-caution... some setups display a blank page if the flush() is not there.
@flush();
exit; exit;
} }

View file

@ -182,7 +182,7 @@ function user_add($user_row, $cp_data = false)
'user_timezone' => $config['board_timezone'], 'user_timezone' => $config['board_timezone'],
'user_dateformat' => $config['default_dateformat'], 'user_dateformat' => $config['default_dateformat'],
'user_lang' => $config['default_lang'], 'user_lang' => $config['default_lang'],
'user_style' => $config['default_style'], 'user_style' => (int) $config['default_style'],
'user_allow_pm' => 1, 'user_allow_pm' => 1,
'user_actkey' => '', 'user_actkey' => '',
'user_ip' => '', 'user_ip' => '',

View file

@ -164,7 +164,7 @@ function mcp_forum_view($id, $mode, $action, $forum_info)
$sql = "SELECT t.*$read_tracking_select $sql = "SELECT t.*$read_tracking_select
FROM " . TOPICS_TABLE . " t $read_tracking_join FROM " . TOPICS_TABLE . " t $read_tracking_join
WHERE " . $db->sql_in_set('t.topic_id', $topic_list); WHERE " . $db->sql_in_set('t.topic_id', $topic_list, false, true);
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) while ($row = $db->sql_fetchrow($result))
@ -389,7 +389,7 @@ function merge_topics($forum_id, $topic_ids, $to_topic_id)
return; return;
} }
$redirect = request_var('redirect', build_url(array('_f_', 'quickmod'))); $redirect = request_var('redirect', build_url(array('quickmod')));
$s_hidden_fields = build_hidden_fields(array( $s_hidden_fields = build_hidden_fields(array(
'i' => 'main', 'i' => 'main',

View file

@ -311,10 +311,25 @@ class session
$sql_ary['session_forum_id'] = $this->page['forum']; $sql_ary['session_forum_id'] = $this->page['forum'];
} }
$db->sql_return_on_error(true);
$sql = 'UPDATE ' . SESSIONS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . "
WHERE session_id = '" . $db->sql_escape($this->session_id) . "'";
$result = $db->sql_query($sql);
$db->sql_return_on_error(false);
// If the database is not yet updated, there will be an error due to the session_forum_id
// @todo REMOVE for 3.0.2
if ($result === false)
{
unset($sql_ary['session_forum_id']);
$sql = 'UPDATE ' . SESSIONS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " $sql = 'UPDATE ' . SESSIONS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . "
WHERE session_id = '" . $db->sql_escape($this->session_id) . "'"; WHERE session_id = '" . $db->sql_escape($this->session_id) . "'";
$db->sql_query($sql); $db->sql_query($sql);
} }
}
$this->data['is_registered'] = ($this->data['user_id'] != ANONYMOUS && ($this->data['user_type'] == USER_NORMAL || $this->data['user_type'] == USER_FOUNDER)) ? true : false; $this->data['is_registered'] = ($this->data['user_id'] != ANONYMOUS && ($this->data['user_type'] == USER_NORMAL || $this->data['user_type'] == USER_FOUNDER)) ? true : false;
$this->data['is_bot'] = (!$this->data['is_registered'] && $this->data['user_id'] != ANONYMOUS) ? true : false; $this->data['is_bot'] = (!$this->data['is_registered'] && $this->data['user_id'] != ANONYMOUS) ? true : false;

View file

@ -31,8 +31,8 @@ unset($dbpasswd);
*/ */
$convertor_data = array( $convertor_data = array(
'forum_name' => 'phpBB 2.0.x', 'forum_name' => 'phpBB 2.0.x',
'version' => '1.0.0', 'version' => '1.0.1',
'phpbb_version' => '3.0.0', 'phpbb_version' => '3.0.1',
'author' => '<a href="http://www.phpbb.com/">phpBB Group</a>', 'author' => '<a href="http://www.phpbb.com/">phpBB Group</a>',
'dbms' => $dbms, 'dbms' => $dbms,
'dbhost' => $dbhost, 'dbhost' => $dbhost,

View file

@ -1856,7 +1856,7 @@ function phpbb_check_username_collisions()
$result = $src_db->sql_query($sql); $result = $src_db->sql_query($sql);
$colliding_users = array(); $colliding_users = array();
while ($row = $db->sql_fetchrow($result)) while ($row = $src_db->sql_fetchrow($result))
{ {
$row['user_id'] = (int) $row['user_id']; $row['user_id'] = (int) $row['user_id'];
if (isset($colliding_user_ids[$row['user_id']])) if (isset($colliding_user_ids[$row['user_id']]))
@ -1864,7 +1864,7 @@ function phpbb_check_username_collisions()
$colliding_users[$colliding_user_ids[$row['user_id']]][] = $row; $colliding_users[$colliding_user_ids[$row['user_id']]][] = $row;
} }
} }
$db->sql_freeresult($result); $src_db->sql_freeresult($result);
unset($colliding_user_ids); unset($colliding_user_ids);
$list = ''; $list = '';

View file

@ -8,7 +8,7 @@
* *
*/ */
$updates_to_version = '3.0.1-RC1'; $updates_to_version = '3.0.1';
// Return if we "just include it" to find out for which version the database update is responsible for // Return if we "just include it" to find out for which version the database update is responsible for
if (defined('IN_PHPBB') && defined('IN_INSTALL')) if (defined('IN_PHPBB') && defined('IN_INSTALL'))
@ -1082,16 +1082,23 @@ if ($exit)
flush(); flush();
// We go through the schema changes from the lowest to the highest version // We go through the schema changes from the lowest to the highest version
// We skip those versions older than the current version // We try to also include versions 'in-between'...
$no_updates = true; $no_updates = true;
foreach ($database_update_info as $version => $schema_changes) $versions = array_keys($database_update_info);
for ($i = 0; $i < sizeof($versions); $i++)
{ {
if (version_compare($version, $current_version, '<')) $version = $versions[$i];
$schema_changes = $database_update_info[$version];
$next_version = (isset($versions[$i + 1])) ? $versions[$i + 1] : $updates_to_version;
if (!sizeof($schema_changes))
{ {
continue; continue;
} }
if (!sizeof($schema_changes)) // If the installed version to be updated to is < than the current version, and if the current version is >= as the version to be updated to next, we will skip the process
if (version_compare($version, $current_version, '<') && version_compare($current_version, $next_version, '>='))
{ {
continue; continue;
} }
@ -1203,13 +1210,153 @@ flush();
$no_updates = true; $no_updates = true;
$versions = array(
'3.0.RC2', '3.0.RC3', '3.0.RC4', '3.0.RC5', '3.0.0'
);
// some code magic // some code magic
if (version_compare($current_version, '3.0.RC2', '<=')) for ($i = 0; $i < sizeof($versions); $i++)
{ {
$version = $versions[$i];
$next_version = (isset($versions[$i + 1])) ? $versions[$i + 1] : $updates_to_version;
// If the installed version to be updated to is < than the current version, and if the current version is >= as the version to be updated to next, we will skip the process
if (version_compare($version, $current_version, '<') && version_compare($current_version, $next_version, '>='))
{
continue;
}
$no_updates = false;
change_database_data($version);
}
_write_result($no_updates, $errored, $error_ary);
$error_ary = array();
$errored = $no_updates = false;
?>
<br /><br />
<h1><?php echo $lang['UPDATE_VERSION_OPTIMIZE']; ?></h1>
<br />
<p><?php echo $lang['PROGRESS']; ?> :: <strong>
<?php
flush();
// update the version
$sql = "UPDATE " . CONFIG_TABLE . "
SET config_value = '$updates_to_version'
WHERE config_name = 'version'";
_sql($sql, $errored, $error_ary);
// Reset permissions
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_permissions = '',
user_perm_from = 0";
_sql($sql, $errored, $error_ary);
/* Optimize/vacuum analyze the tables where appropriate
// this should be done for each version in future along with
// the version number update
switch ($db->sql_layer)
{
case 'mysql':
case 'mysqli':
case 'mysql4':
$sql = 'OPTIMIZE TABLE ' . $table_prefix . 'auth_access, ' . $table_prefix . 'banlist, ' . $table_prefix . 'categories, ' . $table_prefix . 'config, ' . $table_prefix . 'disallow, ' . $table_prefix . 'forum_prune, ' . $table_prefix . 'forums, ' . $table_prefix . 'groups, ' . $table_prefix . 'posts, ' . $table_prefix . 'posts_text, ' . $table_prefix . 'privmsgs, ' . $table_prefix . 'privmsgs_text, ' . $table_prefix . 'ranks, ' . $table_prefix . 'search_results, ' . $table_prefix . 'search_wordlist, ' . $table_prefix . 'search_wordmatch, ' . $table_prefix . 'sessions_keys' . $table_prefix . 'smilies, ' . $table_prefix . 'themes, ' . $table_prefix . 'themes_name, ' . $table_prefix . 'topics, ' . $table_prefix . 'topics_watch, ' . $table_prefix . 'user_group, ' . $table_prefix . 'users, ' . $table_prefix . 'vote_desc, ' . $table_prefix . 'vote_results, ' . $table_prefix . 'vote_voters, ' . $table_prefix . 'words';
_sql($sql, $errored, $error_ary);
break;
case 'postgresql':
_sql("VACUUM ANALYZE", $errored, $error_ary);
break;
}
*/
_write_result($no_updates, $errored, $error_ary);
?>
<br />
<h1><?php echo $lang['UPDATE_COMPLETED']; ?></h1>
<br />
<?php
if (!$inline_update)
{
// Purge the cache...
$cache->purge();
?>
<p style="color:red"><?php echo $lang['UPDATE_FILES_NOTICE']; ?></p>
<p><?php echo $lang['COMPLETE_LOGIN_TO_BOARD']; ?></p>
<?php
}
else
{
?>
<p><?php echo ((isset($lang['INLINE_UPDATE_SUCCESSFUL'])) ? $lang['INLINE_UPDATE_SUCCESSFUL'] : 'The database update was successful. Now you need to continue the update process.'); ?></p>
<p><a href="<?php echo append_sid("{$phpbb_root_path}install/index.{$phpEx}", "mode=update&amp;sub=file_check&amp;lang=$language"); ?>" class="button1"><?php echo (isset($lang['CONTINUE_UPDATE_NOW'])) ? $lang['CONTINUE_UPDATE_NOW'] : 'Continue the update process now'; ?></a></p>
<?php
}
// Add database update to log
add_log('admin', 'LOG_UPDATE_DATABASE', $orig_version, $updates_to_version);
// Now we purge the session table as well as all cache files
$cache->purge();
?>
</div>
</div>
<span class="corners-bottom"><span></span></span>
</div>
</div>
</div>
<div id="page-footer">
Powered by phpBB &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
</div>
</div>
</body>
</html>
<?php
garbage_collection();
if (function_exists('exit_handler'))
{
exit_handler();
}
/**
* Function where all data changes are executed
*/
function change_database_data($version)
{
global $db, $map_dbms, $errored, $error_ary, $config, $phpbb_root_path;
switch ($version)
{
case '3.0.RC2':
$smileys = array(); $smileys = array();
$sql = 'SELECT smiley_id, code $sql = 'SELECT smiley_id, code
FROM ' . SMILIES_TABLE; FROM ' . SMILIES_TABLE;
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) while ($row = $db->sql_fetchrow($result))
@ -1245,11 +1392,10 @@ if (version_compare($current_version, '3.0.RC2', '<='))
sql_create_index($map_dbms, 'ath_op_id', ACL_ROLES_DATA_TABLE, array('auth_option_id')); sql_create_index($map_dbms, 'ath_op_id', ACL_ROLES_DATA_TABLE, array('auth_option_id'));
} }
$no_updates = false; break;
}
case '3.0.RC3':
if (version_compare($current_version, '3.0.RC3', '<='))
{
if ($map_dbms === 'postgres') if ($map_dbms === 'postgres')
{ {
$sql = "SELECT SETVAL('" . FORUMS_TABLE . "_seq',(select case when max(forum_id)>0 then max(forum_id)+1 else 1 end from " . FORUMS_TABLE . '));'; $sql = "SELECT SETVAL('" . FORUMS_TABLE . "_seq',(select case when max(forum_id)>0 then max(forum_id)+1 else 1 end from " . FORUMS_TABLE . '));';
@ -1324,7 +1470,6 @@ if (version_compare($current_version, '3.0.RC3', '<='))
foreach ($index_repair_list as $new_index => $garbage) foreach ($index_repair_list as $new_index => $garbage)
{ {
sql_create_index($map_dbms, $new_index, $bad_table, $new_index_defs[$new_index]); sql_create_index($map_dbms, $new_index, $bad_table, $new_index_defs[$new_index]);
$no_updates = false;
} }
} }
@ -1336,11 +1481,10 @@ if (version_compare($current_version, '3.0.RC3', '<='))
set_config('allow_birthdays', '1'); set_config('allow_birthdays', '1');
set_config('cron_lock', '0', true); set_config('cron_lock', '0', true);
$no_updates = false; break;
}
case '3.0.RC4':
if (version_compare($current_version, '3.0.RC4', '<='))
{
$update_auto_increment = array( $update_auto_increment = array(
STYLES_TABLE => 'style_id', STYLES_TABLE => 'style_id',
STYLES_TEMPLATE_TABLE => 'template_id', STYLES_TEMPLATE_TABLE => 'template_id',
@ -1456,8 +1600,6 @@ if (version_compare($current_version, '3.0.RC4', '<='))
$max_id = ((int) $row['max_id']) + 1; $max_id = ((int) $row['max_id']) + 1;
_sql("ALTER TABLE {$auto_table_name} AUTO_INCREMENT = {$max_id}", $errored, $error_ary); _sql("ALTER TABLE {$auto_table_name} AUTO_INCREMENT = {$max_id}", $errored, $error_ary);
} }
$no_updates = false;
} }
else if ($map_dbms == 'postgres') else if ($map_dbms == 'postgres')
{ {
@ -1536,11 +1678,10 @@ if (version_compare($current_version, '3.0.RC4', '<='))
set_config('ldap_port', ''); set_config('ldap_port', '');
set_config('ldap_user_filter', ''); set_config('ldap_user_filter', '');
$no_updates = false; break;
}
case '3.0.RC5':
if (version_compare($current_version, '3.0.RC5', '<='))
{
// In case the user is having the bot mediapartner google "as is", adjust it. // In case the user is having the bot mediapartner google "as is", adjust it.
$sql = 'UPDATE ' . BOTS_TABLE . " $sql = 'UPDATE ' . BOTS_TABLE . "
SET bot_agent = '" . $db->sql_escape('Mediapartners-Google') . "' SET bot_agent = '" . $db->sql_escape('Mediapartners-Google') . "'
@ -1570,12 +1711,10 @@ if (version_compare($current_version, '3.0.RC5', '<='))
$db->sql_transaction('commit'); $db->sql_transaction('commit');
$no_updates = false; break;
}
case '3.0.0':
if (version_compare($current_version, '3.0.0', '<='))
{
$sql = 'UPDATE ' . TOPICS_TABLE . " $sql = 'UPDATE ' . TOPICS_TABLE . "
SET topic_last_view_time = topic_last_post_time SET topic_last_view_time = topic_last_post_time
WHERE topic_last_view_time = 0"; WHERE topic_last_view_time = 0";
@ -1583,6 +1722,7 @@ if (version_compare($current_version, '3.0.0', '<='))
// Update smiley sizes // Update smiley sizes
$smileys = array('icon_e_surprised.gif', 'icon_eek.gif', 'icon_cool.gif', 'icon_lol.gif', 'icon_mad.gif', 'icon_razz.gif', 'icon_redface.gif', 'icon_cry.gif', 'icon_evil.gif', 'icon_twisted.gif', 'icon_rolleyes.gif', 'icon_exclaim.gif', 'icon_question.gif', 'icon_idea.gif', 'icon_arrow.gif', 'icon_neutral.gif', 'icon_mrgreen.gif', 'icon_e_ugeek.gif'); $smileys = array('icon_e_surprised.gif', 'icon_eek.gif', 'icon_cool.gif', 'icon_lol.gif', 'icon_mad.gif', 'icon_razz.gif', 'icon_redface.gif', 'icon_cry.gif', 'icon_evil.gif', 'icon_twisted.gif', 'icon_rolleyes.gif', 'icon_exclaim.gif', 'icon_question.gif', 'icon_idea.gif', 'icon_arrow.gif', 'icon_neutral.gif', 'icon_mrgreen.gif', 'icon_e_ugeek.gif');
foreach ($smileys as $smiley) foreach ($smileys as $smiley)
{ {
if (file_exists($phpbb_root_path . 'images/smilies/' . $smiley)) if (file_exists($phpbb_root_path . 'images/smilies/' . $smiley))
@ -1599,117 +1739,9 @@ if (version_compare($current_version, '3.0.0', '<='))
// TODO: remove all form token min times // TODO: remove all form token min times
$no_updates = false;
}
_write_result($no_updates, $errored, $error_ary);
$error_ary = array();
$errored = $no_updates = false;
?>
<br /><br />
<h1><?php echo $lang['UPDATE_VERSION_OPTIMIZE']; ?></h1>
<br />
<p><?php echo $lang['PROGRESS']; ?> :: <strong>
<?php
flush();
// update the version
$sql = "UPDATE " . CONFIG_TABLE . "
SET config_value = '$updates_to_version'
WHERE config_name = 'version'";
_sql($sql, $errored, $error_ary);
// Reset permissions
$sql = 'UPDATE ' . USERS_TABLE . "
SET user_permissions = ''";
_sql($sql, $errored, $error_ary);
/* Optimize/vacuum analyze the tables where appropriate
// this should be done for each version in future along with
// the version number update
switch ($db->sql_layer)
{
case 'mysql':
case 'mysqli':
case 'mysql4':
$sql = 'OPTIMIZE TABLE ' . $table_prefix . 'auth_access, ' . $table_prefix . 'banlist, ' . $table_prefix . 'categories, ' . $table_prefix . 'config, ' . $table_prefix . 'disallow, ' . $table_prefix . 'forum_prune, ' . $table_prefix . 'forums, ' . $table_prefix . 'groups, ' . $table_prefix . 'posts, ' . $table_prefix . 'posts_text, ' . $table_prefix . 'privmsgs, ' . $table_prefix . 'privmsgs_text, ' . $table_prefix . 'ranks, ' . $table_prefix . 'search_results, ' . $table_prefix . 'search_wordlist, ' . $table_prefix . 'search_wordmatch, ' . $table_prefix . 'sessions_keys' . $table_prefix . 'smilies, ' . $table_prefix . 'themes, ' . $table_prefix . 'themes_name, ' . $table_prefix . 'topics, ' . $table_prefix . 'topics_watch, ' . $table_prefix . 'user_group, ' . $table_prefix . 'users, ' . $table_prefix . 'vote_desc, ' . $table_prefix . 'vote_results, ' . $table_prefix . 'vote_voters, ' . $table_prefix . 'words';
_sql($sql, $errored, $error_ary);
break;
case 'postgresql':
_sql("VACUUM ANALYZE", $errored, $error_ary);
break; break;
} }
*/
_write_result($no_updates, $errored, $error_ary);
?>
<br />
<h1><?php echo $lang['UPDATE_COMPLETED']; ?></h1>
<br />
<?php
if (!$inline_update)
{
?>
<p style="color:red"><?php echo $lang['UPDATE_FILES_NOTICE']; ?></p>
<p><?php echo $lang['COMPLETE_LOGIN_TO_BOARD']; ?></p>
<?php
} }
else
{
?>
<p><?php echo ((isset($lang['INLINE_UPDATE_SUCCESSFUL'])) ? $lang['INLINE_UPDATE_SUCCESSFUL'] : 'The database update was successful. Now you need to continue the update process.'); ?></p>
<p><a href="<?php echo append_sid("{$phpbb_root_path}install/index.{$phpEx}", "mode=update&amp;sub=file_check&amp;lang=$language"); ?>" class="button1"><?php echo (isset($lang['CONTINUE_UPDATE_NOW'])) ? $lang['CONTINUE_UPDATE_NOW'] : 'Continue the update process now'; ?></a></p>
<?php
}
// Add database update to log
add_log('admin', 'LOG_UPDATE_DATABASE', $orig_version, $updates_to_version);
// Now we purge the session table as well as all cache files
$cache->purge();
?>
</div>
</div>
<span class="corners-bottom"><span></span></span>
</div>
</div>
</div>
<div id="page-footer">
Powered by phpBB &copy; 2000, 2002, 2005, 2007 <a href="http://www.phpbb.com/">phpBB Group</a>
</div>
</div>
</body>
</html>
<?php
garbage_collection();
if (function_exists('exit_handler'))
{
exit_handler();
}
/** /**
* Function for triggering an sql statement * Function for triggering an sql statement

View file

@ -213,7 +213,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('topics_per_page',
INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('tpl_allow_php', '0');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_icons_path', 'images/upload_icons');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('upload_path', 'files');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.1-RC1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('version', '3.0.1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_expire_days', '90');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('warnings_gc', '14400');

View file

@ -264,10 +264,10 @@ $lang = array_merge($lang, array(
'SELECT_ANONYMOUS' => 'Select anonymous user', 'SELECT_ANONYMOUS' => 'Select anonymous user',
'SELECT_OPTION' => 'Select option', 'SELECT_OPTION' => 'Select option',
'SETTING_TOO_LOW' => 'The entered value for the setting “%s” is too low. The minimal allowed value is %d.', 'SETTING_TOO_LOW' => 'The entered value for the setting “%1$s” is too low. The minimal allowed value is %2$d.',
'SETTING_TOO_BIG' => 'The entered value for the setting “%s” is too big. The maximal allowed value is %d.', 'SETTING_TOO_BIG' => 'The entered value for the setting “%1$s” is too big. The maximal allowed value is %2$d.',
'SETTING_TOO_LONG' => 'The entered value for the setting “%s” is too long. The maximal allowed length is %d.', 'SETTING_TOO_LONG' => 'The entered value for the setting “%1$s” is too long. The maximal allowed length is %2$d.',
'SETTING_TOO_SHORT' => 'The entered value for the setting “%s” is not long enough. The minimal allowed length is %d.', 'SETTING_TOO_SHORT' => 'The entered value for the setting “%1$s” is not long enough. The minimal allowed length is %2$d.',
'UCP' => 'User Control Panel', 'UCP' => 'User Control Panel',
'USERNAMES_EXPLAIN' => 'Place each username on a separate line.', 'USERNAMES_EXPLAIN' => 'Place each username on a separate line.',

View file

@ -47,7 +47,7 @@ $lang = array_merge($lang, array(
'CANNOT_DEACTIVATE_BOT' => 'You are not allowed to deactivate bot accounts. Please deactivate the bot within the bots page instead.', 'CANNOT_DEACTIVATE_BOT' => 'You are not allowed to deactivate bot accounts. Please deactivate the bot within the bots page instead.',
'CANNOT_DEACTIVATE_FOUNDER' => 'You are not allowed to deactivate founder accounts.', 'CANNOT_DEACTIVATE_FOUNDER' => 'You are not allowed to deactivate founder accounts.',
'CANNOT_DEACTIVATE_YOURSELF' => 'You are not allowed to deactivate your own account.', 'CANNOT_DEACTIVATE_YOURSELF' => 'You are not allowed to deactivate your own account.',
'CANNOT_FORCE_REACT_BOT' => 'You are not allowed to force reactivation on bot accounts. Please deactivate the bot within the bots page instead.', 'CANNOT_FORCE_REACT_BOT' => 'You are not allowed to force reactivation on bot accounts. Please reactivate the bot within the bots page instead.',
'CANNOT_FORCE_REACT_FOUNDER' => 'You are not allowed to force reactivation on founder accounts.', 'CANNOT_FORCE_REACT_FOUNDER' => 'You are not allowed to force reactivation on founder accounts.',
'CANNOT_FORCE_REACT_YOURSELF' => 'You are not allowed to force reactivation of your own account.', 'CANNOT_FORCE_REACT_YOURSELF' => 'You are not allowed to force reactivation of your own account.',
'CANNOT_REMOVE_ANONYMOUS' => 'You are not able to remove the guest user account.', 'CANNOT_REMOVE_ANONYMOUS' => 'You are not able to remove the guest user account.',

View file

@ -106,6 +106,7 @@ $lang = array_merge($lang, array(
'BOARD_DISABLE' => 'Sorry but this board is currently unavailable.', 'BOARD_DISABLE' => 'Sorry but this board is currently unavailable.',
'BOARD_DISABLED' => 'This board is currently disabled.', 'BOARD_DISABLED' => 'This board is currently disabled.',
'BOARD_UNAVAILABLE' => 'Sorry but the board is temporarily unavailable, please try again in a few minutes.', 'BOARD_UNAVAILABLE' => 'Sorry but the board is temporarily unavailable, please try again in a few minutes.',
'BROWSING_FORUM' => 'Users browsing this forum: %1$s',
'BROWSING_FORUM_GUEST' => 'Users browsing this forum: %1$s and %2$d guest', 'BROWSING_FORUM_GUEST' => 'Users browsing this forum: %1$s and %2$d guest',
'BROWSING_FORUM_GUESTS' => 'Users browsing this forum: %1$s and %2$d guests', 'BROWSING_FORUM_GUESTS' => 'Users browsing this forum: %1$s and %2$d guests',
'BYTES' => 'Bytes', 'BYTES' => 'Bytes',
@ -246,11 +247,14 @@ $lang = array_merge($lang, array(
'G_GLOBAL_MODERATORS' => 'Global moderators', 'G_GLOBAL_MODERATORS' => 'Global moderators',
'HIDDEN_USERS_ONLINE' => '%d hidden users online', 'HIDDEN_USERS_ONLINE' => '%d hidden users online',
'HIDDEN_USERS_TOTAL' => '%d hidden and ', 'HIDDEN_USERS_TOTAL' => '%d hidden',
'HIDDEN_USERS_TOTAL_AND' => '%d hidden and ',
'HIDDEN_USERS_ZERO_ONLINE' => '0 hidden users online', 'HIDDEN_USERS_ZERO_ONLINE' => '0 hidden users online',
'HIDDEN_USERS_ZERO_TOTAL' => '0 hidden and ', 'HIDDEN_USERS_ZERO_TOTAL' => '0 hidden',
'HIDDEN_USERS_ZERO_TOTAL_AND' => '0 hidden and ',
'HIDDEN_USER_ONLINE' => '%d hidden user online', 'HIDDEN_USER_ONLINE' => '%d hidden user online',
'HIDDEN_USER_TOTAL' => '%d hidden and ', 'HIDDEN_USER_TOTAL' => '%d hidden',
'HIDDEN_USER_TOTAL_AND' => '%d hidden and ',
'HIDE_GUESTS' => 'Hide guests', 'HIDE_GUESTS' => 'Hide guests',
'HIDE_ME' => 'Hide my online status this session', 'HIDE_ME' => 'Hide my online status this session',
'HOURS' => 'Hours', 'HOURS' => 'Hours',
@ -446,10 +450,13 @@ $lang = array_merge($lang, array(
'REGISTERED_USERS' => 'Registered users:', 'REGISTERED_USERS' => 'Registered users:',
'REG_USERS_ONLINE' => 'There are %d registered users and ', 'REG_USERS_ONLINE' => 'There are %d registered users and ',
'REG_USERS_TOTAL' => '%d registered, ', 'REG_USERS_TOTAL' => '%d registered, ',
'REG_USERS_TOTAL_AND' => '%d registered and ',
'REG_USERS_ZERO_ONLINE' => 'There are 0 registered users and ', 'REG_USERS_ZERO_ONLINE' => 'There are 0 registered users and ',
'REG_USERS_ZERO_TOTAL' => '0 registered, ', 'REG_USERS_ZERO_TOTAL' => '0 registered, ',
'REG_USERS_ZERO_TOTAL_AND' => '0 registered and ',
'REG_USER_ONLINE' => 'There is %d registered user and ', 'REG_USER_ONLINE' => 'There is %d registered user and ',
'REG_USER_TOTAL' => '%d registered, ', 'REG_USER_TOTAL' => '%d registered, ',
'REG_USER_TOTAL_AND' => '%d registered and ',
'REMOVE' => 'Remove', 'REMOVE' => 'Remove',
'REMOVE_INSTALL' => 'Please delete, move or rename the install directory before you use your board. If this directory is still present, only the Administration Control Panel (ACP) will be accessible.', 'REMOVE_INSTALL' => 'Please delete, move or rename the install directory before you use your board. If this directory is still present, only the Administration Control Panel (ACP) will be accessible.',
'REPLIES' => 'Replies', 'REPLIES' => 'Replies',

View file

@ -85,7 +85,7 @@ $lang = array_merge($lang, array(
'CONVERT_NEW_CONVERSION' => 'New conversion', 'CONVERT_NEW_CONVERSION' => 'New conversion',
'CONVERT_NOT_EXIST' => 'The specified convertor does not exist.', 'CONVERT_NOT_EXIST' => 'The specified convertor does not exist.',
'CONVERT_OPTIONS' => 'Options', 'CONVERT_OPTIONS' => 'Options',
'CONVERT_SETTINGS_VERIFIED' => 'The information you entered has been verified. To start the conversion process, push the button below to begin.', 'CONVERT_SETTINGS_VERIFIED' => 'The information you entered has been verified. To start the conversion process, please push the button below.',
'CONV_ERR_FATAL' => 'Fatal conversion error', 'CONV_ERR_FATAL' => 'Fatal conversion error',
'CONV_ERROR_ATTACH_FTP_DIR' => 'FTP upload for attachments is enabled at the old board. Please disable the FTP upload option and make sure a valid upload directory is specified, then copy all attachment files to this new web accessible directory. Once you have done this, restart the convertor.', 'CONV_ERROR_ATTACH_FTP_DIR' => 'FTP upload for attachments is enabled at the old board. Please disable the FTP upload option and make sure a valid upload directory is specified, then copy all attachment files to this new web accessible directory. Once you have done this, restart the convertor.',

View file

@ -88,7 +88,7 @@ $lang = array_merge($lang, array(
'ATTACHMENTS_DELETED' => 'Attachments successfully deleted.', 'ATTACHMENTS_DELETED' => 'Attachments successfully deleted.',
'ATTACHMENT_DELETED' => 'Attachment successfully deleted.', 'ATTACHMENT_DELETED' => 'Attachment successfully deleted.',
'AVATAR_CATEGORY' => 'Category', 'AVATAR_CATEGORY' => 'Category',
'AVATAR_EXPLAIN' => 'Maximum dimensions; width: %1$d pixels, height: %2$d pixels, file size: %3$.2lf KiB.', 'AVATAR_EXPLAIN' => 'Maximum dimensions; width: %1$d pixels, height: %2$d pixels, file size: %3$.2f KiB.',
'AVATAR_FEATURES_DISABLED' => 'The avatar functionality is currently disabled.', 'AVATAR_FEATURES_DISABLED' => 'The avatar functionality is currently disabled.',
'AVATAR_GALLERY' => 'Local gallery', 'AVATAR_GALLERY' => 'Local gallery',
'AVATAR_GENERAL_UPLOAD_ERROR' => 'Could not upload avatar to %s.', 'AVATAR_GENERAL_UPLOAD_ERROR' => 'Could not upload avatar to %s.',

View file

@ -20,6 +20,11 @@ error_reporting(E_ALL ^ E_NOTICE);
require($phpbb_root_path . 'config.' . $phpEx); require($phpbb_root_path . 'config.' . $phpEx);
if (!defined('PHPBB_INSTALLED') || empty($dbms) || !isset($dbhost) || !isset($dbpasswd) || empty($dbuser))
{
exit;
}
if (version_compare(PHP_VERSION, '6.0.0-dev', '<')) if (version_compare(PHP_VERSION, '6.0.0-dev', '<'))
{ {
set_magic_quotes_runtime(0); set_magic_quotes_runtime(0);

View file

@ -4,7 +4,7 @@
<!-- IF S_PRIVMSGS and not S_SHOW_DRAFTS --> <!-- IF S_PRIVMSGS and not S_SHOW_DRAFTS -->
<div class="column1"> <div class="column1">
<!-- IF not S_ALLOW_MASS_PM --> <!-- IF S_ALLOW_MASS_PM -->
<!-- IF .to_recipient --> <!-- IF .to_recipient -->
<dl> <dl>
<dt><label>{L_TO}:</label></dt> <dt><label>{L_TO}:</label></dt>