8c1eb33b72fffa06c4ffaf206a2a2da9c6f23459
6 * Displays messagelist column order options
8 * @copyright © 1999-2005 The SquirrelMail Project Team
9 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
11 * @package squirrelmail
16 * Path for SquirrelMail required files.
19 define('SM_PATH','../');
21 /* SquirrelMail required files. */
22 require_once(SM_PATH
. 'include/validate.php');
23 include_once(SM_PATH
. 'functions/global.php');
24 include_once(SM_PATH
. 'functions/display_messages.php');
25 include_once(SM_PATH
. 'functions/imap.php');
26 include_once(SM_PATH
. 'functions/plugin.php');
27 include_once(SM_PATH
. 'functions/html.php');
28 include_once(SM_PATH
. 'functions/forms.php');
29 include_once(SM_PATH
. 'functions/arrays.php');
30 //require_once(SM_PATH . 'functions/options.php');
33 if (sqgetGlobalVar('num', $num, SQ_GET
)) {
38 if (!sqgetGlobalVar('method', $method)) {
41 $method = htmlspecialchars($method);
43 if (!sqgetGlobalVar('positions', $pos, SQ_GET
)) {
49 if (!sqgetGlobalVar('account', $account, SQ_GET
)) {
52 $iAccount = (int) $account;
55 if (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
];
61 $index_order_ser = getPref($data_dir, $username, 'index_order');
62 if ($index_order_ser) {
63 $index_order=unserialize($index_order_ser);
66 if (!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
);
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
);
74 if (!sqgetGlobalVar('account', $account, SQ_GET
)) {
75 $account = 0; // future work, multiple imap accounts
77 $account = (int) $account;
80 /* end of get globals */
82 /***************************************************************/
83 /* Finally, display whatever page we are supposed to show now. */
84 /***************************************************************/
86 displayPageHeader($color, 'None', (isset($optpage_data['xtra']) ?
$optpage_data['xtra'] : ''));
90 * Change the column order of a mailbox
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.
98 function change_columns_list(&$index_order,$method,$num,$pos=0) {
101 case 'move': $r = sqm_array_move_value($index_order,$num,$pos); break;
103 $index_order[] = (int) $num;
106 * flush the cache in order to retrieve the new columns
108 sqsession_unregister('mailbox_cache');
111 if(in_array($num, $index_order)) {
112 unset($index_order[array_search($num, $index_order)]);
113 $index_order = array_values($index_order);
123 * Column to string translation array
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");
136 $available[SQM_COL_BCC
] = _("Bcc");
138 if (change_columns_list($index_order,$method,$num,$pos)) {
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));
147 if (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];
157 viewOrderForm($available, $index_order,$opts,urldecode($mailbox));
160 // FOOD for html designers
161 function viewOrderForm($aColumns, $aOrder, $aOpts, $mailbox) {
165 <table align
="center" width
="95%" border
="0" cellpadding
="1" cellspacing
="0">
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">
171 <td align
="center" bgcolor
="<?php echo $color[4];?>">
172 <table width
="65%" border
="0" cellpadding
="0" cellspacing
="0">
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.");?
>
181 <?php
if (count($aOrder)) { ?
>
182 <table cellspacing
="0" cellpadding
="0" border
="0">
183 <?php
foreach($aOrder as $i => $iCol) {
184 $sQuery = "&num=$iCol";
185 if (isset($mailbox) && $mailbox) {
186 $sQuery .= '&mailbox='.urlencode($mailbox);
192 <td
><small
><a href
="options_order.php?method=move&positions=-1&num=<?php echo $sQuery; ?>"> <?php
echo _("up");?
> </a
></small
></td
>
196 <td
><small
> 
;|
 
;</small
></td
>
197 <?php
if ($i < count($aOrder) -1) { ?
>
198 <td
><small
><a href
="options_order.php?method=move&positions=1&num=<?php echo $sQuery; ?>"> <?php
echo _("down");?
> </a
></small
></td
>
202 <td
><small
> 
;|
 
;</small
></td
>
204 /* Always show the subject */
205 if ($iCol !== SQM_COL_SUBJ
&& $iCol !== SQM_COL_FLAGS
) {
207 <td
><small
><a href
="options_order.php?method=remove&num=<?php echo $sQuery; ?>"> <?php
echo _("remove");?
> </a
></small
></td
>
211 <td
><small
> 
;|
 
;</small
></td
>
212 <td
><?php
echo $aColumns[$iCol]; ?
></td
>
222 echo addForm('options_order.php', 'get', 'f');
223 echo addSelect('num', $aOpts, '', TRUE);
224 echo addHidden('method', 'add');
225 if (isset($mailbox) && $mailbox) {
226 echo addHidden('mailbox', urlencode($mailbox));
228 echo addSubmit(_("Add"), 'submit');
232 <p
><a href
="../src/options.php"><?php
echo _("Return to options page");?
></a
></p
><br
>