diff options
author | thomascube <thomas@roundcube.net> | 2005-09-25 14:18:03 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2005-09-25 14:18:03 +0000 |
commit | 4e17e6c9dbac8991ee8b302cb2581241247dc8bc (patch) | |
tree | d877546f6bd334b041734498e81f6299e005b01c /program/steps/addressbook/edit.inc |
Initial revision
Diffstat (limited to 'program/steps/addressbook/edit.inc')
-rw-r--r-- | program/steps/addressbook/edit.inc | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/program/steps/addressbook/edit.inc b/program/steps/addressbook/edit.inc new file mode 100644 index 000000000..db7b77a59 --- /dev/null +++ b/program/steps/addressbook/edit.inc @@ -0,0 +1,123 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | program/steps/addressbook/edit.inc | + | | + | This file is part of the RoundCube Webmail client | + | Copyright (C) 2005, RoundCube Dev. - Switzerland | + | All rights reserved. | + | | + | PURPOSE: | + | Show edit form for a contact entry or to add a new one | + | | + +-----------------------------------------------------------------------+ + | Author: Thomas Bruederli <roundcube@gmail.com> | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + + +if (($_GET['_cid'] || $_POST['_cid']) && $_action=='edit') + { + $cid = $_POST['_cid'] ? $_POST['_cid'] : $_GET['_cid']; + $DB->query(sprintf("SELECT * FROM %s + WHERE contact_id=%d + AND user_id=%d + AND del!='1'", + get_table_name('contacts'), + $cid, + $_SESSION['user_id'])); + + $CONTACT_RECORD = $DB->fetch_assoc(); + + if (is_array($CONTACT_RECORD)) + $OUTPUT->add_script(sprintf("%s.set_env('cid', '%s');", $JS_OBJECT_NAME, $CONTACT_RECORD['contact_id'])); + } + + + +function rcmail_contact_editform($attrib) + { + global $CONTACT_RECORD, $JS_OBJECT_NAME; + + if (!$CONTACT_RECORD && $GLOBALS['_action']!='add') + return rcube_label('contactnotfound'); + + list($form_start, $form_end) = get_form_tags($attrib); + unset($attrib['form']); + + + // a specific part is requested + if ($attrib['part']) + { + $out = $form_start; + $out .= rcmail_get_edit_field($attrib['part'], $CONTACT_RECORD[$attrib['part']], $attrib); + return $out; + } + + + // return the complete address edit form as table + $out = "$form_start<table>\n\n"; + + $a_show_cols = array('name', 'firstname', 'surname', 'email'); + foreach ($a_show_cols as $col) + { + $attrib['id'] = 'rcmfd_'.$col; + $title = rcube_label($col); + $value = rcmail_get_edit_field($col, $CONTACT_RECORD[$col], $attrib); + $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n", + $attrib['id'], + $title, + $value); + } + + $out .= "\n</table>$form_end"; + + return $out; + } + + +// similar function as in /steps/settings/edit_identity.inc +function get_form_tags($attrib) + { + global $CONTACT_RECORD, $OUTPUT, $JS_OBJECT_NAME, $EDIT_FORM, $SESS_HIDDEN_FIELD; + + $form_start = ''; + if (!strlen($EDIT_FORM)) + { + $hiddenfields = new hiddenfield(array('name' => '_task', 'value' => $GLOBALS['_task'])); + $hiddenfields->add(array('name' => '_action', 'value' => 'save')); + + if ($_GET['_framed'] || $_POST['_framed']) + $hiddenfields->add(array('name' => '_framed', 'value' => 1)); + + if ($CONTACT_RECORD['contact_id']) + $hiddenfields->add(array('name' => '_cid', 'value' => $CONTACT_RECORD['contact_id'])); + + $form_start = !strlen($attrib['form']) ? '<form name="form" action="./" method="post">' : ''; + $form_start .= "\n$SESS_HIDDEN_FIELD\n"; + $form_start .= $hiddenfields->show(); + } + + $form_end = (strlen($EDIT_FORM) && !strlen($attrib['form'])) ? '</form>' : ''; + $form_name = strlen($attrib['form']) ? $attrib['form'] : 'form'; + + if (!strlen($EDIT_FORM)) + $OUTPUT->add_script("$JS_OBJECT_NAME.gui_object('editform', '$form_name');"); + + $EDIT_FORM = $form_name; + + return array($form_start, $form_end); + } + + + +if (!$CONTACT_RECORD && template_exists('addcontact')) + parse_template('addcontact'); + +// this will be executed if no template for addcontact exists +parse_template('editcontact'); +?>
\ No newline at end of file |