diff options
| author | Savetheinternet <savetheinternet@n0v4.com> | 2011-01-21 13:14:55 +1100 |
|---|---|---|
| committer | Savetheinternet <savetheinternet@n0v4.com> | 2011-01-21 13:14:55 +1100 |
| commit | 67148f28463f8d4f2b7b61d38aa5d71df9658e4c (patch) | |
| tree | f500f0f9e21604e2f3d9017566ff31acc54d8bfc | |
| parent | ec34fa8076985bf16cf82675fa490860214a486d (diff) | |
...
| -rw-r--r-- | default.css | 0 | ||||
| -rw-r--r-- | inc/display.php | 13 | ||||
| -rw-r--r-- | inc/functions.php | 36 | ||||
| -rw-r--r-- | inc/mod.php | 37 | ||||
| -rw-r--r-- | main.js | 23 | ||||
| -rw-r--r-- | style.css | 13 |
6 files changed, 82 insertions, 40 deletions
diff --git a/default.css b/default.css new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/default.css diff --git a/inc/display.php b/inc/display.php index 66637d0d..0678cef7 100644 --- a/inc/display.php +++ b/inc/display.php @@ -110,7 +110,9 @@ global $board; $built = '<div class="post reply"' . (!$index?' id="reply_' . $this->id . '"':'') . '>' . - '<p class="intro"' . (!$index?' id="' . $this->id . '"':'') . '>'; + '<p class="intro"' . (!$index?' id="' . $this->id . '"':'') . '>' . + // Delete + '<input type="checkbox" class="delete" name="delete_' . $this->id . '" id="delete_' . $this->id . '" /><label for="delete_' . $this->id . '">'; // Subject if(!empty($this->subject)) @@ -135,6 +137,9 @@ // Date/time $built .= ' ' . date(POST_DATE, $this->time); + // End delete + $built .= '</label>'; + $built .= ' <a class="post_no"' . // JavaScript highlight ($index?'':' onclick="highlightReply(' . $this->id . ');"') . @@ -266,6 +271,9 @@ $built .= '<div class="post op"><p class="intro"' . (!$index?' id="' . $this->id . '"':'') . '>'; + // Delete + $built .= '<input type="checkbox" class="delete" name="delete_' . $this->id . '" id="delete_' . $this->id . '" /><label for="delete_' . $this->id . '">'; + // Subject if(!empty($this->subject)) $built .= '<span class="subject">' . $this->subject . '</span> '; @@ -289,6 +297,9 @@ // Date/time $built .= ' ' . date(POST_DATE, $this->time); + // End delete + $built .= '</label>'; + $built .= ' <a class="post_no"' . // JavaScript highlight ($index?'':' onclick="highlightReply(' . $this->id . ');"') . diff --git a/inc/functions.php b/inc/functions.php index 13f636e1..c9b85ad4 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -262,6 +262,42 @@ $query->execute() or error(db_error($query)); } + // Remove file from post + function deleteFile($id, $remove_entirely_if_already=true) { + global $board; + + $query = prepare(sprintf("SELECT `thread`,`thumb`,`file` FROM `posts_%s` WHERE `id` = :id AND `thread` IS NOT NULL LIMIT 1", $board['uri'])); + $query->bindValue(':id', $id, PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + + if($query->rowCount() < 1) { + error(ERROR_INVALIDPOST); + } + + $post = $query->fetch(); + + $query = prepare(sprintf("UPDATE `posts_%s` SET `thumb` = NULL, `thumbwidth` = NULL, `thumbheight` = NULL, `filewidth` = NULL, `fileheight` = NULL, `filesize` = NULL, `filename` = NULL, `filehash` = NULL, `file` = :file WHERE `id` = :id OR `thread` = :id", $board['uri'])); + if($post['file'] == 'deleted' && $remove_entirely_if_already) { + // Already deleted; remove file fully + $query->bindValue(':file', null, PDO::PARAM_NULL); + } else { + // Delete thumbnail + @unlink($board['dir'] . DIR_THUMB . $post['thumb']); + + // Delete file + @unlink($board['dir'] . DIR_IMG . $post['file']); + + // Set file to 'deleted' + $query->bindValue(':file', 'deleted', PDO::PARAM_INT); + } + // Update database + + $query->bindValue(':id', $id, PDO::PARAM_INT); + $query->execute() or error(db_error($query)); + + buildThread($post['thread']); + } + // Delete a post (reply or thread) function deletePost($id) { global $board; diff --git a/inc/mod.php b/inc/mod.php index 5e3a2c87..5a3e6157 100644 --- a/inc/mod.php +++ b/inc/mod.php @@ -173,40 +173,5 @@ '</form>' . '</fieldset>'; } - - // Remove file from post - function deleteFile($id) { - global $board; - - $query = prepare(sprintf("SELECT `thread`,`thumb`,`file` FROM `posts_%s` WHERE `id` = :id AND `thread` IS NOT NULL LIMIT 1", $board['uri'])); - $query->bindValue(':id', $id, PDO::PARAM_INT); - $query->execute() or error(db_error($query)); - - if($query->rowCount() < 1) { - error(ERROR_INVALIDPOST); - } - - $post = $query->fetch(); - - $query = prepare(sprintf("UPDATE `posts_%s` SET `thumb` = NULL, `thumbwidth` = NULL, `thumbheight` = NULL, `filewidth` = NULL, `fileheight` = NULL, `filesize` = NULL, `filename` = NULL, `filehash` = NULL, `file` = :file WHERE `id` = :id OR `thread` = :id", $board['uri'])); - if($post['file'] == 'deleted') { - // Already deleted; remove file fully - $query->bindValue(':file', null, PDO::PARAM_NULL); - } else { - // Delete thumbnail - @unlink($board['dir'] . DIR_THUMB . $post['thumb']); - - // Delete file - @unlink($board['dir'] . DIR_IMG . $post['file']); - - // Set file to 'deleted' - $query->bindValue(':file', 'deleted', PDO::PARAM_INT); - } - // Update database - - $query->bindValue(':id', $id, PDO::PARAM_INT); - $query->execute() or error(db_error($query)); - - buildThread($post['thread']); - } + ?>
\ No newline at end of file @@ -14,9 +14,21 @@ function focusId(id) document.getElementById(id).focus();
init();
}
+
+function generatePassword() {
+ pass = '';
+ chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+';
+ for(i=0;i<8;i++) {
+ rnd = Math.floor(Math.random() * chars.length);
+ pass += chars.substring(rnd,rnd + 1);
+ }
+ return pass;
+}
+
function dopost(form) {
- localStorage.name = form.name.value;
- localStorage.email = form.email.value;
+ localStorage.name = form.name.value.replace(/ ##.+$/, '');
+ if(form.email.value != 'sage')
+ localStorage.email = form.email.value;
return form.body.value != "" || (typeof form.thread != "undefined" && form.file.value != "");
}
@@ -65,6 +77,13 @@ function init() newElement.appendChild(style);
}
+ if(!localStorage.password)
+ localStorage.password = generatePassword();
+ elements = document.getElementsByName('password');
+ for(x=0;x<elements.length;x++) {
+ elements[x].value = localStorage.password;
+ }
+
document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild)
if (window.location.hash.indexOf('q') == 1)
@@ -113,6 +113,10 @@ div.banner a:hover { color: #EEF2FF; text-decoration: none; } +img.banner { + float: none; + margin: 4px auto 0 auto; +} img { display: block; float: left; @@ -138,6 +142,10 @@ p.intro { padding: 0; padding-bottom: 0.2em; } +input.delete { + float: left; + margin: 1px 6px 0 0; +} p.intro span.subject { color: #0F0C5D; font-weight: bold; @@ -153,6 +161,9 @@ p.intro a.nametag { p.intro a { margin-left: 8px; } +div.delete { + float: right; +} div.post.reply p { margin: 0.3em 0 0 0; } @@ -243,4 +254,4 @@ div.styles a { } div.styles a.selected { text-decoration: none; -}
\ No newline at end of file +} |
