summaryrefslogtreecommitdiff
path: root/lib/deck/mvent.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/deck/mvent.php')
-rw-r--r--lib/deck/mvent.php32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/deck/mvent.php b/lib/deck/mvent.php
new file mode 100644
index 0000000..d4571e9
--- /dev/null
+++ b/lib/deck/mvent.php
@@ -0,0 +1,32 @@
+<?php
+
+require("lib/markdown.php");
+
+assert_redir(count($args) == 4, 'deck');
+$cardid = intval($args[2]);
+$pos = intval($args[3]);
+
+$card = mysql_fetch_assoc(sql(
+ "SELECT decks.id AS deckid, decks.owner AS deckowner, decks.name AS deckname, cards.name AS name, cards.text_md AS text, cards.number AS number ".
+ "FROM cards LEFT JOIN decks ON decks.id = cards.deck ".
+ "WHERE cards.id = $cardid"));
+assert_error($card && $card["deckowner"] == $user['id'],
+ "This card does not exist, or you are not allowed to edit it.");
+$deck = array("id" => $card['deckid'], 'name' => $card['deckname']);
+$deckid = $card['deckid'];
+
+$mn = mysql_fetch_assoc(sql("SELECT COUNT(*) AS c FROM cards WHERE deck = $deckid"));
+$mn = $mn['c'];
+if ($pos > $mn) {
+ $error = "That number is too big. You don't even have that much cards in your deck.";
+} else if ($pos < 1) {
+ $error = "A position is at least one...";
+} else {
+ sql("UPDATE cards SET number = 0 WHERE id = $cardid");
+ sql("UPDATE cards SET number = number - 1 WHERE number > " . $card['number']);
+ sql("UPDATE cards SET number = number + 1 WHERE number >= $pos");
+ sql("UPDATE cards SET number = $pos WHERE id = $cardid");
+ header("Location: view-deck-$deckid");
+}
+
+require("tpl/deck/ef.php");