Example #1
0
/**
 * Delete a private message from a folder.
 *
 * @param integer $pm_id
 *     The id of the private message to delete
 *
 * @param mixed $folder
 *     The folder from which to delete the message
 *
 * @param integer $user_id
 *     The id of the user to delete the message for
 *     or NULL to use the active Phorum user (default).
 */
function phorum_db_pm_delete($pm_id, $folder, $user_id = NULL)
{
    $PHORUM = $GLOBALS['PHORUM'];
    settype($pm_id, 'int');
    if ($user_id === NULL) {
        $user_id = $PHORUM['user']['user_id'];
    }
    settype($user_id, 'int');
    if (is_numeric($folder)) {
        $folder_where = "pm_folder_id = {$folder}";
    } elseif ($folder == PHORUM_PM_INBOX || $folder == PHORUM_PM_OUTBOX) {
        $folder_where = "(pm_folder_id = 0 AND special_folder = '{$folder}')";
    } else {
        trigger_error('phorum_db_pm_delete(): Illegal folder "' . htmlspecialchars($folder) . '" requested for user id "' . $user_id . '"', E_USER_ERROR);
    }
    phorum_db_interact(DB_RETURN_RES, "DELETE FROM {$PHORUM['pm_xref_table']}\n         WHERE user_id       = {$user_id} AND\n               pm_message_id = {$pm_id} AND\n               {$folder_where}", NULL, DB_MASTERQUERY);
    // Update message counters.
    phorum_db_pm_update_message_info($pm_id);
}
Example #2
0
/**
 * This function deletes a private message from a folder.
 * @param folder - The folder from which to delete the message
 * @param pm_id - The id of the private message to delete
 * @param user_id - The user to delete the message for or NULL
 *                 to use the current user (default).
 */
function phorum_db_pm_delete($pm_id, $folder, $user_id = NULL)
{
    $PHORUM = $GLOBALS["PHORUM"];

    $conn = phorum_db_postgresql_connect();

    settype($pm_id, "int");

    if ($user_id == NULL) $user_id = $PHORUM['user']['user_id'];
    settype($user_id, "int");

    if (is_numeric($folder)) {
        $folder_sql = "pm_folder_id=$folder AND";
    } elseif ($folder == PHORUM_PM_INBOX || $folder == PHORUM_PM_OUTBOX) {
        $folder_sql = "pm_folder_id=0 AND special_folder='$folder' AND";
    } else {
        die ("Illegal folder '$folder' requested for user id '$user_id'");
    }

    $sql = "DELETE FROM {$PHORUM["pm_xref_table"]} " .
           "WHERE $folder_sql " .
           "user_id = $user_id AND pm_message_id = $pm_id";

    $res = pg_query($conn, $sql);
    if ($err = pg_last_error()) phorum_db_pg_last_error("$err: $sql");

    // Update message counters.
    phorum_db_pm_update_message_info($pm_id);

    return $res;
}