mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
Merge branch 'ticket/rxu/6712' into develop-olympus
* ticket/rxu/6712: [ticket/6712] Properly explain result of setting the bump interval to 0. [ticket/6712] Add phpbb_ function name prefix, more docs, rename current_time [ticket/6712] Pass $post_data by the value instead of by the reference. [ticket/6712] Bump does not create new topic icon on index.
This commit is contained in:
commit
5b701dc3ed
3 changed files with 104 additions and 30 deletions
|
@ -2611,4 +2611,106 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
|
||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle topic bumping
|
||||||
|
* @param int $forum_id The ID of the forum the topic is being bumped belongs to
|
||||||
|
* @param int $topic_id The ID of the topic is being bumping
|
||||||
|
* @param array $post_data Passes some topic parameters:
|
||||||
|
* - 'topic_title'
|
||||||
|
* - 'topic_last_post_id'
|
||||||
|
* - 'topic_last_poster_id'
|
||||||
|
* - 'topic_last_post_subject'
|
||||||
|
* - 'topic_last_poster_name'
|
||||||
|
* - 'topic_last_poster_colour'
|
||||||
|
* @param int $bump_time The time at which topic was bumped, usually it is a current time as obtained via time().
|
||||||
|
* @return string An URL to the bumped topic, example: ./viewtopic.php?forum_id=1&topic_id=2&p=3#p3
|
||||||
|
*/
|
||||||
|
function phpbb_bump_topic($forum_id, $topic_id, $post_data, $bump_time = false)
|
||||||
|
{
|
||||||
|
global $config, $db, $user, $phpEx, $phpbb_root_path;
|
||||||
|
|
||||||
|
if ($bump_time === false)
|
||||||
|
{
|
||||||
|
$bump_time = time();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Begin bumping
|
||||||
|
$db->sql_transaction('begin');
|
||||||
|
|
||||||
|
// Update the topic's last post post_time
|
||||||
|
$sql = 'UPDATE ' . POSTS_TABLE . "
|
||||||
|
SET post_time = $bump_time
|
||||||
|
WHERE post_id = {$post_data['topic_last_post_id']}
|
||||||
|
AND topic_id = $topic_id";
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
// Sync the topic's last post time, the rest of the topic's last post data isn't changed
|
||||||
|
$sql = 'UPDATE ' . TOPICS_TABLE . "
|
||||||
|
SET topic_last_post_time = $bump_time,
|
||||||
|
topic_bumped = 1,
|
||||||
|
topic_bumper = " . $user->data['user_id'] . "
|
||||||
|
WHERE topic_id = $topic_id";
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
// Update the forum's last post info
|
||||||
|
$sql = 'UPDATE ' . FORUMS_TABLE . "
|
||||||
|
SET forum_last_post_id = " . $post_data['topic_last_post_id'] . ",
|
||||||
|
forum_last_poster_id = " . $post_data['topic_last_poster_id'] . ",
|
||||||
|
forum_last_post_subject = '" . $db->sql_escape($post_data['topic_last_post_subject']) . "',
|
||||||
|
forum_last_post_time = $bump_time,
|
||||||
|
forum_last_poster_name = '" . $db->sql_escape($post_data['topic_last_poster_name']) . "',
|
||||||
|
forum_last_poster_colour = '" . $db->sql_escape($post_data['topic_last_poster_colour']) . "'
|
||||||
|
WHERE forum_id = $forum_id";
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
// Update bumper's time of the last posting to prevent flood
|
||||||
|
$sql = 'UPDATE ' . USERS_TABLE . "
|
||||||
|
SET user_lastpost_time = $bump_time
|
||||||
|
WHERE user_id = " . $user->data['user_id'];
|
||||||
|
$db->sql_query($sql);
|
||||||
|
|
||||||
|
$db->sql_transaction('commit');
|
||||||
|
|
||||||
|
// Mark this topic as posted to
|
||||||
|
markread('post', $forum_id, $topic_id, $bump_time);
|
||||||
|
|
||||||
|
// Mark this topic as read
|
||||||
|
markread('topic', $forum_id, $topic_id, $bump_time);
|
||||||
|
|
||||||
|
// Update forum tracking info
|
||||||
|
if ($config['load_db_lastread'] && $user->data['is_registered'])
|
||||||
|
{
|
||||||
|
$sql = 'SELECT mark_time
|
||||||
|
FROM ' . FORUMS_TRACK_TABLE . '
|
||||||
|
WHERE user_id = ' . $user->data['user_id'] . '
|
||||||
|
AND forum_id = ' . $forum_id;
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
$f_mark_time = (int) $db->sql_fetchfield('mark_time');
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
}
|
||||||
|
else if ($config['load_anon_lastread'] || $user->data['is_registered'])
|
||||||
|
{
|
||||||
|
$f_mark_time = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($config['load_db_lastread'] && $user->data['is_registered']) || $config['load_anon_lastread'] || $user->data['is_registered'])
|
||||||
|
{
|
||||||
|
// Update forum info
|
||||||
|
$sql = 'SELECT forum_last_post_time
|
||||||
|
FROM ' . FORUMS_TABLE . '
|
||||||
|
WHERE forum_id = ' . $forum_id;
|
||||||
|
$result = $db->sql_query($sql);
|
||||||
|
$forum_last_post_time = (int) $db->sql_fetchfield('forum_last_post_time');
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
|
update_forum_tracking_info($forum_id, $forum_last_post_time, $f_mark_time, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
add_log('mod', $forum_id, $topic_id, 'LOG_BUMP_TOPIC', $post_data['topic_title']);
|
||||||
|
|
||||||
|
$url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id&p={$post_data['topic_last_post_id']}") . "#p{$post_data['topic_last_post_id']}";
|
||||||
|
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -151,7 +151,7 @@ $lang = array_merge($lang, array(
|
||||||
'ALLOW_POST_FLASH_EXPLAIN' => 'If disallowed the <code>[FLASH]</code> BBCode tag is disabled in posts. Otherwise the permission system controls which users can use the <code>[FLASH]</code> BBCode tag.',
|
'ALLOW_POST_FLASH_EXPLAIN' => 'If disallowed the <code>[FLASH]</code> BBCode tag is disabled in posts. Otherwise the permission system controls which users can use the <code>[FLASH]</code> BBCode tag.',
|
||||||
|
|
||||||
'BUMP_INTERVAL' => 'Bump interval',
|
'BUMP_INTERVAL' => 'Bump interval',
|
||||||
'BUMP_INTERVAL_EXPLAIN' => 'Number of minutes, hours or days between the last post to a topic and the ability to bump this topic. Setting the value to 0 disables this feature.',
|
'BUMP_INTERVAL_EXPLAIN' => 'Number of minutes, hours or days between the last post to a topic and the ability to bump that topic. Setting the value to 0 disables bumping entirely.',
|
||||||
'CHAR_LIMIT' => 'Maximum characters per post/message',
|
'CHAR_LIMIT' => 'Maximum characters per post/message',
|
||||||
'CHAR_LIMIT_EXPLAIN' => 'The number of characters allowed within a post/private message. Set to 0 for unlimited characters.',
|
'CHAR_LIMIT_EXPLAIN' => 'The number of characters allowed within a post/private message. Set to 0 for unlimited characters.',
|
||||||
'DELETE_TIME' => 'Limit deleting time',
|
'DELETE_TIME' => 'Limit deleting time',
|
||||||
|
|
|
@ -321,35 +321,7 @@ if ($mode == 'bump')
|
||||||
if ($bump_time = bump_topic_allowed($forum_id, $post_data['topic_bumped'], $post_data['topic_last_post_time'], $post_data['topic_poster'], $post_data['topic_last_poster_id'])
|
if ($bump_time = bump_topic_allowed($forum_id, $post_data['topic_bumped'], $post_data['topic_last_post_time'], $post_data['topic_poster'], $post_data['topic_last_poster_id'])
|
||||||
&& check_link_hash(request_var('hash', ''), "topic_{$post_data['topic_id']}"))
|
&& check_link_hash(request_var('hash', ''), "topic_{$post_data['topic_id']}"))
|
||||||
{
|
{
|
||||||
$db->sql_transaction('begin');
|
$meta_url = phpbb_bump_topic($forum_id, $topic_id, $post_data, $current_time);
|
||||||
|
|
||||||
$sql = 'UPDATE ' . POSTS_TABLE . "
|
|
||||||
SET post_time = $current_time
|
|
||||||
WHERE post_id = {$post_data['topic_last_post_id']}
|
|
||||||
AND topic_id = $topic_id";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
$sql = 'UPDATE ' . TOPICS_TABLE . "
|
|
||||||
SET topic_last_post_time = $current_time,
|
|
||||||
topic_bumped = 1,
|
|
||||||
topic_bumper = " . $user->data['user_id'] . "
|
|
||||||
WHERE topic_id = $topic_id";
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
update_post_information('forum', $forum_id);
|
|
||||||
|
|
||||||
$sql = 'UPDATE ' . USERS_TABLE . "
|
|
||||||
SET user_lastpost_time = $current_time
|
|
||||||
WHERE user_id = " . $user->data['user_id'];
|
|
||||||
$db->sql_query($sql);
|
|
||||||
|
|
||||||
$db->sql_transaction('commit');
|
|
||||||
|
|
||||||
markread('post', $forum_id, $topic_id, $current_time);
|
|
||||||
|
|
||||||
add_log('mod', $forum_id, $topic_id, 'LOG_BUMP_TOPIC', $post_data['topic_title']);
|
|
||||||
|
|
||||||
$meta_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id&p={$post_data['topic_last_post_id']}") . "#p{$post_data['topic_last_post_id']}";
|
|
||||||
meta_refresh(3, $meta_url);
|
meta_refresh(3, $meta_url);
|
||||||
|
|
||||||
$message = $user->lang['TOPIC_BUMPED'] . '<br /><br />' . sprintf($user->lang['VIEW_MESSAGE'], '<a href="' . $meta_url . '">', '</a>');
|
$message = $user->lang['TOPIC_BUMPED'] . '<br /><br />' . sprintf($user->lang['VIEW_MESSAGE'], '<a href="' . $meta_url . '">', '</a>');
|
||||||
|
|
Loading…
Add table
Reference in a new issue