phpDocumentor updates
[squirrelmail.git] / src / options_order.php
CommitLineData
221ca7bf 1<?php
895905c0 2
35586184 3/**
4 * options_order.php
5 *
1c159927 6 * Displays messagelist column order options
35586184 7 *
4b4abf93 8 * @copyright &copy; 1999-2005 The SquirrelMail Project Team
9 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
30967a1e 10 * @version $Id$
8f6f9ba5 11 * @package squirrelmail
ca479ad1 12 * @subpackage prefs
35586184 13 */
14
30967a1e 15/**
16 * Path for SquirrelMail required files.
17 * @ignore
18 */
86725763 19define('SM_PATH','../');
20
21/* SquirrelMail required files. */
08185f2a 22require_once(SM_PATH . 'include/validate.php');
ca479ad1 23include_once(SM_PATH . 'functions/global.php');
24include_once(SM_PATH . 'functions/display_messages.php');
25include_once(SM_PATH . 'functions/imap.php');
26include_once(SM_PATH . 'functions/plugin.php');
27include_once(SM_PATH . 'functions/html.php');
28include_once(SM_PATH . 'functions/forms.php');
29include_once(SM_PATH . 'functions/arrays.php');
0883f15d 30//require_once(SM_PATH . 'functions/options.php');
221ca7bf 31
fe369c70 32/* get globals */
91c27aee 33if (sqgetGlobalVar('num', $num, SQ_GET)) {
34 $num = (int) $num;
35} else {
36 $num = false;
37}
38if (!sqgetGlobalVar('method', $method)) {
39 $method = '';
40} else {
41 $method = htmlspecialchars($method);
42}
43if (!sqgetGlobalVar('positions', $pos, SQ_GET)) {
44 $pos = 0;
45} else {
46 $pos = (int) $pos;
47}
48
49if (!sqgetGlobalVar('account', $account, SQ_GET)) {
50 $iAccount = 0;
51} else {
52 $iAccount = (int) $account;
53}
54
55if (sqgetGlobalVar('mailbox', $mailbox, SQ_GET)) {
56 $aMailboxPrefs = unserialize(getPref($data_dir, $username, "pref_".$iAccount.'_'.urldecode($mailbox)));
57 if (isset($aMailboxPrefs[MBX_PREF_COLUMNS])) {
58 $index_order = $aMailboxPrefs[MBX_PREF_COLUMNS];
59 }
60} else {
61 $index_order_ser = getPref($data_dir, $username, 'index_order');
62 if ($index_order_ser) {
63 $index_order=unserialize($index_order_ser);
64 }
65}
66if (!isset($index_order)) {
67 if (isset($internal_date_sort) && $internal_date_sort == false) {
68 $index_order = array(SQM_COL_CHECK,SQM_COL_FROM,SQM_COL_DATE,SQM_COL_FLAGS,SQM_COL_ATTACHMENT,SQM_COL_PRIO,SQM_COL_SUBJ);
69 } else {
70 $index_order = array(SQM_COL_CHECK,SQM_COL_FROM,SQM_COL_INT_DATE,SQM_COL_FLAGS,SQM_COL_ATTACHMENT,SQM_COL_PRIO,SQM_COL_SUBJ);
1043bfcb 71 }
91c27aee 72}
73
74if (!sqgetGlobalVar('account', $account, SQ_GET)) {
75 $account = 0; // future work, multiple imap accounts
76} else {
77 $account = (int) $account;
78}
1e12d1ff 79
fe369c70 80/* end of get globals */
81
91c27aee 82/***************************************************************/
83/* Finally, display whatever page we are supposed to show now. */
84/***************************************************************/
85
86displayPageHeader($color, 'None', (isset($optpage_data['xtra']) ? $optpage_data['xtra'] : ''));
87
88
89/**
90 * Change the column order of a mailbox
91 *
92 * @param array $index_order (reference) contains an ordered list with columns
93 * @param string $method action to take, move, add and remove are supported
94 * @param int $num target column
95 * @param int $pos positions to move a column in the index_order array
96 * @return bool $r A change in the ordered list took place.
97 */
98function change_columns_list(&$index_order,$method,$num,$pos=0) {
99 $r = false;
100 switch ($method) {
101 case 'move': $r = sqm_array_move_value($index_order,$num,$pos); break;
1043bfcb 102 case 'add':
0883f15d 103 $index_order[] = (int) $num;
104 $r = true;
91c27aee 105 /**
106 * flush the cache in order to retrieve the new columns
107 */
108 sqsession_unregister('mailbox_cache');
109 break;
110 case 'remove':
111 if(in_array($num, $index_order)) {
112 unset($index_order[array_search($num, $index_order)]);
113 $index_order = array_values($index_order);
114 $r = true;
32f4e318 115 }
91c27aee 116 break;
117 default: break;
32f4e318 118 }
91c27aee 119 return $r;
120}
91e0dccc 121
91c27aee 122/**
123 * Column to string translation array
124 */
125$available[SQM_COL_CHECK] = _("Checkbox");
126$available[SQM_COL_FROM] = _("From");
127$available[SQM_COL_DATE] = _("Date");
128$available[SQM_COL_SUBJ] = _("Subject");
129$available[SQM_COL_FLAGS] = _("Flags");
130$available[SQM_COL_SIZE] = _("Size");
131$available[SQM_COL_PRIO] = _("Priority");
132$available[SQM_COL_ATTACHMENT] = _("Attachments");
133$available[SQM_COL_INT_DATE] = _("Received");
134$available[SQM_COL_TO] = _("To");
135$available[SQM_COL_CC] = _("Cc");
9bc67baa 136$available[SQM_COL_BCC] = _("Bcc");
91c27aee 137
138if (change_columns_list($index_order,$method,$num,$pos)) {
32f4e318 139 if ($method) {
91c27aee 140 // TODO, bound index_order to mailbox and make a difference between the global index_order and mailbox bounded index_order
141 setPref($data_dir, $username, 'index_order', serialize($index_order));
32f4e318 142 }
91c27aee 143}
144
145
146$opts = array();
147if (count($index_order) != count($available)) {
148 for ($i=0; $i < count($available); $i++) {
149 if (!in_array($i,$index_order)) {
150 $opts[$i] = $available[$i];
151 }
32f4e318 152 }
91c27aee 153}
154
91e0dccc 155
134e4174 156
91c27aee 157viewOrderForm($available, $index_order,$opts,urldecode($mailbox));
158
159
91c27aee 160// FOOD for html designers
161function viewOrderForm($aColumns, $aOrder, $aOpts, $mailbox) {
162 global $color;
163?>
164
165 <table align="center" width="95%" border="0" cellpadding="1" cellspacing="0">
166 <tr>
167 <td align="center" bgcolor="<?php echo $color[0];?>">
168 <b> <?php echo _("Options");?> - <?php echo _("Index Order");?> </b>
169 <table width="100%" border="0" cellpadding="8" cellspacing="0">
170 <tr>
171 <td align="center" bgcolor="<?php echo $color[4];?>">
172 <table width="65%" border="0" cellpadding="0" cellspacing="0">
173 <tr>
174 <td>
175 <?php echo _("The index order is the order that the columns are arranged in the message index. You can add, remove, and move columns around to customize them to fit your needs.");?>
176 </td>
177 </tr>
178 </table>
179 <br>
180
181<?php if (count($aOrder)) { ?>
182 <table cellspacing="0" cellpadding="0" border="0">
183<?php foreach($aOrder as $i => $iCol) {
184 $sQuery = "&amp;num=$iCol";
185 if (isset($mailbox) && $mailbox) {
186 $sQuery .= '&amp;mailbox='.urlencode($mailbox);
187 }
188
189?>
190 <tr>
191<?php if ($i) { ?>
192 <td><small><a href="options_order.php?method=move&amp;positions=-1&amp;num=<?php echo $sQuery; ?>"> <?php echo _("up");?> </a></small></td>
193<?php } else { ?>
194 <td>&nbsp;</td>
195<?php } // else ?>
196 <td><small>&nbsp;|&nbsp;</small></td>
197<?php if ($i < count($aOrder) -1) { ?>
198 <td><small><a href="options_order.php?method=move&amp;positions=1&amp;num=<?php echo $sQuery; ?>"> <?php echo _("down");?> </a></small></td>
199<?php } else { ?>
200 <td>&nbsp;</td>
201<?php } // else ?>
202 <td><small>&nbsp;|&nbsp;</small></td>
203<?php
204 /* Always show the subject */
0883f15d 205 if ($iCol !== SQM_COL_SUBJ && $iCol !== SQM_COL_FLAGS) {
91c27aee 206?>
207 <td><small><a href="options_order.php?method=remove&amp;num=<?php echo $sQuery; ?>"> <?php echo _("remove");?> </a></small></td>
208<?php } else { ?>
209 <td>&nbsp;</td>
210<?php } // else ?>
211 <td><small>&nbsp;|&nbsp;</small></td>
212 <td><?php echo $aColumns[$iCol]; ?></td>
213 </tr>
214<?php
215 } // foreach
216 } // if
217?>
218 </table>
219
220<?php
221 if (count($aOpts)) {
222 echo addForm('options_order.php', 'get', 'f');
223 echo addSelect('num', $aOpts, '', TRUE);
64c9e87e 224 echo addHidden('method', 'add');
91c27aee 225 if (isset($mailbox) && $mailbox) {
226 echo addHidden('mailbox', urlencode($mailbox));
227 }
134e4174 228 echo addSubmit(_("Add"), 'submit');
32f4e318 229 echo '</form>';
230 }
221ca7bf 231?>
91c27aee 232 <p><a href="../src/options.php"><?php echo _("Return to options page");?></a></p><br>
233 </td></tr>
234 </table>
e7db48af 235 </td></tr>
91c27aee 236 </table>
237</body></html>
e7db48af 238
91c27aee 239<?php
240}
241?>