Исходный код: https://github.com/rxu/posts_merging
Копировать в папку
/ext/rxu/postsmerging/
./ext/rxu/postsmerging/
.sql_escape
rxu/PostMerging/core/helper.php
найти
Код: Выделить всё
$sql_data[FORUMS_TABLE]['sql'] = array(
'forum_last_post_time' => $data['post_time'],
'forum_last_post_id' => $data['post_id'],
'forum_last_post_subject' => $this->db->sql_escape($data['post_subject']),
'forum_last_poster_id' => (int) $this->user->data['user_id'],
'forum_last_poster_name' => $this->db->sql_escape($this->user->data['username']),
'forum_last_poster_colour' => $this->db->sql_escape($this->user->data['user_colour']),
);
Код: Выделить всё
$sql_data[FORUMS_TABLE]['sql'] = array(
'forum_last_post_time' => $data['post_time'],
'forum_last_post_id' => $data['post_id'],
'forum_last_post_subject' => $data['post_subject'],
'forum_last_poster_id' => (int) $this->user->data['user_id'],
'forum_last_poster_name' => $this->user->data['username'],
'forum_last_poster_colour' => $this->user->data['user_colour'],
);
Код: Выделить всё
while ($row = $db->sql_fetchrow($result))
{
$update_sql[$row["{$type}_id"]][] = $type . '_last_post_id = ' . (int) $row['post_id'];
$update_sql[$row["{$type}_id"]][] = "{$type}_last_post_subject = '" . $db->sql_escape($row['post_subject']) . "'";
$update_sql[$row["{$type}_id"]][] = $type . '_last_post_time = ' . (int) $row['post_time'];
$update_sql[$row["{$type}_id"]][] = $type . '_last_poster_id = ' . (int) $row['poster_id'];
$update_sql[$row["{$type}_id"]][] = "{$type}_last_poster_colour = '" . $db->sql_escape($row['user_colour']) . "'";
$update_sql[$row["{$type}_id"]][] = "{$type}_last_poster_name = '" . (($row['poster_id'] == ANONYMOUS) ? $db->sql_escape($row['post_username']) : $db->sql_escape($row['username'])) . "'";
}
$db->sql_freeresult($result);
Код: Выделить всё
if ($post_visibility == ITEM_APPROVED)
{
if ($post_mode == 'post')
{
$config->increment('num_topics', 1, false);
}
$config->increment('num_posts', 1, false);
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_id = ' . $data_ary['post_id'];
$sql_data[FORUMS_TABLE]['stat'][] = "forum_last_post_subject = '" . $db->sql_escape($subject) . "'";
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_post_time = ' . $current_time;
$sql_data[FORUMS_TABLE]['stat'][] = 'forum_last_poster_id = ' . (int) $user->data['user_id'];
$sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_name = '" . $db->sql_escape((!$user->data['is_registered'] && $username) ? $username : (($user->data['user_id'] != ANONYMOUS) ? $user->data['username'] : '')) . "'";
$sql_data[FORUMS_TABLE]['stat'][] = "forum_last_poster_colour = '" . $db->sql_escape($user->data['user_colour']) . "'";
}
Код: Выделить всё
// 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);
первое в коде расширения которое я привел для замены. Второе в функции
_sql_validate_value
, вызываемой в sql_build_array