Source for file setup.php
Documentation is available at setup.php
* deletes or moves currently displayed message and displays
* next or previous message.
* Copyright (c) 1999-2020 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
* $Id: setup.php 14840 2020-01-07 07:42:38Z pdontthink $
* @subpackage delete_move_next
//FIXME: all functionality needs to be moved out of the setup.php file!
global $squirrelmail_plugin_hooks;
$squirrelmail_plugin_hooks['html_top']['delete_move_next'] =
'delete_move_next_action';
$squirrelmail_plugin_hooks['right_main_after_header']['delete_move_next'] =
'delete_move_next_action';
$squirrelmail_plugin_hooks['read_body_bottom']['delete_move_next'] =
'delete_move_next_read_b';
$squirrelmail_plugin_hooks['read_body_menu_bottom']['delete_move_next'] =
'delete_move_next_read_t';
// Show options on display preferences page
$squirrelmail_plugin_hooks['optpage_loadhook_display']['delete_move_next']
=
'delete_move_next_display_options';
// $squirrelmail_plugin_hooks['options_display_inside']['delete_move_next'] = 'delete_move_next_display_inside';
// $squirrelmail_plugin_hooks['options_display_save']['delete_move_next'] = 'delete_move_next_display_save';
$squirrelmail_plugin_hooks['loading_prefs']['delete_move_next'] =
'delete_move_next_loading_prefs';
/* fixes the sort_array for the prev_del/next_del links when
* using server side sorting or thread sorting
global $username, $data_dir, $allow_server_sort, $allow_thread_sort,
$mailbox, $imapConnection, $sort, $uid_support, $mbx_response;
// Got to grab this out of prefs, since it isn't saved from mailbox_view.php
if ($allow_thread_sort) {
$thread_sort_messages =
getPref($data_dir, $username, "thread_$mailbox",0);
case ($allow_thread_sort &&
$thread_sort_messages):
case ($allow_server_sort):
* Warning: this function relies on the internal representation of
* of the message cache for the current mailbox. As such, it is fragile
* because the underlying implementation can change. I will present it
* to the squirrelmail maintainers as a proposed addition to the API,
* perhaps even as inline code to sqimap_mailbox_expunge(). In the
for ($i =
0; $i <
count($keys); $i++
) {
echo
'<p>key ' .
$keys[$i] .
' msgid ' .
$msgs[$keys[$i]]['ID'] .
'</p>';
global $msgs, $msort, $sort, $imapConnection,
$mailbox, $uid_support, $server_sort_array;
if (is_array($server_sort_array) &&
!empty($server_sort_array)) {
foreach ($server_sort_array as $k =>
$v) {
if(isset
($msort) &&
count($msort) >
0) {
for ($i =
0; $i <
count($msort); $i++
) {
if ($msgs[$i]['ID'] ==
$id) {
} elseif ($msgs[$i]['ID'] >
$id) {
global $delete_move_next_t;
global $delete_move_next_b;
global $delete_move_next_formATtop, $delete_move_next_formATbottom,
$color, $where, $what, $currentArrayIndex, $passed_id,
$mailbox, $sort, $startMessage, $delete_id, $move_id, $base_uri,
$imapConnection, $auto_expunge, $move_to_trash, $mbx_response,
$uid_support, $passed_ent_id, $delete_move_next_show_unread,
$delete_move_next_return_to_message_list;
if (!isset
($passed_ent_id)) $passed_ent_id =
0;
if (!(($where &&
$what) ||
($currentArrayIndex == -
1)) &&
!$passed_ent_id) {
if (!$uid_support &&
($auto_expunge ||
$move_to_trash)) {
if ($prev_if_del >
$passed_id) {
if ($next_if_del >
$passed_id) {
/* Base is illegal within documents
* $location = get_location();
* echo "<base href=\"$location/\">" . */
echo
'<table cellspacing="0" width="100%" border="0" cellpadding="2">'.
"<td bgcolor=\"$color[9]\" width=\"100%\" align=\"center\"><small>";
echo
"<a href=\"" .
$base_uri .
"src/read_body.php?passed_id=$prev_if_del&mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&delete_id=$passed_id&smtoken=" .
sm_generate_security_token() .
"\">" .
_("Delete & Prev") .
"</a>" .
" | ";
if ($delete_move_next_show_unread ==
SMPREF_ON) {
echo
"<a href=\"" .
$base_uri .
"src/read_body.php?passed_id=$prev_if_del&mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&unread_id=$passed_id&smtoken=" .
sm_generate_security_token() .
"\">" .
_("Unread & Prev") .
"</a>" .
" | ";
echo
_("Delete & Prev") .
" | ";
if ($delete_move_next_show_unread ==
SMPREF_ON) {
echo
_("Unread & Prev") .
" | ";
if ($delete_move_next_show_unread ==
SMPREF_ON) {
echo
"<a href=\"" .
$base_uri .
"src/read_body.php?passed_id=$next_if_del&mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&unread_id=$passed_id&smtoken=" .
sm_generate_security_token() .
"\">" .
_("Unread & Next") .
"</a> | ";
echo
"<a href=\"" .
$base_uri .
"src/read_body.php?passed_id=$next_if_del&mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&delete_id=$passed_id&smtoken=" .
sm_generate_security_token() .
"\">" .
_("Delete & Next") .
"</a>";
if ($delete_move_next_show_unread ==
SMPREF_ON) {
echo
_("Unread & Next") .
" | ";
echo
_("Delete & Next");
echo
'</small></td></tr>';
$next_if_del =
$prev_if_del;
if (($delete_move_next_formATtop ==
SMPREF_ON) &&
($currloc ==
'top')) {
if (!$delete_move_next_return_to_message_list
if (($delete_move_next_formATbottom !=
SMPREF_NO) &&
($currloc ==
'bottom')) {
if (!$delete_move_next_return_to_message_list
global $imapConnection, $lastTargetMailbox;
if (isset
($lastTargetMailbox) &&
!empty($lastTargetMailbox)) {
global $color, $where, $what, $currentArrayIndex, $passed_id,
$mailbox, $sort, $startMessage, $delete_id, $move_id,
$imapConnection, $base_uri;
"<td bgcolor=\"$color[9]\" width=\"100%\" align=\"center\">".
"<form style=\"display:inline; margin:0\" action=\"" .
$base_uri .
"src/read_body.php?mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage&passed_id=$next\" method=\"post\"><small>".
"<input type=\"hidden\" name=\"show_more\" value=\"0\">".
"<input type=\"hidden\" name=\"move_id\" value=\"$passed_id\">".
' <select name="targetMailbox">';
'<input type="submit" id="moveBtn" value="' .
_("Move") .
'">'.
global $color, $where, $what, $currentArrayIndex, $passed_id,
$mailbox, $sort, $startMessage, $delete_id, $move_id,
$imapConnection, $base_uri;
"<td bgcolor=\"$color[9]\" width=\"100%\" align=\"center\">".
"<form style=\"display:inline; margin:0\" action=\"" .
$base_uri .
"src/right_main.php?mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage\" method=\"post\"><small>" .
"<input type=\"hidden\" name=\"move_id\" value=\"$passed_id\">".
' <select name="targetMailbox">';
'<input type=submit id="moveBtn" value="' .
_("Move") .
'">'.
// first, validate security token
global $imapConnection, $auto_expunge;
// first, validate security token
// sqimap_mailbox_expunge($imapConnection, $mailbox, true);
global $imapConnection, $mailbox, $auto_expunge, $lastTargetMailbox;
// first, validate security token
// sqimap_mailbox_expunge($imapConnection, $mailbox, true);
if ($targetMailbox !=
$lastTargetMailbox) {
$lastTargetMailbox =
$targetMailbox;
* Show options on display preferences page
global $optpage_data, $do_not_convert_delete_move_next_legacy_preferences;
// convert legacy on/off values to standardized values
// IF YOUR INSTALLATION IS NEW, OR ALL USER PREFS HAVE BEEN CONVERTED
// FROM "on"/"off" to 0/1 THEN YOU CAN ADD THE FOLLOWING TO SQUIRRELMAIL'S
// config/config_local.php TO AVOID CONVERTING LEGACY VALUES OVER AND OVER:
// $do_not_convert_delete_move_next_legacy_preferences = TRUE;
// unfortunately, SquirrelMail's prefs storage does a lazy == comparison to the prefs cache,
// which means saving a pref as zero will appear equal to "on" (or "off", but that's irrelevant)
// so the only way to upgrade these prefs is to save any that are already "on" as 1 (so that
// subsequent requests to turn off prefs will actually work)
if (!@include_once(SM_PATH .
'plugins/delete_move_next/config.php'))
@include_once(SM_PATH .
'plugins/delete_move_next/config_default.php');
if (!$do_not_convert_delete_move_next_legacy_preferences)
global $data_dir, $username, $delete_move_next_t,
$delete_move_next_formATtop, $delete_move_next_b,
$delete_move_next_formATbottom, $delete_move_next_show_unread;
if ($delete_move_next_formATtop ==
SMPREF_ON)
if ($delete_move_next_formATbottom ==
SMPREF_ON)
if ($delete_move_next_show_unread ==
SMPREF_ON)
// $optpage_data['vals'][2] is the "Message Display" section
$optpage_data['vals'][2][] =
array(
'name' =>
'delete_move_next_t',
'caption' =>
_("Display Delete/Move/Next Controls At Top"),
$optpage_data['vals'][2][] =
array(
'name' =>
'delete_move_next_formATtop',
'caption' =>
_("Include Move Control At Top"),
$optpage_data['vals'][2][] =
array(
'name' =>
'delete_move_next_b',
'caption' =>
_("Display Delete/Move/Next Controls At Bottom"),
$optpage_data['vals'][2][] =
array(
'name' =>
'delete_move_next_formATbottom',
'caption' =>
_("Include Move Control At Bottom"),
$optpage_data['vals'][2][] =
array(
'name' =>
'delete_move_next_show_unread',
'caption' =>
_("Show Unread & Previous/Next Options"),
$optpage_data['vals'][2][] =
array(
'name' =>
'delete_move_next_return_to_message_list',
'caption' =>
_("Return To Message List After Move"),
global $username,$data_dir, $delete_move_next_show_unread,
$delete_move_next_t, $delete_move_next_formATtop,
$delete_move_next_b, $delete_move_next_formATbottom,
$delete_move_next_return_to_message_list,
$do_not_convert_delete_move_next_legacy_preferences;
$delete_move_next_t =
getPref($data_dir, $username, 'delete_move_next_t');
$delete_move_next_b =
getPref($data_dir, $username, 'delete_move_next_b');
$delete_move_next_formATtop =
getPref($data_dir, $username, 'delete_move_next_formATtop');
$delete_move_next_formATbottom =
getPref($data_dir, $username, 'delete_move_next_formATbottom');
$delete_move_next_show_unread =
getPref($data_dir, $username, 'delete_move_next_show_unread');
$delete_move_next_return_to_message_list =
getPref($data_dir, $username, 'delete_move_next_return_to_message_list', 1);
// convert legacy on/off values to standardized values
if (!$do_not_convert_delete_move_next_legacy_preferences)
if (empty($delete_move_next_t) ||
$delete_move_next_t ==
'off')
if (empty($delete_move_next_b) ||
$delete_move_next_b ==
'off')
if (empty($delete_move_next_formATtop) ||
$delete_move_next_formATtop ==
'off')
if (empty($delete_move_next_formATbottom) ||
$delete_move_next_formATbottom ==
'off')
if (empty($delete_move_next_show_unread) ||
$delete_move_next_show_unread ==
'off')
Documentation generated on Mon, 13 Jan 2020 04:25:19 +0100 by phpDocumentor 1.4.3