When moving threads, correct >>XX links.
This commit is contained in:
parent
c2437737b4
commit
8b1dbe502e
34
mod.php
34
mod.php
@ -1175,8 +1175,6 @@
|
||||
|
||||
$like = str_replace('%', '%%', $like);
|
||||
|
||||
// die(var_dump($like));
|
||||
|
||||
$boards = listBoards();
|
||||
foreach($boards as &$_b) {
|
||||
openBoard($_b['uri']);
|
||||
@ -2744,13 +2742,41 @@
|
||||
$replies[] = $post;
|
||||
}
|
||||
|
||||
$newIDs = Array($postID => $newID);
|
||||
|
||||
openBoard($targetBoard);
|
||||
foreach($replies as &$post) {
|
||||
post($post, false);
|
||||
$query = prepare("SELECT `target` FROM `cites` WHERE `target_board` = :board AND `board` = :board AND `post` = :post");
|
||||
$query->bindValue(':board', $boardName);
|
||||
$query->bindValue(':post', $post['id'], PDO::PARAM_INT);
|
||||
$query->execute() or error(db_error($qurey));
|
||||
while($cite = $query->fetch(PDO::FETCH_ASSOC)) {
|
||||
if(isset($newIDs[$cite['target']])) {
|
||||
$post['body_nomarkup'] = preg_replace(
|
||||
'/(>>(>\/' . preg_quote($boardName, '/') . '\/)?)' . preg_quote($cite['target'], '/') . '/',
|
||||
'>>' . $newIDs[$cite['target']],
|
||||
$post['body_nomarkup']);
|
||||
|
||||
$post['body'] = $post['body_nomarkup'];
|
||||
$post['tracked_cites'] = markup($post['body'], true);
|
||||
}
|
||||
}
|
||||
|
||||
$newIDs[$post['id']] = $newPostID = post($post, false);
|
||||
|
||||
if($post['has_file']) {
|
||||
$clone($post['file_src'], sprintf($config['board_path'], $board['uri']) . $config['dir']['img'] . $post['file']);
|
||||
$clone($post['file_thumb'], sprintf($config['board_path'], $board['uri']) . $config['dir']['thumb'] . $post['thumb']);
|
||||
}
|
||||
|
||||
foreach($post['tracked_cites'] as $cite) {
|
||||
$query = prepare('INSERT INTO `cites` VALUES (:board, :post, :target_board, :target)');
|
||||
$query->bindValue(':board', $board['uri']);
|
||||
$query->bindValue(':post', $newPostID, PDO::PARAM_INT);
|
||||
$query->bindValue(':target_board',$cite[0]);
|
||||
$query->bindValue(':target', $cite[1], PDO::PARAM_INT);
|
||||
$query->execute() or error(db_error($query));
|
||||
}
|
||||
}
|
||||
|
||||
// build thread
|
||||
@ -2792,7 +2818,7 @@
|
||||
buildIndex();
|
||||
|
||||
openBoard($targetBoard);
|
||||
header('Location: ?/' . sprintf($config['board_path'], $boardName) . $config['dir']['res'] . sprintf($config['file_page'], $newID), true, $config['redirect_http']);
|
||||
header('Location: ?/' . sprintf($config['board_path'], $board['uri']) . $config['dir']['res'] . sprintf($config['file_page'], $newID), true, $config['redirect_http']);
|
||||
}
|
||||
} else {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user