mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
- some cross-db related changes
- putting active bots array into cache git-svn-id: file:///svn/phpbb/trunk@5140 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
16e50db4ba
commit
b576d6af0a
11 changed files with 206 additions and 120 deletions
|
@ -62,7 +62,6 @@ switch ($mode)
|
||||||
|
|
||||||
if ($mode == 'attach')
|
if ($mode == 'attach')
|
||||||
{
|
{
|
||||||
|
|
||||||
$config_sizes = array('max_filesize' => 'size', 'attachment_quota' => 'quota_size', 'max_filesize_pm' => 'pm_size');
|
$config_sizes = array('max_filesize' => 'size', 'attachment_quota' => 'quota_size', 'max_filesize_pm' => 'pm_size');
|
||||||
foreach ($config_sizes as $cfg_key => $var)
|
foreach ($config_sizes as $cfg_key => $var)
|
||||||
{
|
{
|
||||||
|
@ -271,7 +270,7 @@ if ($submit && $mode == 'ext_groups')
|
||||||
{
|
{
|
||||||
$sql = 'SELECT group_id
|
$sql = 'SELECT group_id
|
||||||
FROM ' . EXTENSION_GROUPS_TABLE . "
|
FROM ' . EXTENSION_GROUPS_TABLE . "
|
||||||
WHERE LOWER(group_name) = '" . strtolower($new_group_name) . "'";
|
WHERE LOWER(group_name) = '" . $db->sql_escape(strtolower($new_group_name)) . "'";
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
if ($db->sql_fetchrow($result))
|
if ($db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
|
@ -286,8 +285,8 @@ if ($submit && $mode == 'ext_groups')
|
||||||
$upload_icon = request_var('upload_icon', 'no_image');
|
$upload_icon = request_var('upload_icon', 'no_image');
|
||||||
$size_select = request_var('size_select', 'b');
|
$size_select = request_var('size_select', 'b');
|
||||||
$forum_select = request_var('forum_select', false);
|
$forum_select = request_var('forum_select', false);
|
||||||
$allowed_forums = isset($_REQUEST['allowed_forums']) ? array_map('intval', array_values($_REQUEST['allowed_forums'])) : array();
|
$allowed_forums = isset($_POST['allowed_forums']) ? array_map('intval', array_values($_POST['allowed_forums'])) : array();
|
||||||
$allow_in_pm = isset($_REQUEST['allow_in_pm']) ? true : false;
|
$allow_in_pm = isset($_POST['allow_in_pm']) ? true : false;
|
||||||
$max_filesize = request_var('max_filesize', 0);
|
$max_filesize = request_var('max_filesize', 0);
|
||||||
$max_filesize = ($size_select == 'kb') ? round($max_filesize * 1024) : (($size_select == 'mb') ? round($max_filesize * 1048576) : $max_filesize);
|
$max_filesize = ($size_select == 'kb') ? round($max_filesize * 1024) : (($size_select == 'mb') ? round($max_filesize * 1048576) : $max_filesize);
|
||||||
|
|
||||||
|
@ -304,7 +303,7 @@ if ($submit && $mode == 'ext_groups')
|
||||||
$group_ary = array(
|
$group_ary = array(
|
||||||
'group_name' => $group_name,
|
'group_name' => $group_name,
|
||||||
'cat_id' => request_var('special_category', ATTACHMENT_CATEGORY_NONE),
|
'cat_id' => request_var('special_category', ATTACHMENT_CATEGORY_NONE),
|
||||||
'allow_group' => (isset($_REQUEST['allow_group'])) ? 1 : 0,
|
'allow_group' => (isset($_POST['allow_group'])) ? 1 : 0,
|
||||||
'download_mode' => request_var('download_mode', INLINE_LINK),
|
'download_mode' => request_var('download_mode', INLINE_LINK),
|
||||||
'upload_icon' => ($upload_icon == 'no_image') ? '' : $upload_icon,
|
'upload_icon' => ($upload_icon == 'no_image') ? '' : $upload_icon,
|
||||||
'max_filesize' => $max_filesize,
|
'max_filesize' => $max_filesize,
|
||||||
|
@ -362,8 +361,8 @@ if ($submit && $mode == 'ext_groups')
|
||||||
|
|
||||||
if ($submit && $mode == 'orphan')
|
if ($submit && $mode == 'orphan')
|
||||||
{
|
{
|
||||||
$delete_files = (isset($_REQUEST['delete'])) ? array_keys(request_var('delete', '')) : array();
|
$delete_files = (isset($_POST['delete'])) ? array_keys(request_var('delete', '')) : array();
|
||||||
$add_files = (isset($_REQUEST['add'])) ? array_keys(request_var('add', '')) : array();
|
$add_files = (isset($_POST['add'])) ? array_keys(request_var('add', '')) : array();
|
||||||
$post_ids = request_var('post_id', 0);
|
$post_ids = request_var('post_id', 0);
|
||||||
|
|
||||||
foreach ($delete_files as $delete)
|
foreach ($delete_files as $delete)
|
||||||
|
@ -722,10 +721,10 @@ if ($mode == 'ext_groups')
|
||||||
|
|
||||||
$action = request_var('action', 'show');
|
$action = request_var('action', 'show');
|
||||||
$group_id = request_var('g', 0);
|
$group_id = request_var('g', 0);
|
||||||
$action = (isset($_REQUEST['add'])) ? 'add' : $action;
|
$action = (isset($_POST['add'])) ? 'add' : $action;
|
||||||
$action = (($action == 'add' || $action == 'edit') && $submit && !sizeof($error)) ? 'show' : $action;
|
$action = (($action == 'add' || $action == 'edit') && $submit && !sizeof($error)) ? 'show' : $action;
|
||||||
|
|
||||||
if (isset($_REQUEST['select_mode']))
|
if (isset($_POST['select_mode']))
|
||||||
{
|
{
|
||||||
$action = 'show';
|
$action = 'show';
|
||||||
}
|
}
|
||||||
|
@ -746,6 +745,7 @@ if ($mode == 'ext_groups')
|
||||||
WHERE group_id = $group_id";
|
WHERE group_id = $group_id";
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
$group_name = $db->sql_fetchfield('group_name', 0, $result);
|
$group_name = $db->sql_fetchfield('group_name', 0, $result);
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$sql = 'DELETE
|
$sql = 'DELETE
|
||||||
FROM ' . EXTENSION_GROUPS_TABLE . "
|
FROM ' . EXTENSION_GROUPS_TABLE . "
|
||||||
|
@ -1131,7 +1131,7 @@ if ($mode == 'extensions')
|
||||||
<th> <?php echo $user->lang['ADD_EXTENSION']; ?> </th>
|
<th> <?php echo $user->lang['ADD_EXTENSION']; ?> </th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="row1" align="center" valign="middle"><input type="text" size="20" maxlength="100" name="add_extension" class="post" value="<?php echo $add_extension; ?>" /></td>
|
<td class="row1" align="center" valign="middle"><input type="text" size="20" maxlength="100" name="add_extension" class="post" value="<?php echo (isset($add_extension)) ? $add_extension : ''; ?>" /></td>
|
||||||
<td class="row2" align="center" valign="middle"><?php echo (($submit) ? group_select('add_group_select', $add_extension_group) : group_select('add_group_select')) ?></td>
|
<td class="row2" align="center" valign="middle"><?php echo (($submit) ? group_select('add_group_select', $add_extension_group) : group_select('add_group_select')) ?></td>
|
||||||
<td class="row1" align="center" valign="middle"><input type="checkbox" name="add_extension_check" /></td>
|
<td class="row1" align="center" valign="middle"><input type="checkbox" name="add_extension_check" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -1279,7 +1279,7 @@ function marklist(match, name, status)
|
||||||
adm_page_footer();
|
adm_page_footer();
|
||||||
|
|
||||||
// Build Select for category items
|
// Build Select for category items
|
||||||
function category_select($select_name, $group_id = FALSE)
|
function category_select($select_name, $group_id = false)
|
||||||
{
|
{
|
||||||
global $db, $user;
|
global $db, $user;
|
||||||
|
|
||||||
|
@ -1294,7 +1294,7 @@ function category_select($select_name, $group_id = FALSE)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT cat_id
|
$sql = 'SELECT cat_id
|
||||||
FROM ' . EXTENSION_GROUPS_TABLE . '
|
FROM ' . EXTENSION_GROUPS_TABLE . '
|
||||||
WHERE group_id = ' . intval($group_id);
|
WHERE group_id = ' . (int) $group_id;
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
$cat_type = (!($row = $db->sql_fetchrow($result))) ? ATTACHMENT_CATEGORY_NONE : $row['cat_id'];
|
$cat_type = (!($row = $db->sql_fetchrow($result))) ? ATTACHMENT_CATEGORY_NONE : $row['cat_id'];
|
||||||
|
@ -1320,7 +1320,7 @@ function category_select($select_name, $group_id = FALSE)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extension group select
|
// Extension group select
|
||||||
function group_select($select_name, $default_group = '-1')
|
function group_select($select_name, $default_group = false)
|
||||||
{
|
{
|
||||||
global $db, $user;
|
global $db, $user;
|
||||||
|
|
||||||
|
@ -1342,9 +1342,9 @@ function group_select($select_name, $default_group = '-1')
|
||||||
$row['group_name'] = $user->lang['NOT_ASSIGNED'];
|
$row['group_name'] = $user->lang['NOT_ASSIGNED'];
|
||||||
$group_name[] = $row;
|
$group_name[] = $row;
|
||||||
|
|
||||||
for ($i = 0; $i < count($group_name); $i++)
|
for ($i = 0; $i < sizeof($group_name); $i++)
|
||||||
{
|
{
|
||||||
if ($default_group == '-1')
|
if ($default_group === false)
|
||||||
{
|
{
|
||||||
$selected = ($i == 0) ? ' selected="selected"' : '';
|
$selected = ($i == 0) ? ' selected="selected"' : '';
|
||||||
}
|
}
|
||||||
|
@ -1375,7 +1375,7 @@ function download_select($select_name, $group_id = false)
|
||||||
{
|
{
|
||||||
$sql = "SELECT download_mode
|
$sql = "SELECT download_mode
|
||||||
FROM " . EXTENSION_GROUPS_TABLE . "
|
FROM " . EXTENSION_GROUPS_TABLE . "
|
||||||
WHERE group_id = " . intval($group_id);
|
WHERE group_id = " . (int) $group_id;
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
$download_mode = (!($row = $db->sql_fetchrow($result))) ? INLINE_LINK : $row['download_mode'];
|
$download_mode = (!($row = $db->sql_fetchrow($result))) ? INLINE_LINK : $row['download_mode'];
|
||||||
|
@ -1400,7 +1400,7 @@ function download_select($select_name, $group_id = false)
|
||||||
return $group_select;
|
return $group_select;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Upload already uploaded file... huh? are you kidding?
|
// Upload already uploaded file... huh? are you kidding?
|
||||||
function upload_file($post_id, $topic_id, $forum_id, $upload_dir, $filename)
|
function upload_file($post_id, $topic_id, $forum_id, $upload_dir, $filename)
|
||||||
{
|
{
|
||||||
global $message_parser, $db, $user, $phpbb_root_path;
|
global $message_parser, $db, $user, $phpbb_root_path;
|
||||||
|
@ -1410,7 +1410,7 @@ function upload_file($post_id, $topic_id, $forum_id, $upload_dir, $filename)
|
||||||
$message_parser->filename_data['filecomment'] = '';
|
$message_parser->filename_data['filecomment'] = '';
|
||||||
$message_parser->filename_data['filename'] = $phpbb_root_path . $upload_dir . '/' . basename($filename);
|
$message_parser->filename_data['filename'] = $phpbb_root_path . $upload_dir . '/' . basename($filename);
|
||||||
|
|
||||||
$filedata = upload_attachment($forum_id, $filename, true, $phpbb_root_path . $upload_dir . '/' . basename($filename));
|
$filedata = upload_attachment('local', $forum_id, true, $phpbb_root_path . $upload_dir . '/' . basename($filename));
|
||||||
|
|
||||||
if ($filedata['post_attach'] && !sizeof($filedata['error']))
|
if ($filedata['post_attach'] && !sizeof($filedata['error']))
|
||||||
{
|
{
|
||||||
|
@ -1460,7 +1460,6 @@ function upload_file($post_id, $topic_id, $forum_id, $upload_dir, $filename)
|
||||||
echo '<span style="color:red">' . sprintf($user->lang['ADMIN_UPLOAD_ERROR'], implode("<br />\t", $filedata['error'])) . '</span><br /><br />';
|
echo '<span style="color:red">' . sprintf($user->lang['ADMIN_UPLOAD_ERROR'], implode("<br />\t", $filedata['error'])) . '</span><br /><br />';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
// Search Imagick
|
// Search Imagick
|
||||||
function search_imagemagick()
|
function search_imagemagick()
|
||||||
|
|
|
@ -31,12 +31,12 @@ require('pagestart.' . $phpEx);
|
||||||
// Do we have general permissions?
|
// Do we have general permissions?
|
||||||
if (!$auth->acl_get('a_bbcode'))
|
if (!$auth->acl_get('a_bbcode'))
|
||||||
{
|
{
|
||||||
trigger_error($user->lang['NO_ADMIN']);
|
trigger_error('NO_ADMIN');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up general vars
|
// Set up general vars
|
||||||
$mode = (!empty($_REQUEST['mode'])) ? $_REQUEST['mode'] : '';
|
$mode = request_var('mode', '');
|
||||||
$bbcode_id = (!empty($_REQUEST['bbcode'])) ? intval($_REQUEST['bbcode']) : 0;
|
$bbcode_id = request_var('bbcode', 0);
|
||||||
|
|
||||||
// Set up mode-specific vars
|
// Set up mode-specific vars
|
||||||
switch ($mode)
|
switch ($mode)
|
||||||
|
@ -54,6 +54,7 @@ switch ($mode)
|
||||||
{
|
{
|
||||||
trigger_error('BBCODE_NOT_EXIST');
|
trigger_error('BBCODE_NOT_EXIST');
|
||||||
}
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$bbcode_match = $row['bbcode_match'];
|
$bbcode_match = $row['bbcode_match'];
|
||||||
$bbcode_tpl = htmlspecialchars($row['bbcode_tpl']);
|
$bbcode_tpl = htmlspecialchars($row['bbcode_tpl']);
|
||||||
|
@ -68,6 +69,7 @@ switch ($mode)
|
||||||
{
|
{
|
||||||
trigger_error('BBCODE_NOT_EXIST');
|
trigger_error('BBCODE_NOT_EXIST');
|
||||||
}
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
// No break here
|
// No break here
|
||||||
|
|
||||||
|
@ -193,8 +195,10 @@ switch ($mode)
|
||||||
HAVING MIN(b2.bbcode_id) > b1.bbcode_id + 1
|
HAVING MIN(b2.bbcode_id) > b1.bbcode_id + 1
|
||||||
ORDER BY b1.bbcode_id ASC';
|
ORDER BY b1.bbcode_id ASC';
|
||||||
$result = $db->sql_query_limit($sql, 1);
|
$result = $db->sql_query_limit($sql, 1);
|
||||||
|
$row = $db->sql_fetchrow($result);
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
if ($row = $db->sql_fetchrow($result))
|
if ($row)
|
||||||
{
|
{
|
||||||
$bbcode_id = $row['bbcode_id'] + 1;
|
$bbcode_id = $row['bbcode_id'] + 1;
|
||||||
}
|
}
|
||||||
|
@ -204,6 +208,7 @@ switch ($mode)
|
||||||
FROM ' . BBCODES_TABLE;
|
FROM ' . BBCODES_TABLE;
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
$row = $db->sql_fetchrow($result);
|
$row = $db->sql_fetchrow($result);
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
if (empty($row['min_id']) || $row['min_id'] >= NUM_CORE_BBCODES)
|
if (empty($row['min_id']) || $row['min_id'] >= NUM_CORE_BBCODES)
|
||||||
{
|
{
|
||||||
|
@ -249,6 +254,7 @@ switch ($mode)
|
||||||
$db->sql_query('DELETE FROM ' . BBCODES_TABLE . " WHERE bbcode_id = $bbcode_id");
|
$db->sql_query('DELETE FROM ' . BBCODES_TABLE . " WHERE bbcode_id = $bbcode_id");
|
||||||
add_log('admin', 'LOG_BBCODE_DELETE', $row['bbcode_tag']);
|
add_log('admin', 'LOG_BBCODE_DELETE', $row['bbcode_tag']);
|
||||||
}
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
// No break here
|
// No break here
|
||||||
|
|
||||||
|
@ -287,6 +293,7 @@ switch ($mode)
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
@ -423,4 +430,5 @@ function build_regexp($msg_bbcode, $msg_html)
|
||||||
}
|
}
|
||||||
// End Functions
|
// End Functions
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -59,6 +59,8 @@ switch ($action)
|
||||||
WHERE bot_id $id";
|
WHERE bot_id $id";
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$cache->destroy('bots');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'deactivate':
|
case 'deactivate':
|
||||||
|
@ -70,6 +72,8 @@ switch ($action)
|
||||||
WHERE bot_id $id";
|
WHERE bot_id $id";
|
||||||
$db->sql_query($sql);
|
$db->sql_query($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$cache->destroy('bots');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
|
@ -105,6 +109,8 @@ switch ($action)
|
||||||
|
|
||||||
$db->sql_transaction('commit');
|
$db->sql_transaction('commit');
|
||||||
|
|
||||||
|
$cache->destroy('bots');
|
||||||
|
|
||||||
add_log('admin', 'LOG_BOT_DELETE', implode(', ', $bot_name_ary));
|
add_log('admin', 'LOG_BOT_DELETE', implode(', ', $bot_name_ary));
|
||||||
trigger_error($user->lang['BOT_DELETED']);
|
trigger_error($user->lang['BOT_DELETED']);
|
||||||
}
|
}
|
||||||
|
@ -125,6 +131,7 @@ switch ($action)
|
||||||
{
|
{
|
||||||
$error[] = $user->lang['ERR_BOT_NO_MATCHES'];
|
$error[] = $user->lang['ERR_BOT_NO_MATCHES'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($bot_ip && !preg_match('#^[\d\.,:]+$#', $bot_ip))
|
if ($bot_ip && !preg_match('#^[\d\.,:]+$#', $bot_ip))
|
||||||
{
|
{
|
||||||
if (!$ip_list = gethostbynamel($bot_ip))
|
if (!$ip_list = gethostbynamel($bot_ip))
|
||||||
|
@ -218,6 +225,8 @@ switch ($action)
|
||||||
|
|
||||||
$db->sql_transaction('commit');
|
$db->sql_transaction('commit');
|
||||||
|
|
||||||
|
$cache->destroy('bots');
|
||||||
|
|
||||||
add_log('admin', 'LOG_BOT_' . $log, $bot_name);
|
add_log('admin', 'LOG_BOT_' . $log, $bot_name);
|
||||||
trigger_error($user->lang['BOT_' . $log]);
|
trigger_error($user->lang['BOT_' . $log]);
|
||||||
}
|
}
|
||||||
|
@ -345,6 +354,7 @@ $sql = 'SELECT b.bot_id, b.bot_name, b.bot_active, u.user_lastvisit
|
||||||
ORDER BY u.user_lastvisit DESC';
|
ORDER BY u.user_lastvisit DESC';
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
$row_class = '';
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
{
|
{
|
||||||
$row_class = ($row_class == 'row1') ? 'row2' : 'row1';
|
$row_class = ($row_class == 'row1') ? 'row2' : 'row1';
|
||||||
|
|
|
@ -3051,7 +3051,7 @@ function install($type, $action, $id)
|
||||||
<tr>
|
<tr>
|
||||||
<td class="row1" width="40%"><b><?php echo $user->lang[$l_type . '_NAME']; ?>:</b></td>
|
<td class="row1" width="40%"><b><?php echo $user->lang[$l_type . '_NAME']; ?>:</b></td>
|
||||||
<td class="row2"><?php
|
<td class="row2"><?php
|
||||||
$style_name = 'proSilver';
|
$style_name = 'subSilver2';
|
||||||
$style_copyright = '(c) 2004 Tom Beddard';
|
$style_copyright = '(c) 2004 Tom Beddard';
|
||||||
echo ($action == 'add') ? '<input class="post" type="text" name="name" maxlength="30" size="30" value="' . $name . '" />' : '<b>' . ${$type . '_name'} . '</b>';
|
echo ($action == 'add') ? '<input class="post" type="text" name="name" maxlength="30" size="30" value="' . $name . '" />' : '<b>' . ${$type . '_name'} . '</b>';
|
||||||
|
|
||||||
|
|
|
@ -1116,6 +1116,36 @@ function obtain_attach_extensions(&$extensions, $forum_id = false)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain active bots
|
||||||
|
*/
|
||||||
|
function obtain_bots(&$bots)
|
||||||
|
{
|
||||||
|
global $db, $cache;
|
||||||
|
|
||||||
|
if ($cache->exists('bots'))
|
||||||
|
{
|
||||||
|
$bots = $cache->get('bots');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sql = 'SELECT user_id, bot_agent, bot_ip
|
||||||
|
FROM ' . BOTS_TABLE . '
|
||||||
|
WHERE bot_active = 1';
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
$bots[] = $row;
|
||||||
|
}
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
$cache->put('bots', $bots);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate board url
|
* Generate board url
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1494,7 +1494,7 @@ function remove_comments(&$output)
|
||||||
$in_comment = false;
|
$in_comment = false;
|
||||||
for ($i = 0; $i < $linecount; $i++)
|
for ($i = 0; $i < $linecount; $i++)
|
||||||
{
|
{
|
||||||
if (preg_match('#^\/\*#', preg_quote($lines[$i])))
|
if (trim($lines[$i]) == '/*')
|
||||||
{
|
{
|
||||||
$in_comment = true;
|
$in_comment = true;
|
||||||
}
|
}
|
||||||
|
@ -1504,7 +1504,7 @@ function remove_comments(&$output)
|
||||||
$output .= $lines[$i] . "\n";
|
$output .= $lines[$i] . "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preg_match('#\*\/$#', preg_quote($lines[$i])))
|
if (trim($lines[$i]) == '*/')
|
||||||
{
|
{
|
||||||
$in_comment = false;
|
$in_comment = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,10 +148,18 @@ function upload_attachment($form_name, $forum_id, $local = false, $local_storage
|
||||||
include_once($phpbb_root_path . 'includes/functions_upload.php');
|
include_once($phpbb_root_path . 'includes/functions_upload.php');
|
||||||
$upload = new fileupload();
|
$upload = new fileupload();
|
||||||
|
|
||||||
|
if (!$local)
|
||||||
|
{
|
||||||
$filedata['post_attach'] = ($upload->is_valid($form_name)) ? true : false;
|
$filedata['post_attach'] = ($upload->is_valid($form_name)) ? true : false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$filedata['post_attach'] = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$filedata['post_attach'])
|
if (!$filedata['post_attach'])
|
||||||
{
|
{
|
||||||
|
$filedata['error'][] = 'No filedata found';
|
||||||
return $filedata;
|
return $filedata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,12 @@ class filespec
|
||||||
|
|
||||||
// Opera adds the name to the mime type
|
// Opera adds the name to the mime type
|
||||||
$this->mimetype = (strpos($this->mimetype, '; name') !== false) ? str_replace(strstr($this->mimetype, '; name'), '', $this->mimetype) : $this->mimetype;
|
$this->mimetype = (strpos($this->mimetype, '; name') !== false) ? str_replace(strstr($this->mimetype, '; name'), '', $this->mimetype) : $this->mimetype;
|
||||||
|
|
||||||
|
if (!$this->mimetype)
|
||||||
|
{
|
||||||
|
$this->mimetype = 'application/octetstream';
|
||||||
|
}
|
||||||
|
|
||||||
$this->extension = array_pop(explode('.', strtolower($this->realname)));
|
$this->extension = array_pop(explode('.', strtolower($this->realname)));
|
||||||
|
|
||||||
// Try to get real filesize from temporary folder (not always working) ;)
|
// Try to get real filesize from temporary folder (not always working) ;)
|
||||||
|
@ -122,7 +128,12 @@ class filespec
|
||||||
|
|
||||||
function is_uploaded()
|
function is_uploaded()
|
||||||
{
|
{
|
||||||
return (file_exists($this->filename) && is_uploaded_file($this->filename)) ? true : false;
|
if (!$this->local && !is_uploaded_file($this->filename))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (file_exists($this->filename)) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function remove()
|
function remove()
|
||||||
|
@ -394,8 +405,64 @@ class fileupload
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move file from another location to phpBB
|
// Move file from another location to phpBB
|
||||||
function local_upload($source_file)
|
function local_upload($source_file, $filedata = false)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
|
$form_name = 'local';
|
||||||
|
|
||||||
|
$_FILES[$form_name]['local_mode'] = true;
|
||||||
|
$_FILES[$form_name]['tmp_name'] = $source_file;
|
||||||
|
|
||||||
|
if ($filedata === false)
|
||||||
|
{
|
||||||
|
$_FILES[$form_name]['name'] = basename($source_file);
|
||||||
|
$_FILES[$form_name]['size'] = 0;
|
||||||
|
$_FILES[$form_name]['type'] = '';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_FILES[$form_name]['name'] = $filedata['realname'];
|
||||||
|
$_FILES[$form_name]['size'] = $filedata['size'];
|
||||||
|
$_FILES[$form_name]['type'] = $filedata['type'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$file = new filespec($_FILES[$form_name], $this);
|
||||||
|
|
||||||
|
if ($file->init_error)
|
||||||
|
{
|
||||||
|
$file->error[] = '';
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($_FILES[$form_name]['error']))
|
||||||
|
{
|
||||||
|
$error = $this->assign_internal_error($_FILES[$form_name]['error']);
|
||||||
|
|
||||||
|
if ($error !== false)
|
||||||
|
{
|
||||||
|
$file->error[] = $error;
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// PHP Upload filesize exceeded
|
||||||
|
if ($file->get('filename') == 'none')
|
||||||
|
{
|
||||||
|
$file->error[] = (@ini_get('upload_max_filesize') == '') ? $user->lang[$this->error_prefix . 'PHP_SIZE_NA'] : sprintf($user->lang[$this->error_prefix . 'PHP_SIZE_OVERRUN'], @ini_get('upload_max_filesize'));
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not correctly uploaded
|
||||||
|
if (!$file->is_uploaded())
|
||||||
|
{
|
||||||
|
$file->error[] = $user->lang[$this->error_prefix . 'NOT_UPLOADED'];
|
||||||
|
return $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->common_checks($file);
|
||||||
|
|
||||||
|
return $file;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -138,12 +138,10 @@ class session
|
||||||
$bot = false;
|
$bot = false;
|
||||||
|
|
||||||
// Pull bot information from DB and loop through it
|
// Pull bot information from DB and loop through it
|
||||||
$sql = 'SELECT user_id, bot_agent, bot_ip
|
$active_bots = array();
|
||||||
FROM ' . BOTS_TABLE . '
|
obtain_bots($active_bots);
|
||||||
WHERE bot_active = 1';
|
|
||||||
$result = $db->sql_query($sql);
|
|
||||||
|
|
||||||
while ($row = $db->sql_fetchrow($result))
|
foreach ($active_bots as $row)
|
||||||
{
|
{
|
||||||
if ($row['bot_agent'] && preg_match('#' . preg_quote($row['bot_agent'], '#') . '#i', $this->browser))
|
if ($row['bot_agent'] && preg_match('#' . preg_quote($row['bot_agent'], '#') . '#i', $this->browser))
|
||||||
{
|
{
|
||||||
|
@ -168,7 +166,6 @@ class session
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$db->sql_freeresult($result);
|
|
||||||
|
|
||||||
// Garbage collection ... remove old sessions updating user information
|
// Garbage collection ... remove old sessions updating user information
|
||||||
// if necessary. It means (potentially) 11 queries but only infrequently
|
// if necessary. It means (potentially) 11 queries but only infrequently
|
||||||
|
@ -586,7 +583,7 @@ class user extends session
|
||||||
$style = ($style) ? $style : ((!$config['override_user_style'] && $this->data['user_id'] != ANONYMOUS) ? $this->data['user_style'] : $config['default_style']);
|
$style = ($style) ? $style : ((!$config['override_user_style'] && $this->data['user_id'] != ANONYMOUS) ? $this->data['user_style'] : $config['default_style']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: DISTINCT making problems with DBMS not able to distinct TEXT fields
|
// TODO: DISTINCT making problems with DBMS not able to distinct TEXT fields, test grouping
|
||||||
switch (SQL_LAYER)
|
switch (SQL_LAYER)
|
||||||
{
|
{
|
||||||
case 'mssql':
|
case 'mssql':
|
||||||
|
@ -596,16 +593,18 @@ class user extends session
|
||||||
WHERE s.style_id IN ($style, " . $config['default_style'] . ')
|
WHERE s.style_id IN ($style, " . $config['default_style'] . ')
|
||||||
AND t.template_id = s.template_id
|
AND t.template_id = s.template_id
|
||||||
AND c.theme_id = s.theme_id
|
AND c.theme_id = s.theme_id
|
||||||
AND i.imageset_id = s.imageset_id';
|
AND i.imageset_id = s.imageset_id
|
||||||
|
GROUP BY s.style_id';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$sql = 'SELECT DISTINCT s.style_id, t.*, c.*, i.*
|
$sql = 'SELECT s.style_id, t.*, c.*, i.*
|
||||||
FROM ' . STYLES_TABLE . ' s, ' . STYLES_TPL_TABLE . ' t, ' . STYLES_CSS_TABLE . ' c, ' . STYLES_IMAGE_TABLE . " i
|
FROM ' . STYLES_TABLE . ' s, ' . STYLES_TPL_TABLE . ' t, ' . STYLES_CSS_TABLE . ' c, ' . STYLES_IMAGE_TABLE . " i
|
||||||
WHERE s.style_id IN ($style, " . $config['default_style'] . ')
|
WHERE s.style_id IN ($style, " . $config['default_style'] . ')
|
||||||
AND t.template_id = s.template_id
|
AND t.template_id = s.template_id
|
||||||
AND c.theme_id = s.theme_id
|
AND c.theme_id = s.theme_id
|
||||||
AND i.imageset_id = s.imageset_id';
|
AND i.imageset_id = s.imageset_id
|
||||||
|
GROUP BY s.style_id';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$result = $db->sql_query($sql, 3600);
|
$result = $db->sql_query($sql, 3600);
|
||||||
|
|
|
@ -45,18 +45,6 @@ if (!$user->data['is_registered'])
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch (SQL_LAYER)
|
|
||||||
{
|
|
||||||
case 'oracle':
|
|
||||||
if ($config['load_db_lastread'])
|
|
||||||
{
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
if ($config['load_db_lastread'])
|
if ($config['load_db_lastread'])
|
||||||
{
|
{
|
||||||
$sql_lastread = 'LEFT JOIN ' . FORUMS_TRACK_TABLE . ' ft ON (ft.user_id = ' . $user->data['user_id'] . '
|
$sql_lastread = 'LEFT JOIN ' . FORUMS_TRACK_TABLE . ' ft ON (ft.user_id = ' . $user->data['user_id'] . '
|
||||||
|
@ -66,7 +54,6 @@ else
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sql_lastread = $lastread_select = '';
|
$sql_lastread = $lastread_select = '';
|
||||||
|
|
||||||
$tracking_topics = (isset($_COOKIE[$config['cookie_name'] . '_track'])) ? unserialize(stripslashes($_COOKIE[$config['cookie_name'] . '_track'])) : array();
|
$tracking_topics = (isset($_COOKIE[$config['cookie_name'] . '_track'])) ? unserialize(stripslashes($_COOKIE[$config['cookie_name'] . '_track'])) : array();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +63,6 @@ else
|
||||||
FROM $sql_from
|
FROM $sql_from
|
||||||
WHERE f.forum_id = $forum_id";
|
WHERE f.forum_id = $forum_id";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
if (!($forum_data = $db->sql_fetchrow($result)))
|
if (!($forum_data = $db->sql_fetchrow($result)))
|
||||||
|
@ -301,15 +287,7 @@ if ($forum_data['forum_type'] == FORUM_POST || ($forum_data['forum_flags'] & 16)
|
||||||
// Grab all topic data
|
// Grab all topic data
|
||||||
$rowset = $announcement_list = $topic_list = array();
|
$rowset = $announcement_list = $topic_list = array();
|
||||||
|
|
||||||
switch (SQL_LAYER)
|
|
||||||
{
|
|
||||||
case 'oracle':
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$sql_from = (($config['load_db_lastread'] || $config['load_db_track']) && $user->data['is_registered']) ? '(' . TOPICS_TABLE . ' t LEFT JOIN ' . TOPICS_TRACK_TABLE . ' tt ON (tt.topic_id = t.topic_id AND tt.user_id = ' . $user->data['user_id'] . '))' : TOPICS_TABLE . ' t ';
|
$sql_from = (($config['load_db_lastread'] || $config['load_db_track']) && $user->data['is_registered']) ? '(' . TOPICS_TABLE . ' t LEFT JOIN ' . TOPICS_TRACK_TABLE . ' tt ON (tt.topic_id = t.topic_id AND tt.user_id = ' . $user->data['user_id'] . '))' : TOPICS_TABLE . ' t ';
|
||||||
}
|
|
||||||
|
|
||||||
$sql_approved = ($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1';
|
$sql_approved = ($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1';
|
||||||
$sql_select = (($config['load_db_lastread'] || $config['load_db_track']) && $user->data['is_registered']) ? ', tt.mark_type, tt.mark_time' : '';
|
$sql_select = (($config['load_db_lastread'] || $config['load_db_track']) && $user->data['is_registered']) ? ', tt.mark_type, tt.mark_time' : '';
|
||||||
|
|
||||||
|
@ -355,10 +333,9 @@ if ($forum_data['forum_type'] == FORUM_POST || ($forum_data['forum_flags'] & 16)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obtain other topics
|
// Obtain other topics
|
||||||
// $sql_rownum = (SQL_LAYER != 'oracle') ? '' : ', ROWNUM rnum ';
|
|
||||||
$sql_rownum = '';
|
|
||||||
$sql_where = ($forum_data['forum_type'] == FORUM_POST || !sizeof($active_forum_ary)) ? "= $forum_id" : 'IN (' . implode(', ', $active_forum_ary['forum_id']) . ')';
|
$sql_where = ($forum_data['forum_type'] == FORUM_POST || !sizeof($active_forum_ary)) ? "= $forum_id" : 'IN (' . implode(', ', $active_forum_ary['forum_id']) . ')';
|
||||||
$sql = "SELECT t.* $sql_select$sql_rownum
|
|
||||||
|
$sql = "SELECT t.* $sql_select
|
||||||
FROM $sql_from
|
FROM $sql_from
|
||||||
WHERE t.forum_id $sql_where
|
WHERE t.forum_id $sql_where
|
||||||
AND t.topic_type NOT IN (" . POST_ANNOUNCE . ', ' . POST_GLOBAL . ")
|
AND t.topic_type NOT IN (" . POST_ANNOUNCE . ', ' . POST_GLOBAL . ")
|
||||||
|
|
|
@ -169,23 +169,12 @@ $order_sql = (!$post_id) ? '' : 'GROUP BY p.post_id, t.topic_id, t.topic_title,
|
||||||
|
|
||||||
if ($user->data['is_registered'])
|
if ($user->data['is_registered'])
|
||||||
{
|
{
|
||||||
switch (SQL_LAYER)
|
|
||||||
{
|
|
||||||
case 'oracle':
|
|
||||||
case 'postgres':
|
|
||||||
case 'mssql':
|
|
||||||
case 'mssql-odbc':
|
|
||||||
// TODO
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
$extra_fields .= ', tw.notify_status' . (($config['allow_bookmarks']) ? ', bm.order_id as bookmarked' : '');
|
$extra_fields .= ', tw.notify_status' . (($config['allow_bookmarks']) ? ', bm.order_id as bookmarked' : '');
|
||||||
$join_sql_table .= ' LEFT JOIN ' . TOPICS_WATCH_TABLE . ' tw ON (tw.user_id = ' . $user->data['user_id'] . '
|
$join_sql_table .= ' LEFT JOIN ' . TOPICS_WATCH_TABLE . ' tw ON (tw.user_id = ' . $user->data['user_id'] . '
|
||||||
AND t.topic_id = tw.topic_id)';
|
AND t.topic_id = tw.topic_id)';
|
||||||
$join_sql_table .= ($config['allow_bookmarks']) ? ' LEFT JOIN ' . BOOKMARKS_TABLE . ' bm ON (bm.user_id = ' . $user->data['user_id'] . '
|
$join_sql_table .= ($config['allow_bookmarks']) ? ' LEFT JOIN ' . BOOKMARKS_TABLE . ' bm ON (bm.user_id = ' . $user->data['user_id'] . '
|
||||||
AND t.topic_id = bm.topic_id)' : '';
|
AND t.topic_id = bm.topic_id)' : '';
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Join to forum table on topic forum_id unless topic forum_id is zero
|
// Join to forum table on topic forum_id unless topic forum_id is zero
|
||||||
// whereupon we join on the forum_id passed as a parameter ... this
|
// whereupon we join on the forum_id passed as a parameter ... this
|
||||||
|
@ -743,8 +732,8 @@ if (empty($post_list))
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'SELECT u.username, u.user_id, u.user_colour, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_jabber, u.user_regdate, u.user_msnm, u.user_allow_viewemail, u.user_allow_viewonline, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_sig_bbcode_bitfield, u.user_avatar, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height, z.friend, z.foe, p.*
|
$sql = 'SELECT u.username, u.user_id, u.user_colour, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_jabber, u.user_regdate, u.user_msnm, u.user_allow_viewemail, u.user_allow_viewonline, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_sig_bbcode_bitfield, u.user_avatar, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height, z.friend, z.foe, p.*
|
||||||
FROM ((' . POSTS_TABLE . ' p
|
FROM (' . POSTS_TABLE . ' p
|
||||||
LEFT JOIN ' . ZEBRA_TABLE . ' z ON (z.user_id = ' . $user->data['user_id'] . ' AND z.zebra_id = p.poster_id)), ' . USERS_TABLE . ' u)
|
LEFT JOIN ' . ZEBRA_TABLE . ' z ON (z.user_id = ' . $user->data['user_id'] . ' AND z.zebra_id = p.poster_id)), ' . USERS_TABLE . ' u
|
||||||
WHERE p.post_id IN (' . implode(', ', $post_list) . ')
|
WHERE p.post_id IN (' . implode(', ', $post_list) . ')
|
||||||
AND u.user_id = p.poster_id';
|
AND u.user_id = p.poster_id';
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
@ -951,7 +940,6 @@ while ($row = $db->sql_fetchrow($result))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while ($row = $db->sql_fetchrow($result));
|
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
// Load custom profile fields
|
// Load custom profile fields
|
||||||
|
@ -1376,7 +1364,7 @@ function get_topic_last_read($topic_id, $forum_id)
|
||||||
FROM ' . TOPICS_TRACK_TABLE . '
|
FROM ' . TOPICS_TRACK_TABLE . '
|
||||||
WHERE user_id = ' . $user->data['user_id'] . "
|
WHERE user_id = ' . $user->data['user_id'] . "
|
||||||
AND topic_id = $topic_id";
|
AND topic_id = $topic_id";
|
||||||
$result = $db->sql_query($sql, 1);
|
$result = $db->sql_query($sql);
|
||||||
$row = $db->sql_fetchrow($result);
|
$row = $db->sql_fetchrow($result);
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue