Another big chunk of changes to options pages.
[squirrelmail.git] / src / options_identities.php
CommitLineData
aaf9abef 1<?php
2 /**
3 ** options_identities.php
4 **
5 ** $Id$
6 **/
7
ff8a98e7 8 require_once('../src/validate.php');
9 require_once('../functions/display_messages.php');
aaf9abef 10
11 if (isset($return)) {
12 SaveUpdateFunction();
13 header('Location: options_personal.php');
14 exit();
15 }
16
17 displayPageHeader($color, 'None');
18
0f101579 19 $Info = do_hook('options_identities_process', 0);
20 if ($Info[1])
21 SaveUpdateFunction();
22
aaf9abef 23 if (CheckAndDoDefault() || CheckAndDoPromote()) {
24 SaveUpdateFunction();
25 }
d20f2df6 26 if (isset($update) || CheckForDelete())
aaf9abef 27 SaveUpdateFunction();
28
29 LoadInfo($full_name, $email_address, $reply_to, '');
30
31?>
32<br>
33<table width=95% align=center border=0 cellpadding=2 cellspacing=0>
e7db48af 34<tr><td bgcolor="<?php echo $color[0] ?>" align="center">
35
36 <b><?php echo _("Options") . ' - ' . _("Advanced Identities"); ?></b>
37
38 <table width="100%" border="0" cellpadding="1" cellspacing="1">
39 <tr><td bgcolor="<?php echo $color[4] ?>" align="center">
aaf9abef 40
e7db48af 41<form name=f action="options_identities.php" method=post><br>
8d4949e4 42
0f101579 43<?PHP do_hook('options_identities_top'); ?>
44
e7db48af 45<table width=80% cellpadding=2 cellspacing=0 border=0>
aaf9abef 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</form>
e7db48af 76
77 </td></tr>
78 </table>
79
80</td></tr>
81</table>
aaf9abef 82</body></html>
e7db48af 83
aaf9abef 84<?PHP
85
86function SaveUpdateFunction()
87{
88 global $username, $data_dir, $full_name, $email_address, $reply_to;
89
90 $i = 1;
91 $fakeI = 1;
92 $name = 'form_for_' . $i;
93 global $$name;
94 while (isset($$name))
95 {
96 $name = 'delete_' . $i;
97 global $$name;
98 if (isset($$name)) {
99 $fakeI --;
100 } else {
0f101579 101 do_hook('options_identities_renumber', $i, $fakeI);
aaf9abef 102 $filled = 0;
103
104 $name = 'full_name' . $i;
105 global $$name;
106 if ($$name != '')
107 $filled ++;
108 setPref($data_dir, $username, 'full_name' . $fakeI, $$name);
109
110 $name = 'email_address' . $i;
111 global $$name;
112 if ($$name != '')
113 $filled ++;
114 setPref($data_dir, $username, 'email_address' . $fakeI, $$name);
115
116 $name = 'reply_to' . $i;
117 global $$name;
118 if ($$name != '')
119 $filled ++;
120 setPref($data_dir, $username, 'reply_to' . $fakeI, $$name);
121
122 if ($filled == 0)
123 $fakeI --;
124 }
125
126 $fakeI ++;
127 $i ++;
128 $name = 'form_for_' . $i;
129 global $$name;
130 }
131
132 setPref($data_dir, $username, 'identities', $fakeI);
133
134 while ($fakeI != $i)
135 {
136 removePref($data_dir, $username, 'full_name' . $fakeI);
137 removePref($data_dir, $username, 'email_address' . $fakeI);
138 removePref($data_dir, $username, 'reply_to' . $fakeI);
139 $fakeI ++;
140 }
141
142 setPref($data_dir, $username, 'full_name', $full_name);
143 setPref($data_dir, $username, 'email_address', $email_address);
144 setPref($data_dir, $username, 'reply_to', $reply_to);
145}
146
147function CheckAndDoDefault()
148{
149 global $username, $data_dir, $full_name, $email_address, $reply_to;
150
151 $i = 1;
152 $name = 'form_for_' . $i;
153 global $$name;
154 while (isset($$name))
155 {
156 $name = 'make_default_' . $i;
157 global $$name;
158 if (isset($$name)) {
0f101579 159 do_hook('options_identities_renumber', $i, 'default');
aaf9abef 160 global $full_name, $email_address, $reply_to;
161
8d4949e4 162 $name = 'full_name' . $i;
163 global $$name;
164 $temp = $full_name;
165 $full_name = $$name;
166 $$name = $temp;
167
168 $name = 'email_address' . $i;
169 global $$name;
170 $temp = $email_address;
171 $email_address = $$name;
172 $$name = $temp;
173
174 $name = 'reply_to' . $i;
175 global $$name;
176 $temp = $reply_to;
177 $reply_to = $$name;
178 $$name = $temp;
179
180 return true;
aaf9abef 181 }
182
183 $i ++;
184 $name = 'form_for_' . $i;
185 global $$name;
186 }
187 return false;
188}
189
d20f2df6 190function CheckForDelete()
191{
192 global $username, $data_dir, $full_name, $email_address, $reply_to;
193
194 $i = 1;
195 $name = 'form_for_' . $i;
196 global $$name;
197 while (isset($$name))
198 {
199 $name = 'delete_' . $i;
200 global $$name;
201 if (isset($$name)) {
202 return true;
203 }
204
205 $i ++;
206 $name = 'form_for_' . $i;
207 global $$name;
208 }
209 return false;
210}
211
aaf9abef 212function CheckAndDoPromote()
213{
214 global $username, $data_dir, $full_name, $email_address, $reply_to;
215
216 $i = 1;
217 $name = 'form_for_' . $i;
218 global $$name;
219 while (isset($$name))
220 {
221 $name = 'promote_' . $i;
222 global $$name;
223 if (isset($$name) && $i > 1) {
0f101579 224 do_hook('options_identities_renumber', $i, $i - 1);
225
aaf9abef 226 $nameA = 'full_name' . $i;
227 $nameB = 'full_name' . ($i - 1);
228 global $$nameA, $$nameB;
229 $temp = $$nameA;
230 $$nameA = $$nameB;
231 $$nameB = $temp;
232
233 $nameA = 'email_address' . $i;
234 $nameB = 'email_address' . ($i - 1);
235 global $$nameA, $$nameB;
236 $temp = $$nameA;
237 $$nameA = $$nameB;
238 $$nameB = $temp;
239
0f101579 240 $nameA = 'reply_to' . $i;
241 $nameB = 'reply_to' . ($i - 1);
aaf9abef 242 global $$nameA, $$nameB;
243 $temp = $$nameA;
244 $$nameA = $$nameB;
245 $$nameB = $temp;
246
247 return true;
248 }
249
250 $i ++;
251 $name = 'form_for_' . $i;
252 global $$name;
253 }
254 return false;
255}
256
257function LoadInfo(&$n, &$e, &$r, $post)
258{
259 global $username, $data_dir;
260
261 $n = getPref($data_dir, $username, 'full_name' . $post);
262 $e = getPref($data_dir, $username, 'email_address' . $post);
263 $r = getPref($data_dir, $username, 'reply_to' . $post);
264
265 if ($n != '' || $e != '' || $r != '')
266 return true;
267}
268
269function ShowTableInfo($full_name, $email_address, $reply_to, $post)
270{
271 global $color;
272
8d4949e4 273 $OtherBG = ' bgcolor="' . $color[0] . '"';
274 if ($full_name == '' && $email_address == '' && $reply_to == '')
275 $OtherBG = '';
aaf9abef 276
277 if ($full_name == '' && $email_address == '' && $reply_to == '')
278 $isEmptySection = true;
279 else
280 $isEmptySection = false;
281
282?>
283 <tr<?PHP echo $OtherBG ?>>
284 <td align=right nowrap>
285 <?php echo _("Full Name"); ?>:
286 </td>
287 <td>
288 <input size=50 type=text value="<?php echo htmlspecialchars($full_name)
289 ?>" name="full_name<?PHP echo $post ?>">
290 </td>
291 </tr>
292 <tr<?PHP echo $OtherBG ?>>
293 <td align=right nowrap>
294 <?php echo _("E-Mail Address"); ?>:
295 </td>
296 <td>
297 <input size=50 type=text value="<?php echo htmlspecialchars($email_address)
298 ?>" name="email_address<?PHP echo $post ?>">
299 </td>
300 </tr>
301 <tr<?PHP echo $OtherBG ?>>
302 <td align=right nowrap>
303 <?php echo _("Reply To"); ?>:
304 </td>
305 <td>
306 <input size=50 type=text value="<?php echo htmlspecialchars($reply_to)
307 ?>" name="reply_to<?PHP echo $post ?>">
308 </td>
309 </tr>
0f101579 310<?PHP do_hook('options_identities_table', $OtherBG, $isEmptySection, $post); ?>
8d4949e4 311 <tr<?PHP echo $OtherBG ?>>
312 <td>&nbsp;</td><td>
aaf9abef 313 <input type=hidden name="form_for_<?PHP echo $post ?>" value="1">
5e217f08 314 <input type=submit name="update" value="<?PHP
315 echo _("Save / Update") . '">';
aaf9abef 316 if (! $isEmptySection && $post != '') {
317?>
318 <input type=submit name="make_default_<?PHP echo $post ?>" value="<?PHP
319 echo _("Make Default") ?>">
8d4949e4 320 <input type=submit name="delete_<?PHP echo $post ?>" value="<?PHP echo _("Delete") ?>">
aaf9abef 321<?PHP
322 }
323 if (! $isEmptySection && $post != '' && $post > 1) {
324?>
325 <input type=submit name="promote_<?PHP echo $post ?>" value="<?PHP
326 echo _("Move Up") ?>">
327<?PHP
328 }
0f101579 329 do_hook('options_identities_buttons', $isEmptySection, $post);
aaf9abef 330?>
331 </td>
332 </tr>
8d4949e4 333 <tr>
334 <td colspan="2">&nbsp;</td>
335 </tr>
aaf9abef 336<?PHP
337}
ff8a98e7 338?>