|
From: Paul L. <pdo...@us...> - 2006-12-31 23:48:14
|
Update of /cvsroot/squirrelmail/squirrelmail/functions In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv1455/functions Modified Files: mailbox_display.php Log Message: Refactor message list template, move hooks out of template, add hook for plugin access to message list controls, change message list control array to use associative (string) array keys for easier groking Index: mailbox_display.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/mailbox_display.php,v retrieving revision 1.466 retrieving revision 1.467 diff -u -w -r1.466 -r1.467 --- mailbox_display.php 10 Dec 2006 05:07:53 -0000 1.466 +++ mailbox_display.php 31 Dec 2006 23:48:11 -0000 1.467 @@ -1089,23 +1089,30 @@ case 'undeleteButton': case 'expungeButton': case 'forward': - $aFormElements[$k] = array($aButtonStrings[$k],'submit'); + $aFormElements[$k] + = array('value' => $aButtonStrings[$k], 'type' => 'submit'); break; case 'bypass_trash': - $aFormElements[$k] = array($aButtonStrings[$k],'checkbox'); + $aFormElements[$k] + = array('value' => $aButtonStrings[$k], 'type' => 'checkbox'); break; case 'moveButton': case 'copyButton': - $aFormElements['targetMailbox'] = - array(sqimap_mailbox_option_list($imapConnection, array(strtolower($lastTargetMailbox)), 0, $boxes),'select'); - $aFormElements['mailbox'] = array($aMailbox['NAME'],'hidden'); - $aFormElements['startMessage'] = array($aMailbox['PAGEOFFSET'],'hidden'); - $aFormElements[$k] = array($aButtonStrings[$k],'submit'); + $aFormElements['targetMailbox'] + = array('options_list' => sqimap_mailbox_option_list($imapConnection, array(strtolower($lastTargetMailbox)), 0, $boxes), + 'type' => 'select'); + $aFormElements['mailbox'] + = array('value' => $aMailbox['NAME'], 'type' => 'hidden'); + $aFormElements['startMessage'] + = array('value' => $aMailbox['PAGEOFFSET'], 'type' => 'hidden'); + $aFormElements[$k] + = array('value' => $aButtonStrings[$k], 'type' => 'submit'); break; } } - $aFormElements['account'] = array($iAccount,'hidden'); + $aFormElements['account'] = array('value' => $iAccount,'type' => 'hidden'); } + do_hook('message_list_controls', $aFormElements); /* * This is the beginning of the message list table. @@ -1122,6 +1129,7 @@ /* finally set the template vars */ // FIX ME, before we support multiple templates we must review the names of the vars +// BUMP! $aTemplate['color'] = $color; @@ -1154,7 +1162,68 @@ $aTemplate['fancy_index_highlite'] = $fancy_index_highlite; + /** + * Set up sort possibilities; one could argue that this is best + * placed in the template, but most template authors won't understand + * or need to understand it, so some advanced templates can override + * it if they do something different. + */ + if (!($aTemplate['sort'] & SQSORT_THREAD) && $aTemplate['enablesort']) { + $aTemplate['aSortSupported'] + = array(SQM_COL_SUBJ => array(SQSORT_SUBJ_ASC , SQSORT_SUBJ_DESC), + SQM_COL_DATE => array(SQSORT_DATE_DESC , SQSORT_DATE_ASC), + SQM_COL_INT_DATE => array(SQSORT_INT_DATE_DESC, SQSORT_INT_DATE_ASC), + SQM_COL_FROM => array(SQSORT_FROM_ASC , SQSORT_FROM_DESC), + SQM_COL_TO => array(SQSORT_TO_ASC , SQSORT_TO_DESC), + SQM_COL_CC => array(SQSORT_CC_ASC , SQSORT_CC_DESC), + SQM_COL_SIZE => array(SQSORT_SIZE_ASC , SQSORT_SIZE_DESC)); + } else { + $aTemplate['aSortSupported'] = array(); + } + + + /** + * Figure out which columns should serve as labels for checkbox: + * we try to grab the two columns before and after the checkbox, + * except the subject column, since it is the link that opens + * the message view + * + * if $javascript_on is set, then the highlighting code takes + * care of this; just skip it + * + * This code also might be more appropriate in a template file, but + * we are moving this complex stuff out of the way of template + * authors; advanced template sets are always free to override + * the resultant values. + * + */ + $show_label_columns = array(); + $index_order_part = array(); + if (!($aTemplate['javascript_on'] && $aTemplate['fancy_index_highlite'])) { + $get_next_two = 0; + $last_order_part = 0; + $last_last_order_part = 0; + foreach ($aTemplate['aOrder'] as $index_order_part) { + if ($index_order_part == SQM_COL_CHECK) { + $get_next_two = 1; + if ($last_last_order_part != SQM_COL_SUBJ) + $show_label_columns[] = $last_last_order_part; + if ($last_order_part != SQM_COL_SUBJ) + $show_label_columns[] = $last_order_part; + + } else if ($get_next_two > 0 && $get_next_two < 3 && $index_order_part != SQM_COL_SUBJ) { + $show_label_columns[] = $index_order_part; + $get_next_two++; + } + $last_last_order_part = $last_order_part; + $last_order_part = $index_order_part; + } + } + $aTemplate['show_label_columns'] = $show_label_columns; + + return $aTemplate; + } |