function serendipity_deleteComment($id, $entry_id, $type='comments') {
global $serendipity;
+ $id = (int)$id;
+ $entry_id = (int)$entry_id;
+ if ($id < 1 OR $entry_id < 1) {
+ return false;
+ }
+
if ($_SESSION['serendipityAuthedUser'] === true) {
$admin = '';
if (!serendipity_checkPermission('adminEntriesMaintainOthers')) {
/* We have to figure out if the comment we are about to delete, is awaiting approval,
if so - we should *not* subtract it from the entries table */
- $sql = serendipity_db_query("SELECT status, parent_id FROM {$serendipity['dbPrefix']}comments
- WHERE entry_id = '". (int)$entry_id ."'
- AND id = '". (int)$id ."'
- $admin", true);
+ $sql = serendipity_db_query("SELECT type, status, parent_id FROM {$serendipity['dbPrefix']}comments
+ WHERE entry_id = ". $entry_id ."
+ AND id = ". $id , true);
serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}comments
- WHERE entry_id = '". (int)$entry_id ."'
- AND id = '". (int)$id ."'
- $admin");
+ WHERE entry_id = ". $entry_id ."
+ AND id = ". $id );
if ($sql['status'] !== 'pending') {
- serendipity_db_query("UPDATE {$serendipity['dbPrefix']}entries SET $type = $type-1 WHERE id = '". (int)$entry_id ."' $admin");
+ if (!empty($sql['type']) && $sql['type'] != 'NORMAL') {
+ $type = 'trackbacks';
+ } else {
+ $type = 'comments';
+ }
+ serendipity_db_query("UPDATE {$serendipity['dbPrefix']}entries SET $type = $type-1 WHERE id = ". $entry_id);
}
- serendipity_db_query("UPDATE {$serendipity['dbPrefix']}comments SET parent_id = " . (int)$sql['parent_id'] . " WHERE parent_id = '" . (int)$id . "'");
+ serendipity_db_query("UPDATE {$serendipity['dbPrefix']}comments SET parent_id = " . (int)$sql['parent_id'] . " WHERE parent_id = " . $id);
return true;
} else {