Source for file setup.php
Documentation is available at setup.php
* Copyright (c) 1999-2020 The SquirrelMail Project Team
* Copyright (c) 2000 by Michael Huttinger
* Licensed under the GNU GPL. For full terms see the file COPYING.
* Quite a hack -- but my first attempt at a plugin. We were
* looking for a way to play a sound when there was unseen
* messages to look at. Nice for users who keep the squirrel
* mail window up for long periods of time and want to know
* Basically, I hacked much of left_main.php into a plugin that
* goes through each mail folder and increments a flag if
* there are unseen messages. If the final count of unseen
* folders is > 0, then we play a sound (using the HTML at the
* far end of this script).
* This was tested with IE5.0 - but I hear Netscape works well,
* @version $Id: setup.php 14840 2020-01-07 07:42:38Z pdontthink $
* Checks if mailbox contains new messages.
* @param stream $imapConnection
* @param string $mailbox FIXME: option is not used
* @param string $real_box unformated mailbox name
* @param string $delimeter FIXME: option is not used
* @param string $unseen FIXME: option is not used
* @param integer $total_new number of new messages
* @return bool true, if there are new messages
function CheckNewMailboxSound($imapConnection, $mailbox, $real_box, $delimeter, $unseen, &$total_new) {
global $folder_prefix, $trash_folder, $sent_folder,
$color, $move_to_sent, $move_to_trash,
$unseen_notify, $unseen_type, $newmail_allbox,
$newmail_recent, $newmail_changetitle;
// Skip folders for Sent and Trash
if ($real_box ==
$sent_folder ||
$real_box ==
$trash_folder) {
if (($unseen_notify ==
2 &&
$real_box ==
'INBOX') ||
($unseen_notify ==
3 &&
($newmail_allbox ==
'on' ||
$real_box ==
'INBOX'))) {
if($newmail_recent ==
'on') {
$total_new +=
$status['RECENT'];
$total_new +=
$status['UNSEEN'];
global $squirrelmail_plugin_hooks;
$squirrelmail_plugin_hooks['left_main_before']['newmail'] =
'newmail_plugin';
$squirrelmail_plugin_hooks['optpage_register_block']['newmail'] =
'newmail_optpage_register_block';
$squirrelmail_plugin_hooks['options_save']['newmail'] =
'newmail_sav';
$squirrelmail_plugin_hooks['loading_prefs']['newmail'] =
'newmail_pref';
$squirrelmail_plugin_hooks['optpage_set_loadinfo']['newmail'] =
'newmail_set_loadinfo';
// Gets added to the user's OPTIONS page.
/* Register Squirrelspell with the $optionpages array. */
$optpage_blocks[] =
array(
'name' =>
_("NewMail Options"),
'url' =>
SM_PATH .
'plugins/newmail/newmail_opt.php',
'desc' =>
_("This configures settings for playing sounds and/or showing popup windows when new mail arrives."),
global $data_dir, $username;
setPref($data_dir,$username,'newmail_enable',$media_enable);
setPref($data_dir,$username,'newmail_popup', $media_popup);
setPref($data_dir,$username,'newmail_allbox',$media_allbox);
setPref($data_dir,$username,'newmail_recent',$media_recent);
setPref($data_dir,$username,'newmail_popup_height',$newmail_popup_height);
setPref($data_dir,$username,'newmail_popup_width',$newmail_popup_width);
setPref($data_dir,$username,'newmail_changetitle',$media_changetitle);
($media_sel ==
'(none)' ||
$media_sel ==
'(local media)') ) {
setPref($data_dir,$username,'newmail_media',$media_sel);
global $username, $data_dir, $newmail_media, $newmail_enable, $newmail_popup,
$newmail_allbox, $newmail_recent, $newmail_changetitle, $newmail_popup_height,
$newmail_recent =
getPref($data_dir,$username,'newmail_recent');
$newmail_enable =
getPref($data_dir,$username,'newmail_enable');
$newmail_media =
getPref($data_dir, $username, 'newmail_media', '(none)');
$newmail_popup =
getPref($data_dir, $username, 'newmail_popup');
$newmail_allbox =
getPref($data_dir, $username, 'newmail_allbox');
$newmail_popup_height =
getPref($data_dir, $username, 'newmail_popup_height',130);
$newmail_popup_width =
getPref($data_dir, $username, 'newmail_popup_width',200);
$newmail_changetitle =
getPref($data_dir, $username, 'newmail_changetitle');
* Used by option page when saving settings.
global $optpage, $optpage_name;
if ($optpage==
'newmail') {
$optpage_name=
_("NewMail Options");
global $username, $key, $imapServerAddress, $imapPort,
$newmail_media, $newmail_enable, $newmail_popup,
$newmail_popup_height, $newmail_popup_width, $newmail_recent,
$newmail_changetitle, $imapConnection;
include_once(SM_PATH .
'functions/display_messages.php');
if ($newmail_enable ==
'on' ||
$newmail_popup ==
'on' ||
// open a connection on the imap port (143)
for ($i =
0;$i <
count($boxes); $i++
) {
$mailbox =
$boxes[$i]['formatted'];
if (! isset
($boxes[$i]['unseen'])) {
$boxes[$i]['unseen'] =
'';
if ($boxes[$i]['flags']) {
for ($h =
0; $h <
count($boxes[$i]['flags']); $h++
) {
if (strtolower($boxes[$i]["flags"][$h]) ==
'noselect') {
$boxes[$i]['unformatted'],
$boxes[$i]['unformatted'],
// sqimap_logout($imapConnection);
// If we found unseen messages, then we
// will play the sound as follows:
if ($newmail_changetitle) {
echo
"<script language=\"javascript\" type=\"text/javascript\">\n" .
"function ChangeTitleLoad() {\n";
if( $totalNew >
1 ||
$totalNew ==
0 ) {
echo
'window.parent.document.title = "' .
$org_title .
' [' .
sprintf(_("%s New Messages"), $totalNew ) .
echo
'window.parent.document.title = "' .
$org_title .
' [' .
sprintf(_("%s New Message"), $totalNew ) .
echo
"if (BeforeChangeTitle != null)\n".
"BeforeChangeTitle();\n".
"BeforeChangeTitle = window.onload;\n".
"window.onload = ChangeTitleLoad;\n".
if ($totalNew >
0 &&
$newmail_enable ==
'on' &&
$newmail_media !=
'' &&
$newmail_media !=
'(none)') {
.
"\" hidden=\"true\" autostart=\"true\" width=\"2\" height=\"2\">\n";
if ($totalNew >
0 &&
$newmail_popup ==
'on') {
echo
"<script language=\"JavaScript\">\n".
"function PopupScriptLoad() {\n".
'window.open("'.
sqm_baseuri().
'plugins/newmail/newmail.php?numnew='.
$totalNew.
"\"width=" . (int)
$newmail_popup_width .
",height=" . (int)
$newmail_popup_height .
",scrollbars=no\");\n".
"if (BeforePopupScript != null)\n".
"BeforePopupScript();\n".
"BeforePopupScript = window.onload;\n".
"window.onload = PopupScriptLoad;\n".
// Web URL: http://fineline.xs.mw
// More code from Tyler Akins
Documentation generated on Mon, 13 Jan 2020 04:25:18 +0100 by phpDocumentor 1.4.3