summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mod.php23
1 files changed, 21 insertions, 2 deletions
diff --git a/mod.php b/mod.php
index df3cf528..7e6f1f1f 100644
--- a/mod.php
+++ b/mod.php
@@ -298,7 +298,26 @@
while($log = $query->fetch()) {
$log['text'] = utf8tohtml($log['text']);
$log['text'] = preg_replace('/(\d+\.\d+\.\d+\.\d+)/', '<a href="?/IP/$1">$1</a>', $log['text']);
-
+
+ if(isset($boards[$log['board']])) {
+ if(preg_match('/post #(\d+)/', $log['text'], $match)) {
+ $post_query = prepare(sprintf("SELECT `thread` FROM `posts_%s` WHERE `id` = :id", $boards[$log['board']]));
+ $post_query->bindValue(':id', $match[1], PDO::PARAM_INT);
+ $post_query->execute() or error(db_error($query));
+
+ if($post = $post_query->fetch()) {
+ $log['text'] = preg_replace('/post #(\d+)/', '<a href="' .
+ '?/' .
+ sprintf($config['board_path'], $boards[$log['board']]) .
+ $config['dir']['res'] .
+ ($post['thread'] ?
+ sprintf($config['file_page'], $post['thread']) . '#' . $match[1]
+ : sprintf($config['file_page'], $match[1])) .
+ '">$0</a>', $log['text']);
+ }
+ }
+ }
+
$body .= '<tr>' .
'<td class="minimal">' .
($log['username'] ?
@@ -310,7 +329,7 @@
'<td class="minimal">' .
($log['board'] ?
(isset($boards[$log['board']]) ?
- '<a href="?/' . $boards[$log['board']] . '/' . $config['file_index'] . '">' . sprintf($config['board_abbreviation'], $boards[$log['board']]) . '</a></td>'
+ '<a href="?/' . sprintf($config['board_path'], $boards[$log['board']]) . $config['file_index'] . '">' . sprintf($config['board_abbreviation'], $boards[$log['board']]) . '</a></td>'
: '<em>deleted?</em>')
: '-') .
'<td>' . $log['text'] . '</td>' .