summaryrefslogtreecommitdiff
path: root/mod.php
diff options
context:
space:
mode:
authorSavetheinternet <savetheinternet@n0v4.com>2011-01-03 02:00:30 +1100
committerSavetheinternet <savetheinternet@n0v4.com>2011-01-03 02:00:30 +1100
commitcb4ebae191db86ab8bdb4414af9b0ea340a61caf (patch)
treee7fe4c2adcb5942b469542af37861836db121bd6 /mod.php
parent5538d5589dfd04c1a9b8c4c6641e1beb28b7812f (diff)
Unlock/lock operations
Diffstat (limited to 'mod.php')
-rw-r--r--mod.php32
1 files changed, 31 insertions, 1 deletions
diff --git a/mod.php b/mod.php
index a06c424a..150ab6a5 100644
--- a/mod.php
+++ b/mod.php
@@ -285,7 +285,7 @@
header('Location: ?/' . sprintf(BOARD_PATH, $boardName) . FILE_INDEX, true, REDIRECT_HTTP);
} elseif(preg_match('/^\/' . $regex['board'] . '(un)?sticky\/(\d+)$/', $query, $matches)) {
if($mod['type'] < MOD_STICKY) error(ERROR_NOACCESS);
- // Ban by post
+ // Add/remove sticky
$boardName = $matches[1];
$post = $matches[3];
@@ -313,6 +313,36 @@
header('Location: ' . $_SERVER['HTTP_REFERER'], true, REDIRECT_HTTP);
else
header('Location: ?/' . sprintf(BOARD_PATH, $boardName) . FILE_INDEX, true, REDIRECT_HTTP);
+ } elseif(preg_match('/^\/' . $regex['board'] . '(un)?lock\/(\d+)$/', $query, $matches)) {
+ if($mod['type'] < MOD_LOCK) error(ERROR_NOACCESS);
+ // Lock/Unlock
+
+ $boardName = $matches[1];
+ $post = $matches[3];
+ // Open board
+ if(!openBoard($boardName))
+ error(ERROR_NOBOARD);
+
+ $query = prepare(sprintf("UPDATE `posts_%s` SET `locked` = :locked WHERE `id` = :id AND `thread` IS NULL", $board['uri']));
+ $query->bindValue(':id', $post, PDO::PARAM_INT);
+
+ if($matches[2] == 'un') {
+ $query->bindValue(':locked', 0, PDO::PARAM_INT);
+ } else {
+ $query->bindValue(':locked', 1, PDO::PARAM_INT);
+ }
+
+ $query->execute() or error(db_error($query));
+
+ buildIndex();
+ buildThread($post);
+
+
+ // Redirect
+ if(isset($_SERVER['HTTP_REFERER']))
+ header('Location: ' . $_SERVER['HTTP_REFERER'], true, REDIRECT_HTTP);
+ else
+ header('Location: ?/' . sprintf(BOARD_PATH, $boardName) . FILE_INDEX, true, REDIRECT_HTTP);
} elseif(preg_match('/^\/' . $regex['board'] . 'ban\/(\d+)$/', $query, $matches)) {
if($mod['type'] < MOD_DELETE) error(ERROR_NOACCESS);
// Ban by post