| | |
| | | | | |
| | | | This file is part of the RoundCube Webmail client | |
| | | | Copyright (C) 2005, RoundCube Dev. - Switzerland | |
| | | | All rights reserved. | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | PURPOSE: | |
| | | | Save an identity record or to add a new one | |
| | |
| | | |
| | | */ |
| | | |
| | | $a_save_cols = array('name', 'email', 'organization', 'reply-to', 'bcc', 'default'); |
| | | $a_save_cols = array('name', 'email', 'organization', 'reply-to', 'bcc', 'standard', 'signature'); |
| | | $a_html_cols = array('signature'); |
| | | |
| | | |
| | | // check input |
| | | if (empty($_POST['_name']) || empty($_POST['_email'])) |
| | | { |
| | | show_message('formincomplete', 'warning'); |
| | | rcmail_overwrite_action('edit-identitiy'); |
| | | return; |
| | | } |
| | | |
| | | |
| | | // update an existing contact |
| | |
| | | if (!isset($_POST[$fname])) |
| | | continue; |
| | | |
| | | $a_write_sql[] = sprintf("`%s`='%s'", $col, addslashes($_POST[$fname])); |
| | | $a_write_sql[] = sprintf("%s=%s", |
| | | $DB->quoteIdentifier($col), |
| | | $DB->quote(get_input_value($fname, RCUBE_INPUT_POST, in_array($col, $a_html_cols)))); |
| | | } |
| | | |
| | | if (sizeof($a_write_sql)) |
| | | { |
| | | $DB->query(sprintf("UPDATE %s |
| | | SET %s |
| | | WHERE identity_id=%d |
| | | AND user_id=%d |
| | | AND del!='1'", |
| | | get_table_name('identities'), |
| | | join(', ', $a_write_sql), |
| | | $_POST['_iid'], |
| | | $_SESSION['user_id'])); |
| | | $DB->query("UPDATE ".get_table_name('identities')." |
| | | SET ".join(', ', $a_write_sql)." |
| | | WHERE identity_id=? |
| | | AND user_id=? |
| | | AND del<>1", |
| | | get_input_value('_iid', RCUBE_INPUT_POST), |
| | | $_SESSION['user_id']); |
| | | |
| | | $updated = $DB->affected_rows(); |
| | | } |
| | | |
| | | if ($updated) |
| | | if ($updated && !empty($_POST['_standard'])) |
| | | { |
| | | show_message('successfullysaved', 'confirmation'); |
| | | |
| | | // mark all other identities as 'not-default' |
| | | $DB->query(sprintf("UPDATE %s |
| | | SET `default`='0' |
| | | WHERE identity_id!=%d |
| | | AND user_id=%d |
| | | AND del!='1'", |
| | | get_table_name('identities'), |
| | | $_POST['_iid'], |
| | | $_SESSION['user_id'])); |
| | | $DB->query("UPDATE ".get_table_name('identities')." |
| | | SET ".$DB->quoteIdentifier('standard')."='0' |
| | | WHERE user_id=? |
| | | AND identity_id<>? |
| | | AND del<>1", |
| | | $_SESSION['user_id'], |
| | | get_input_value('_iid', RCUBE_INPUT_POST)); |
| | | |
| | | if ($_POST['_framed']) |
| | | { |
| | |
| | | // ... |
| | | } |
| | | } |
| | | else |
| | | else if ($DB->is_error()) |
| | | { |
| | | // show error message |
| | | |
| | | show_message('errorsaving', 'error'); |
| | | rcmail_overwrite_action('edit-identitiy'); |
| | | } |
| | | } |
| | | |
| | |
| | | if (!isset($_POST[$fname])) |
| | | continue; |
| | | |
| | | $a_insert_cols[] = "`$col`"; |
| | | $a_insert_values[] = sprintf("'%s'", addslashes($_POST[$fname])); |
| | | $a_insert_cols[] = $DB->quoteIdentifier($col); |
| | | $a_insert_values[] = $DB->quote(get_input_value($fname, RCUBE_INPUT_POST, in_array($col, $a_html_cols))); |
| | | } |
| | | |
| | | if (sizeof($a_insert_cols)) |
| | | { |
| | | $DB->query(sprintf("INSERT INTO %s |
| | | (user_id, %s) |
| | | VALUES (%d, %s)", |
| | | get_table_name('identities'), |
| | | join(', ', $a_insert_cols), |
| | | $_SESSION['user_id'], |
| | | join(', ', $a_insert_values))); |
| | | |
| | | $insert_id = $DB->insert_id(); |
| | | $DB->query("INSERT INTO ".get_table_name('identities')." |
| | | (user_id, ".join(', ', $a_insert_cols).") |
| | | VALUES (?, ".join(', ', $a_insert_values).")", |
| | | $_SESSION['user_id']); |
| | | |
| | | $insert_id = $DB->insert_id(get_sequence_name('identities')); |
| | | } |
| | | |
| | | if ($insert_id) |
| | |
| | | else |
| | | { |
| | | // show error message |
| | | show_message('errorsaving', 'error'); |
| | | rcmail_overwrite_action('edit-identitiy'); |
| | | } |
| | | } |
| | | |
| | | |
| | | // go to next step |
| | | if ($_POST['_framed']) |
| | | $_action = 'edit-identitiy'; |
| | | else |
| | | $_action = 'identities'; |
| | | |
| | | |
| | | // overwrite action variable |
| | | $OUTPUT->add_script(sprintf("\n%s.set_env('action', '%s');", $JS_OBJECT_NAME, $_action)); |
| | | rcmail_overwrite_action($_POST['_framed'] ? 'edit-identitiy' : 'identities'); |
| | | |
| | | ?> |