1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-10 02:36:38 +02:00

- bugfix roll

- fixed sql_query_limit on mssql/mssql_odbc


git-svn-id: file:///svn/phpbb/trunk@6024 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen
2006-06-08 20:26:03 +00:00
parent 580a318d16
commit ef08df5675
10 changed files with 86 additions and 28 deletions

View File

@@ -738,10 +738,12 @@ class acp_permissions
}
// Update the permission set...
$auth_admin->acl_set($ug_type, $forum_id, $ug_id, $auth_options, $assigned_role);
$auth_admin->acl_set($ug_type, $forum_id, $ug_id, $auth_options, $assigned_role, false);
}
}
$auth_admin->acl_clear_prefetch();
// Do we need to recache the moderator lists?
if ($permission_type == 'm_')
{

View File

@@ -288,6 +288,30 @@ class acp_users
add_log('user', $user_id, $log . '_USER');
if ($user_row['user_type'] == USER_INACTIVE)
{
set_config('num_users', $config['num_users'] + 1, true);
}
else
{
set_config('num_users', $config['num_users'] - 1, true);
}
// Get latest username
$sql = 'SELECT user_id, username
FROM ' . USERS_TABLE . '
WHERE user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')
ORDER BY user_id DESC';
$result = $db->sql_query_limit($sql, 1);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ($row)
{
set_config('newest_user_id', $row['user_id'], true);
set_config('newest_username', $row['username'], true);
}
trigger_error($user->lang[$message] . adm_back_link($this->u_action . '&u=' . $user_id));
break;

View File

@@ -159,7 +159,15 @@ class dbal_mssql extends dbal
$query = 'SELECT TOP ' . ($row_offset + $num_rows) . ' ' . substr($query, 6);
}
return $this->sql_query($query, $cache_ttl);
$result = $this->sql_query($query, $cache_ttl);
// Seek by $row_offset rows
if ($row_offset)
{
$this->sql_rowseek($result, $row_offset);
}
return $result;
}
else
{

View File

@@ -146,7 +146,7 @@ class dbal_mssql_odbc extends dbal
$total = -1;
}
$row_offset = ($total) ? $offset : '';
$row_offset = ($total) ? $offset : 0;
$num_rows = ($total) ? $total : $offset;
if (strpos($query, 'SELECT DISTINCT') === 0)
@@ -158,7 +158,18 @@ class dbal_mssql_odbc extends dbal
$query = 'SELECT TOP ' . ($row_offset + $num_rows) . ' ' . substr($query, 6);
}
return $this->sql_query($query, $cache_ttl);
$result = $this->sql_query($query, $cache_ttl);
// Seek by $row_offset rows
if ($row_offset)
{
for ($i = 0; $i < $row_offset; $i++)
{
$this->sql_fetchrow($result);
}
}
return $result;
}
else
{

View File

@@ -60,15 +60,17 @@ class mcp_logs
{
case 'front':
$where_sql = '';
break;
break;
case 'forum_logs':
$forum_id = request_var('f', 0);
$where_sql = " AND forum_id = $forum_id";
break;
break;
case 'topic_logs':
$topic_id = request_var('t', 0);
$where_sql = " AND topic_id = $topic_id";
break;
break;
}
// Delete entries if requested and able
@@ -81,6 +83,7 @@ class mcp_logs
{
$sql_in[] = $mark;
}
$where_sql = ' AND log_id IN (' . implode(', ', $sql_in) . ')';
unset($sql_in);
}
@@ -111,13 +114,12 @@ class mcp_logs
// Grab log data
$log_data = array();
$log_count = 0;
view_log('mod', $log_data, $log_count, $config['topics_per_page'], $start, $forum_id, $topic_id, 0, $sql_where, $sql_sort);
$template->assign_vars(array(
'S_ON_PAGE' => on_page($log_count, $config['topics_per_page'], $start),
'TOTAL_LOGS' => ($log_count == 1) ? $user->lang['TOTAL_LOG'] : sprintf($user->lang['TOTAL_LOGS'], $log_count),
'PAGINATION' => generate_pagination($this->u_action . "&amp;$u_sort_param", $log_count, $config['topics_per_page'], $start, true),
'PAGE_NUMBER' => on_page($log_count, $config['topics_per_page'], $start),
'TOTAL' => ($log_count == 1) ? $user->lang['TOTAL_LOG'] : sprintf($user->lang['TOTAL_LOGS'], $log_count),
'PAGINATION' => generate_pagination($this->u_action . "&amp;$u_sort_param", $log_count, $config['topics_per_page'], $start),
'U_POST_ACTION' => $this->u_action,
'S_CLEAR_ALLOWED' => ($auth->acl_get('a_clearlogs')) ? true : false,

View File

@@ -105,8 +105,21 @@ class ucp_activate
if (!$update_password)
{
set_config('newest_user_id', $row['user_id'], true);
set_config('newest_username', $row['username'], true);
// Get latest username
$sql = 'SELECT user_id, username
FROM ' . USERS_TABLE . '
WHERE user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')
ORDER BY user_id DESC';
$result = $db->sql_query_limit($sql, 1);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ($row)
{
set_config('newest_user_id', $row['user_id'], true);
set_config('newest_username', $row['username'], true);
}
set_config('num_users', $config['num_users'] + 1, true);
}

View File

@@ -475,7 +475,9 @@ class ucp_profile
'L_SIGNATURE_EXPLAIN' => sprintf($user->lang['SIGNATURE_EXPLAIN'], $config['max_sig_chars']),
'S_BBCODE_ALLOWED' => $config['allow_sig_bbcode'],
'S_SMILIES_ALLOWED' => $config['allow_sig_smilies'],)
'S_SMILIES_ALLOWED' => $config['allow_sig_smilies'],
'S_BBCODE_IMG' => ($config['allow_sig_img']) ? true : false,
'S_BBCODE_FLASH' => ($config['allow_sig_flash']) ? true : false)
);
// Build custom bbcodes array

View File

@@ -45,7 +45,7 @@ class ucp_zebra
if ($data['add'] && !sizeof($error))
{
$data['add'] = explode("\n", $data['add']);
$data['add'] = array_map('strtolower', explode("\n", $data['add']));
// Do these name/s exist on a list already? If so, ignore ... we could be
// 'nice' and automatically handle names added to one list present on
@@ -62,16 +62,16 @@ class ucp_zebra
{
if ($row['friend'])
{
$friends[] = $row['username'];
$friends[] = strtolower($row['username']);
}
else
{
$foes[] = $row['username'];
$foes[] = strtolower($row['username']);
}
}
$db->sql_freeresult($result);
$data['add'] = array_diff($data['add'], $friends, $foes, array($user->data['username']));
$data['add'] = array_diff($data['add'], $friends, $foes, array(strtolower($user->data['username'])));
unset($friends, $foes);
$data['add'] = implode(', ', preg_replace('#^[\s]*?(.*?)[\s]*?$#e', "\"'\" . \$db->sql_escape('\\1') . \"'\"", $data['add']));
@@ -80,7 +80,7 @@ class ucp_zebra
{
$sql = 'SELECT user_id, user_type
FROM ' . USERS_TABLE . '
WHERE username IN (' . $data['add'] . ')
WHERE LOWER(username) IN (' . $data['add'] . ')
AND user_type NOT IN (' . USER_IGNORE . ', ' . USER_INACTIVE . ')';
$result = $db->sql_query($sql);