svncommit
2005-10-25 d7cb77414c4cf074269b6812c3dd3571ee29afca
commit | author | age
4e17e6 1 <?php
T 2
3 /*
4  +-----------------------------------------------------------------------+
5  | program/steps/addressbook/edit.inc                                    |
6  |                                                                       |
7  | This file is part of the RoundCube Webmail client                     |
8  | Copyright (C) 2005, RoundCube Dev. - Switzerland                      |
30233b 9  | Licensed under the GNU GPL                                            |
4e17e6 10  |                                                                       |
T 11  | PURPOSE:                                                              |
12  |   Show edit form for a contact entry or to add a new one              |
13  |                                                                       |
14  +-----------------------------------------------------------------------+
15  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
16  +-----------------------------------------------------------------------+
17
18  $Id$
19
20 */
21
22
23 if (($_GET['_cid'] || $_POST['_cid']) && $_action=='edit')
24   {
25   $cid = $_POST['_cid'] ? $_POST['_cid'] : $_GET['_cid'];
d7cb77 26   $DB->query("SELECT * FROM ".get_table_name('contacts')."
S 27              WHERE  contact_id=?
28              AND    user_id=?
29              AND    del<>'1'",
30              $cid,
31              $_SESSION['user_id']);
4e17e6 32   
T 33   $CONTACT_RECORD = $DB->fetch_assoc();
34   
35   if (is_array($CONTACT_RECORD))
36     $OUTPUT->add_script(sprintf("%s.set_env('cid', '%s');", $JS_OBJECT_NAME, $CONTACT_RECORD['contact_id']));
37   }
38
39
40
41 function rcmail_contact_editform($attrib)
42   {
43   global $CONTACT_RECORD, $JS_OBJECT_NAME;
44
45   if (!$CONTACT_RECORD && $GLOBALS['_action']!='add')
46     return rcube_label('contactnotfound');
47
48   list($form_start, $form_end) = get_form_tags($attrib);
49   unset($attrib['form']);
50   
51
52   // a specific part is requested
53   if ($attrib['part'])
54     {
55     $out = $form_start;
56     $out .= rcmail_get_edit_field($attrib['part'], $CONTACT_RECORD[$attrib['part']], $attrib); 
57     return $out;
58     }
59
60
61   // return the complete address edit form as table
62   $out = "$form_start<table>\n\n";
63
64   $a_show_cols = array('name', 'firstname', 'surname', 'email');
65   foreach ($a_show_cols as $col)
66     {
67     $attrib['id'] = 'rcmfd_'.$col;
68     $title = rcube_label($col);
69     $value = rcmail_get_edit_field($col, $CONTACT_RECORD[$col], $attrib);
70     $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n",
71                     $attrib['id'],
72                     $title,
73                     $value);
74     }
75
76   $out .= "\n</table>$form_end";
77
78   return $out;  
79   }
80
81
82 // similar function as in /steps/settings/edit_identity.inc
83 function get_form_tags($attrib)
84   {
85   global $CONTACT_RECORD, $OUTPUT, $JS_OBJECT_NAME, $EDIT_FORM, $SESS_HIDDEN_FIELD;  
86
87   $form_start = '';
88   if (!strlen($EDIT_FORM))
89     {
90     $hiddenfields = new hiddenfield(array('name' => '_task', 'value' => $GLOBALS['_task']));
91     $hiddenfields->add(array('name' => '_action', 'value' => 'save'));
92     
93     if ($_GET['_framed'] || $_POST['_framed'])
94       $hiddenfields->add(array('name' => '_framed', 'value' => 1));
95     
96     if ($CONTACT_RECORD['contact_id'])
97       $hiddenfields->add(array('name' => '_cid', 'value' => $CONTACT_RECORD['contact_id']));
98     
99     $form_start = !strlen($attrib['form']) ? '<form name="form" action="./" method="post">' : '';
100     $form_start .= "\n$SESS_HIDDEN_FIELD\n";
101     $form_start .= $hiddenfields->show();
102     }
103     
104   $form_end = (strlen($EDIT_FORM) && !strlen($attrib['form'])) ? '</form>' : '';
105   $form_name = strlen($attrib['form']) ? $attrib['form'] : 'form';
106   
107   if (!strlen($EDIT_FORM))
108     $OUTPUT->add_script("$JS_OBJECT_NAME.gui_object('editform', '$form_name');");
109   
110   $EDIT_FORM = $form_name;
111
112   return array($form_start, $form_end);  
113   }
114
115
116
117 if (!$CONTACT_RECORD && template_exists('addcontact'))
118   parse_template('addcontact');
119
120 // this will be executed if no template for addcontact exists
121 parse_template('editcontact');
122 ?>