diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index d59fd67a65..756754ddeb 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -202,7 +202,6 @@
[Fix] Make sure only logs for existing users are displayed and user-specific logs removed on user deletion. (Bug #49855)
[Fix] Only show "Add friend" and "Add foe" links if the specific module is enabled. (Bug #50475)
[Fix] Correctly display list items in forum description in prosilver and administration. (Bug #48055 - Patch by leviatan21)
- [Fix] Fix handling of bookmarks and subscriptions on "split topics", "merge topics" and "merge posts". (Bug #50035)
[Fix] Only embed cron.php if there is no cron lock present to reduce overhead. (Bug #45725 - Patch by TerryE)
[Fix] Add header gradient back into subsilver2 but keep site logo easily replaceable with smaller and bigger ones. (Bug #11142 - Patch by dark/Rain and Raimon)
[Fix] Send activation email when activating user from user settings. (Bug #43145)
diff --git a/phpBB/includes/mcp/mcp_forum.php b/phpBB/includes/mcp/mcp_forum.php
index acb7aa4ac0..b70601b479 100644
--- a/phpBB/includes/mcp/mcp_forum.php
+++ b/phpBB/includes/mcp/mcp_forum.php
@@ -416,14 +416,11 @@ function merge_topics($forum_id, $topic_ids, $to_topic_id)
// If the topic no longer exist, we will update the topic watch table.
// To not let it error out on users watching both topics, we just return on an error...
- // Same for Bookmarks
$db->sql_return_on_error(true);
$db->sql_query('UPDATE ' . TOPICS_WATCH_TABLE . ' SET topic_id = ' . (int) $to_topic_id . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids));
- $db->sql_query('UPDATE ' . BOOKMARKS_TABLE . ' SET topic_id = ' . (int) $to_topic_id . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids));
$db->sql_return_on_error(false);
$db->sql_query('DELETE FROM ' . TOPICS_WATCH_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids));
- $db->sql_query('DELETE FROM ' . BOOKMARKS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', $topic_ids));
// Link to the new topic
$return_link .= (($return_link) ? '
' : '') . sprintf($user->lang['RETURN_NEW_TOPIC'], '', '');
diff --git a/phpBB/includes/mcp/mcp_topic.php b/phpBB/includes/mcp/mcp_topic.php
index eb3d6d3970..abdb839e7b 100644
--- a/phpBB/includes/mcp/mcp_topic.php
+++ b/phpBB/includes/mcp/mcp_topic.php
@@ -504,45 +504,6 @@ function split_topic($action, $topic_id, $to_forum_id, $subject)
// Update forum statistics
set_config_count('num_topics', 1, true);
- // Add new topic to bookmarks
- $bookmarks = array();
- $sql = 'SELECT user_id
- FROM ' . BOOKMARKS_TABLE . '
- WHERE topic_id = ' . $topic_id;
- $result = $db->sql_query($sql);
- while ($row = $db->sql_fetchrow($result))
- {
- $bookmarks[] = array(
- 'user_id' => (int) $row['user_id'],
- 'topic_id' => $to_topic_id,
- );
- }
- $db->sql_freeresult($result);
- if (sizeof($bookmarks))
- {
- $db->sql_multi_insert(BOOKMARKS_TABLE, $bookmarks);
- }
-
- // Add new topic to watch-list
- $notifications = array();
- $sql = 'SELECT user_id, notify_status
- FROM ' . TOPICS_WATCH_TABLE . '
- WHERE topic_id = ' . $topic_id;
- $result = $db->sql_query($sql);
- while ($row = $db->sql_fetchrow($result))
- {
- $notifications[] = array(
- 'user_id' => (int) $row['user_id'],
- 'topic_id' => $to_topic_id,
- 'notify_status' => (int) $row['notify_status'],
- );
- }
- $db->sql_freeresult($result);
- if (sizeof($notifications))
- {
- $db->sql_multi_insert(TOPICS_WATCH_TABLE, $notifications);
- }
-
// Link back to both topics
$return_link = sprintf($user->lang['RETURN_TOPIC'], '', '') . '
' . sprintf($user->lang['RETURN_NEW_TOPIC'], '', '');
}
@@ -636,65 +597,17 @@ function merge_posts($topic_id, $to_topic_id)
if ($row)
{
- // Add new topic to bookmarks
- $bookmarks = array();
- $sql = 'SELECT user_id
- FROM ' . BOOKMARKS_TABLE . '
- WHERE topic_id = ' . (int) $topic_id;
- $result = $db->sql_query($sql);
- while ($row = $db->sql_fetchrow($result))
- {
- $bookmarks[] = array(
- 'user_id' => (int) $row['user_id'],
- 'topic_id' => (int) $to_topic_id,
- );
- }
- $db->sql_freeresult($result);
- if (sizeof($bookmarks))
- {
- // To not let it error out on users, who already bookmarked the topic, we just return on an error...
- $db->sql_return_on_error(true);
- $db->sql_multi_insert(BOOKMARKS_TABLE, $bookmarks);
- $db->sql_return_on_error(false);
- }
-
- // Add new topic to notifications
- $notifications = array();
- $sql = 'SELECT user_id, notify_status
- FROM ' . TOPICS_WATCH_TABLE . '
- WHERE topic_id = ' . (int) $topic_id;
- $result = $db->sql_query($sql);
- while ($row = $db->sql_fetchrow($result))
- {
- $notifications[] = array(
- 'user_id' => (int) $row['user_id'],
- 'topic_id' => (int) $to_topic_id,
- 'notify_status' => (int) $row['notify_status'],
- );
- }
- $db->sql_freeresult($result);
- if (sizeof($notifications))
- {
- // To not let it error out on users, who already watch the topic, we just return on an error...
- $db->sql_return_on_error(true);
- $db->sql_multi_insert(TOPICS_WATCH_TABLE, $notifications);
- $db->sql_return_on_error(false);
- }
-
$return_link .= sprintf($user->lang['RETURN_TOPIC'], '', '');
}
else
{
// If the topic no longer exist, we will update the topic watch table.
// To not let it error out on users watching both topics, we just return on an error...
- // Same for bookmarks
$db->sql_return_on_error(true);
$db->sql_query('UPDATE ' . TOPICS_WATCH_TABLE . ' SET topic_id = ' . (int) $to_topic_id . ' WHERE topic_id = ' . (int) $topic_id);
- $db->sql_query('UPDATE ' . BOOKMARKS_TABLE . ' SET topic_id = ' . (int) $to_topic_id . ' WHERE topic_id = ' . (int) $topic_id);
$db->sql_return_on_error(false);
$db->sql_query('DELETE FROM ' . TOPICS_WATCH_TABLE . ' WHERE topic_id = ' . (int) $topic_id);
- $db->sql_query('DELETE FROM ' . BOOKMARKS_TABLE . ' WHERE topic_id = ' . (int) $topic_id);
}
// Link to the new topic