cleaned up interface
[squirrelmail.git] / src / options_identities.php
1 <?php
2 /**
3 ** options_identities.php
4 **
5 ** $Id$
6 **/
7
8 include('../src/validate.php');
9 include('../functions/page_header.php');
10 include('../functions/display_messages.php');
11 include('../src/load_prefs.php');
12
13 if (isset($return)) {
14 SaveUpdateFunction();
15 header('Location: options_personal.php');
16 exit();
17 }
18
19 displayPageHeader($color, 'None');
20
21 if (CheckAndDoDefault() || CheckAndDoPromote()) {
22 SaveUpdateFunction();
23 }
24 if (isset($update) || isset($delete_0) || isset($delete_1) ||
25 isset($delete_2) || isset($delete_3) || isset($delete_4) ||
26 isset($delete_5) || isset($delete_6) || isset($delete_7) ||
27 isset($delete_8))
28 SaveUpdateFunction();
29
30 LoadInfo($full_name, $email_address, $reply_to, '');
31
32 ?>
33 <br>
34 <table width=95% align=center border=0 cellpadding=2 cellspacing=0>
35 <tr>
36 <th bgcolor="<?php echo $color[0] ?>" align=center>
37 <?php echo _("Options") . " - " . _("Advanced Identities"); ?>
38 </th>
39 </tr>
40 </table>
41
42 <form name=f action="options_identities.php" method=post>
43
44 <center>
45 <table width=80% cellpadding=0 cellspacing=0 border=0>
46 <tr bgcolor="<?PHP echo $color[9] ?>">
47 <th colspan=2 align=center><?PHP echo _("Default Identity") ?></th>
48 </tr>
49 <?PHP
50
51 ShowTableInfo($full_name, $email_address, $reply_to, '');
52
53 $num = 1;
54 while (LoadInfo($full_name, $email_address, $reply_to, $num))
55 {
56 ?>
57 <tr bgcolor="<?PHP echo $color[9] ?>">
58 <th colspan=2 align=center><?PHP printf (_("Alternate Identity %d"),
59 $num) ?></th>
60 </tr>
61 <?PHP
62 ShowTableInfo($full_name, $email_address, $reply_to, $num);
63 $num ++;
64 }
65
66 ?>
67 <tr bgcolor="<?PHP echo $color[9] ?>">
68 <th colspan=2 align=center><?PHP echo _("Add a New Identity") ?></th>
69 </tr>
70 <?
71
72 ShowTableInfo('', '', '', $num);
73 ?>
74 </table>
75 </center>
76 </form>
77 </body></html>
78 <?PHP
79
80 function SaveUpdateFunction()
81 {
82 global $username, $data_dir, $full_name, $email_address, $reply_to;
83
84 $i = 1;
85 $fakeI = 1;
86 $name = 'form_for_' . $i;
87 global $$name;
88 while (isset($$name))
89 {
90 $name = 'delete_' . $i;
91 global $$name;
92 if (isset($$name)) {
93 $fakeI --;
94 } else {
95 $filled = 0;
96
97 $name = 'full_name' . $i;
98 global $$name;
99 if ($$name != '')
100 $filled ++;
101 setPref($data_dir, $username, 'full_name' . $fakeI, $$name);
102
103 $name = 'email_address' . $i;
104 global $$name;
105 if ($$name != '')
106 $filled ++;
107 setPref($data_dir, $username, 'email_address' . $fakeI, $$name);
108
109 $name = 'reply_to' . $i;
110 global $$name;
111 if ($$name != '')
112 $filled ++;
113 setPref($data_dir, $username, 'reply_to' . $fakeI, $$name);
114
115 if ($filled == 0)
116 $fakeI --;
117 }
118
119 $fakeI ++;
120 $i ++;
121 $name = 'form_for_' . $i;
122 global $$name;
123 }
124
125 setPref($data_dir, $username, 'identities', $fakeI);
126
127 while ($fakeI != $i)
128 {
129 removePref($data_dir, $username, 'full_name' . $fakeI);
130 removePref($data_dir, $username, 'email_address' . $fakeI);
131 removePref($data_dir, $username, 'reply_to' . $fakeI);
132 $fakeI ++;
133 }
134
135 setPref($data_dir, $username, 'full_name', $full_name);
136 setPref($data_dir, $username, 'email_address', $email_address);
137 setPref($data_dir, $username, 'reply_to', $reply_to);
138 }
139
140 function CheckAndDoDefault()
141 {
142 global $username, $data_dir, $full_name, $email_address, $reply_to;
143
144 $i = 1;
145 $name = 'form_for_' . $i;
146 global $$name;
147 while (isset($$name))
148 {
149 $name = 'make_default_' . $i;
150 global $$name;
151 if (isset($$name)) {
152 global $full_name, $email_address, $reply_to;
153
154 $name = 'full_name' . $i;
155 global $$name;
156 $temp = $full_name;
157 $full_name = $$name;
158 $$name = $temp;
159
160 $name = 'email_address' . $i;
161 global $$name;
162 $temp = $email_address;
163 $email_address = $$name;
164 $$name = $temp;
165
166 $name = 'reply_to' . $i;
167 global $$name;
168 $temp = $reply_to;
169 $reply_to = $$name;
170 $$name = $temp;
171
172 return true;
173 }
174
175 $i ++;
176 $name = 'form_for_' . $i;
177 global $$name;
178 }
179 return false;
180 }
181
182 function CheckAndDoPromote()
183 {
184 global $username, $data_dir, $full_name, $email_address, $reply_to;
185
186 $i = 1;
187 $name = 'form_for_' . $i;
188 global $$name;
189 while (isset($$name))
190 {
191 $name = 'promote_' . $i;
192 global $$name;
193 if (isset($$name) && $i > 1) {
194 $nameA = 'full_name' . $i;
195 $nameB = 'full_name' . ($i - 1);
196 global $$nameA, $$nameB;
197 $temp = $$nameA;
198 $$nameA = $$nameB;
199 $$nameB = $temp;
200
201 $nameA = 'email_address' . $i;
202 $nameB = 'email_address' . ($i - 1);
203 global $$nameA, $$nameB;
204 $temp = $$nameA;
205 $$nameA = $$nameB;
206 $$nameB = $temp;
207
208 $nameA = 'email_address' . $i;
209 $nameB = 'email_address' . ($i - 1);
210 global $$nameA, $$nameB;
211 $temp = $$nameA;
212 $$nameA = $$nameB;
213 $$nameB = $temp;
214
215 return true;
216 }
217
218 $i ++;
219 $name = 'form_for_' . $i;
220 global $$name;
221 }
222 return false;
223 }
224
225 function LoadInfo(&$n, &$e, &$r, $post)
226 {
227 global $username, $data_dir;
228
229 $n = getPref($data_dir, $username, 'full_name' . $post);
230 $e = getPref($data_dir, $username, 'email_address' . $post);
231 $r = getPref($data_dir, $username, 'reply_to' . $post);
232
233 if ($n != '' || $e != '' || $r != '')
234 return true;
235 }
236
237 function ShowTableInfo($full_name, $email_address, $reply_to, $post)
238 {
239 global $color;
240
241 $OtherBG = ' bgcolor="' . $color[0] . '"';
242 if ($full_name == '' && $email_address == '' && $reply_to == '')
243 $OtherBG = '';
244
245 if ($full_name == '' && $email_address == '' && $reply_to == '')
246 $isEmptySection = true;
247 else
248 $isEmptySection = false;
249
250 ?>
251 <tr<?PHP echo $OtherBG ?>>
252 <td align=right nowrap>
253 <?php echo _("Full Name"); ?>:
254 </td>
255 <td>
256 <input size=50 type=text value="<?php echo htmlspecialchars($full_name)
257 ?>" name="full_name<?PHP echo $post ?>">
258 </td>
259 </tr>
260 <tr<?PHP echo $OtherBG ?>>
261 <td align=right nowrap>
262 <?php echo _("E-Mail Address"); ?>:
263 </td>
264 <td>
265 <input size=50 type=text value="<?php echo htmlspecialchars($email_address)
266 ?>" name="email_address<?PHP echo $post ?>">
267 </td>
268 </tr>
269 <tr<?PHP echo $OtherBG ?>>
270 <td align=right nowrap>
271 <?php echo _("Reply To"); ?>:
272 </td>
273 <td>
274 <input size=50 type=text value="<?php echo htmlspecialchars($reply_to)
275 ?>" name="reply_to<?PHP echo $post ?>">
276 </td>
277 </tr>
278 <tr<?PHP echo $OtherBG ?>>
279 <td>&nbsp;</td><td>
280 <input type=hidden name="form_for_<?PHP echo $post ?>" value="1">
281 <input type=submit name="update" value="<?PHP echo _("Save / Update") ?>">
282 <?PHP
283 if (! $isEmptySection && $post != '') {
284 ?>
285 <input type=submit name="make_default_<?PHP echo $post ?>" value="<?PHP
286 echo _("Make Default") ?>">
287 <input type=submit name="delete_<?PHP echo $post ?>" value="<?PHP echo _("Delete") ?>">
288 <?PHP
289 }
290 if (! $isEmptySection && $post != '' && $post > 1) {
291 ?>
292 <input type=submit name="promote_<?PHP echo $post ?>" value="<?PHP
293 echo _("Move Up") ?>">
294 <?PHP
295 }
296 ?>
297 </td>
298 </tr>
299 <tr>
300 <td colspan="2">&nbsp;</td>
301 </tr>
302 <?PHP
303 }