Exemplo n.º 1
0
/**
 * Outputs a complete SquirrelMail page header, starting with <!doctype> and
 * including the default menu bar. Uses displayHtmlHeader and takes
 * JavaScript and locale settings into account.
 *
 * @param array color the array of theme colors
 * @param string mailbox the current mailbox name to display
 * @param string xtra extra html code to add
 * @param bool session
 * @return void
 */
function displayPageHeader($color, $mailbox, $xtra = '', $session = false)
{
    global $hide_sm_attributions, $PHP_SELF, $frame_top, $compose_new_win, $compose_width, $compose_height, $attachemessages, $provider_name, $provider_uri, $javascript_on, $default_use_mdn, $mdn_user_support, $startMessage;
    sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION);
    sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
    $module = substr($PHP_SELF, (strlen($PHP_SELF) - strlen($base_uri)) * -1);
    if ($qmark = strpos($module, '?')) {
        $module = substr($module, 0, $qmark);
    }
    if (!isset($frame_top)) {
        $frame_top = '_top';
    }
    if ($session) {
        $compose_uri = $base_uri . 'src/compose.php?mailbox=' . urlencode($mailbox) . '&amp;attachedmessages=true&amp;session=' . "{$session}";
    } else {
        $compose_uri = $base_uri . 'src/compose.php?newmessage=1';
        $session = 0;
    }
    if ($javascript_on) {
        switch ($module) {
            case 'src/read_body.php':
                $js = '';
                // compose in new window code
                if ($compose_new_win == '1') {
                    if (!preg_match("/^[0-9]{3,4}\$/", $compose_width)) {
                        $compose_width = '640';
                    }
                    if (!preg_match("/^[0-9]{3,4}\$/", $compose_height)) {
                        $compose_height = '550';
                    }
                    $js .= "function comp_in_new_form(comp_uri, button, myform) {\n" . '   if (!comp_uri) {' . "\n" . '       comp_uri = "' . $compose_uri . "\";\n" . '   }' . "\n" . '   comp_uri += "&" + button.name + "=1";' . "\n" . '   for ( var i=0; i < myform.elements.length; i++ ) {' . "\n" . '      if ( myform.elements[i].type == "checkbox"  && myform.elements[i].checked )' . "\n" . '         comp_uri += "&" + myform.elements[i].name + "=1";' . "\n" . '   }' . "\n" . '   var newwin = window.open(comp_uri' . ', "_blank",' . '"width=' . $compose_width . ',height=' . $compose_height . ',scrollbars=yes,resizable=yes,status=yes");' . "\n" . "}\n\n";
                    $js .= "function comp_in_new(comp_uri) {\n" . "       if (!comp_uri) {\n" . '           comp_uri = "' . $compose_uri . "\";\n" . '       }' . "\n" . '    var newwin = window.open(comp_uri' . ', "_blank",' . '"width=' . $compose_width . ',height=' . $compose_height . ',scrollbars=yes,resizable=yes,status=yes");' . "\n" . "}\n\n";
                }
                // javascript for sending read receipts
                if ($default_use_mdn && $mdn_user_support) {
                    $js .= 'function sendMDN() {' . "\n" . "    mdnuri=window.location+'&sendreceipt=1'; " . "var newwin = window.open(mdnuri,'right');" . "\n}\n\n";
                }
                // if any of the above passes, add the JS tags too.
                if ($js) {
                    $js = "\n" . '<script language="JavaScript" type="text/javascript">' . "\n<!--\n" . $js . "// -->\n</script>\n";
                }
                displayHtmlHeader('SquirrelMail', $js);
                $onload = $xtra;
                break;
            case 'src/compose.php':
                $js = '<script language="JavaScript" type="text/javascript">' . "\n<!--\n" . "function checkForm() {\n";
                global $action, $reply_focus;
                if (strpos($action, 'reply') !== FALSE && $reply_focus) {
                    if ($reply_focus == 'select') {
                        $js .= "document.forms['compose'].body.select();}\n";
                    } else {
                        if ($reply_focus == 'focus') {
                            $js .= "document.forms['compose'].body.focus();}\n";
                        } else {
                            if ($reply_focus == 'none') {
                                $js .= "}\n";
                            }
                        }
                    }
                } else {
                    if ($reply_focus == 'none') {
                        $js .= "}\n";
                    } else {
                        $js .= "var f = document.forms.length;\n" . "var i = 0;\n" . "var pos = -1;\n" . "while( pos == -1 && i < f ) {\n" . "var e = document.forms[i].elements.length;\n" . "var j = 0;\n" . "while( pos == -1 && j < e ) {\n" . "if ( document.forms[i].elements[j].type == 'text' ) {\n" . "pos = j;\n" . "}\n" . "j++;\n" . "}\n" . "i++;\n" . "}\n" . "if( pos >= 0 ) {\n" . "document.forms[i-1].elements[pos].focus();\n" . "}\n" . "}\n";
                    }
                }
                $js .= "// -->\n" . "</script>\n";
                $onload = 'onload="checkForm();"';
                displayHtmlHeader('SquirrelMail', $js);
                break;
            default:
                $js = '<script language="JavaScript" type="text/javascript">' . "\n<!--\n" . "function checkForm() {\n" . "var f = document.forms.length;\n" . "var i = 0;\n" . "var pos = -1;\n" . "while( pos == -1 && i < f ) {\n" . "var e = document.forms[i].elements.length;\n" . "var j = 0;\n" . "while( pos == -1 && j < e ) {\n" . "if ( document.forms[i].elements[j].type == 'text' " . "|| document.forms[i].elements[j].type == 'password' ) {\n" . "pos = j;\n" . "}\n" . "j++;\n" . "}\n" . "i++;\n" . "}\n" . "if( pos >= 0 ) {\n" . "document.forms[i-1].elements[pos].focus();\n" . "}\n" . "{$xtra}\n" . "}\n";
                if ($compose_new_win == '1') {
                    if (!preg_match("/^[0-9]{3,4}\$/", $compose_width)) {
                        $compose_width = '640';
                    }
                    if (!preg_match("/^[0-9]{3,4}\$/", $compose_height)) {
                        $compose_height = '550';
                    }
                    $js .= "function comp_in_new(comp_uri) {\n" . "       if (!comp_uri) {\n" . '           comp_uri = "' . $compose_uri . "\";\n" . '       }' . "\n" . '    var newwin = window.open(comp_uri' . ', "_blank",' . '"width=' . $compose_width . ',height=' . $compose_height . ',scrollbars=yes,resizable=yes,status=yes");' . "\n" . "}\n\n";
                }
                $js .= "// -->\n" . "</script>\n";
                $onload = 'onload="checkForm();"';
                displayHtmlHeader('SquirrelMail', $js);
                break;
        }
    } else {
        /* do not use JavaScript */
        displayHtmlHeader('SquirrelMail');
        $onload = '';
    }
    echo "<body text=\"{$color['8']}\" bgcolor=\"{$color['4']}\" link=\"{$color['7']}\" vlink=\"{$color['7']}\" alink=\"{$color['7']}\" {$onload}>\n\n";
    /** Here is the header and wrapping table **/
    $shortBoxName = htmlspecialchars(imap_utf7_decode_local(readShortMailboxName($mailbox, $delimiter)));
    if ($shortBoxName == 'INBOX') {
        $shortBoxName = _("INBOX");
    }
    echo "<a name=\"pagetop\"></a>\n" . html_tag('table', '', '', $color[4], 'border="0" width="100%" cellspacing="0" cellpadding="2"') . "\n" . html_tag('tr', '', '', $color[9]) . "\n" . html_tag('td', '', 'left') . "\n";
    if ($shortBoxName != '' && strtolower($shortBoxName) != 'none') {
        echo '         ' . _("Current Folder") . ": <b>{$shortBoxName}&nbsp;</b>\n";
    } else {
        echo '&nbsp;';
    }
    echo "      </td>\n" . html_tag('td', '', 'right') . "<b>\n";
    displayInternalLink('src/signout.php', _("Sign Out"), $frame_top);
    echo "</b></td>\n" . "   </tr>\n" . html_tag('tr', '', '', $color[4]) . "\n" . ($hide_sm_attributions ? html_tag('td', '', 'left', '', 'colspan="2"') : html_tag('td', '', 'left')) . "\n";
    $urlMailbox = urlencode($mailbox);
    echo makeComposeLink('src/compose.php?mailbox=' . $urlMailbox . '&amp;startMessage=' . $startMessage);
    echo "&nbsp;&nbsp;\n";
    displayInternalLink('src/addressbook.php', _("Addresses"));
    echo "&nbsp;&nbsp;\n";
    displayInternalLink('src/folders.php', _("Folders"));
    echo "&nbsp;&nbsp;\n";
    displayInternalLink('src/options.php', _("Options"));
    echo "&nbsp;&nbsp;\n";
    displayInternalLink("src/search.php?mailbox={$urlMailbox}", _("Search"));
    echo "&nbsp;&nbsp;\n";
    displayInternalLink('src/help.php', _("Help"));
    echo "&nbsp;&nbsp;\n";
    do_hook('menuline');
    echo "      </td>\n";
    if (!$hide_sm_attributions) {
        echo html_tag('td', '', 'right') . "\n";
        if (!isset($provider_uri)) {
            $provider_uri = 'http://www.squirrelmail.org/';
        }
        if (!isset($provider_name)) {
            $provider_name = 'SquirrelMail';
        }
        echo '<a href="' . $provider_uri . '" target="_blank">' . $provider_name . '</a>';
        echo "</td>\n";
    }
    echo "   </tr>\n" . "</table><br />\n\n";
}
Exemplo n.º 2
0
/**
 *  Returns a list of all folders, subscribed or not
 */
function sqimap_mailbox_list_all($imap_stream)
{
    global $list_special_folders_first, $folder_prefix, $delimiter;
    $ssid = sqimap_session_id();
    $lsid = strlen($ssid);
    fputs($imap_stream, $ssid . " LIST \"{$folder_prefix}\" *\r\n");
    $read_ary = sqimap_read_data($imap_stream, $ssid, true, $response, $message);
    $g = 0;
    $phase = 'inbox';
    $fld_pre_length = strlen($folder_prefix);
    for ($i = 0, $cnt = count($read_ary); $i < $cnt; $i++) {
        /* Another workaround for EIMS */
        if (isset($read_ary[$i + 1]) && ereg("^(\\* [A-Z]+.*)\\{[0-9]+\\}([ \n\r\t]*)\$", $read_ary[$i], $regs)) {
            $i++;
            $read_ary[$i] = $regs[1] . '"' . addslashes(trim($read_ary[$i])) . '"' . $regs[2];
        }
        if (substr($read_ary[$i], 0, $lsid) != $ssid) {
            /* Store the raw IMAP reply */
            $boxes[$g]['raw'] = $read_ary[$i];
            /* Count number of delimiters ($delimiter) in folder name */
            $mailbox = find_mailbox_name($read_ary[$i]);
            $dm_count = substr_count($mailbox, $delimiter);
            if (substr($mailbox, -1) == $delimiter) {
                /* If name ends in delimiter - decrement count by one */
                $dm_count--;
            }
            /* Format folder name, but only if it's a INBOX.* or has a parent. */
            $boxesallbyname[$mailbox] = $g;
            $parentfolder = readMailboxParent($mailbox, $delimiter);
            if (eregi('^inbox' . quotemeta($delimiter), $mailbox) || ereg('^' . $folder_prefix, $mailbox) || isset($boxesallbyname[$parentfolder]) && strlen($parentfolder) > 0) {
                if ($dm_count) {
                    $boxes[$g]['formatted'] = str_repeat('&nbsp;&nbsp;', $dm_count);
                } else {
                    $boxes[$g]['formatted'] = '';
                }
                $boxes[$g]['formatted'] .= imap_utf7_decode_local(readShortMailboxName($mailbox, $delimiter));
            } else {
                $boxes[$g]['formatted'] = imap_utf7_decode_local($mailbox);
            }
            $boxes[$g]['unformatted-dm'] = $mailbox;
            if (substr($mailbox, -1) == $delimiter) {
                $mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
            }
            $boxes[$g]['unformatted'] = $mailbox;
            $boxes[$g]['unformatted-disp'] = substr($mailbox, $fld_pre_length);
            $boxes[$g]['id'] = $g;
            /* Now lets get the flags for this mailbox */
            $read_mlbx = $read_ary[$i];
            //            $read_mlbx = sqimap_run_command ($imap_stream, "LIST \"\" \"$mailbox\"",
            //                                             true, $response, $message);
            /* Another workaround for EIMS */
            //            if (isset($read_mlbx[1]) &&
            //                ereg("^(\\* [A-Z]+.*)\\{[0-9]+\\}([ \n\r\t]*)$", $read_mlbx[0], $regs)) {
            //                $read_mlbx[0] = $regs[1] . '"' . addslashes(trim($read_mlbx[1])) . '"' . $regs[2];
            //            }
            //            echo  $read_mlbx[0] .' raw 2 <br>';
            $flags = substr($read_mlbx, strpos($read_mlbx, '(') + 1);
            $flags = substr($flags, 0, strpos($flags, ')'));
            $flags = str_replace('\\', '', $flags);
            $flags = trim(strtolower($flags));
            if ($flags) {
                $boxes[$g]['flags'] = explode(' ', $flags);
            } else {
                $boxes[$g]['flags'] = array();
            }
        }
        $g++;
    }
    if (is_array($boxes)) {
        sort($boxes);
    }
    return $boxes;
}
Exemplo n.º 3
0
/**
 * Formats a mailbox into parts for the $boxesall array
 *
 * The parts are:
 * <ul>
 *   <li>raw            - Raw LIST/LSUB response from the IMAP server
 *   <li>formatted      - nicely formatted folder name
 *   <li>unformatted    - unformatted, but with delimiter at end removed
 *   <li>unformatted-dm - folder name as it appears in raw response
 *   <li>unformatted-disp - unformatted without $folder_prefix
 *   <li>id             - TODO: document me
 *   <li>flags          - TODO: document me
 * </ul>
 * Before 1.2.0 used third argument for delimiter.
 *
 * Before 1.5.1 used second argument for lsub line. Argument was removed in order to use
 * find_mailbox_name() on the raw input. Since 1.5.1 includes RFC3501 names in flags
 * array (for example, "\NoSelect" in addition to "noselect")
 * @param array $line
 * @return array
 * @since 1.0 or older
 * @todo document id and flags keys in boxes array and function arguments.
 */
function sqimap_mailbox_parse($line)
{
    global $folder_prefix, $delimiter;
    /* Process each folder line */
    for ($g = 0, $cnt = count($line); $g < $cnt; ++$g) {
        /* Store the raw IMAP reply */
        if (isset($line[$g])) {
            $boxesall[$g]['raw'] = $line[$g];
        } else {
            $boxesall[$g]['raw'] = '';
        }
        /* Count number of delimiters ($delimiter) in folder name */
        $mailbox = find_mailbox_name($line[$g]);
        $dm_count = substr_count($mailbox, $delimiter);
        if (substr($mailbox, -1) == $delimiter) {
            /* If name ends in delimiter, decrement count by one */
            $dm_count--;
        }
        /* Format folder name, but only if it's a INBOX.* or has a parent. */
        $boxesallbyname[$mailbox] = $g;
        $parentfolder = readMailboxParent($mailbox, $delimiter);
        if (strtolower(substr($mailbox, 0, 5)) == "inbox" || substr($mailbox, 0, strlen($folder_prefix)) == $folder_prefix || isset($boxesallbyname[$parentfolder]) && strlen($parentfolder) > 0) {
            $indent = $dm_count - substr_count($folder_prefix, $delimiter);
            if ($indent > 0) {
                $boxesall[$g]['formatted'] = str_repeat('&nbsp;&nbsp;', $indent);
            } else {
                $boxesall[$g]['formatted'] = '';
            }
            $boxesall[$g]['formatted'] .= imap_utf7_decode_local(readShortMailboxName($mailbox, $delimiter));
        } else {
            $boxesall[$g]['formatted'] = imap_utf7_decode_local($mailbox);
        }
        $boxesall[$g]['unformatted-dm'] = $mailbox;
        if (substr($mailbox, -1) == $delimiter) {
            $mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
        }
        $boxesall[$g]['unformatted'] = $mailbox;
        if (substr($mailbox, 0, strlen($folder_prefix)) == $folder_prefix) {
            $mailbox = substr($mailbox, strlen($folder_prefix));
        }
        $boxesall[$g]['unformatted-disp'] = $mailbox;
        $boxesall[$g]['id'] = $g;
        $boxesall[$g]['flags'] = array();
        if (isset($line[$g]) && preg_match('/\\(([^)]*)\\)/', $line[$g], $regs)) {
            /**
             * Since 1.5.1 flags are stored with RFC3501 naming
             * and also the old way for backwards compatibility
             * so for example "\NoSelect" and "noselect"
             */
            $flags = trim($regs[1]);
            if ($flags) {
                $flagsarr = explode(' ', $flags);
                $flagsarrnew = $flagsarr;
                // add old type
                foreach ($flagsarr as $flag) {
                    $flagsarrnew[] = strtolower(str_replace('\\', '', $flag));
                }
                $boxesall[$g]['flags'] = $flagsarrnew;
            }
        }
    }
    return $boxesall;
}
Exemplo n.º 4
0
function displayPageHeader($color, $mailbox, $xtra = '', $session = false)
{
    global $hide_sm_attributions, $frame_top, $compose_new_win, $compose_width, $compose_height, $attachemessages, $provider_name, $provider_uri, $javascript_on, $default_use_mdn, $mdn_user_support, $startMessage, $org_title;
    sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION);
    sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
    if (!isset($frame_top)) {
        $frame_top = '_top';
    }
    if ($session) {
        $compose_uri = $base_uri . 'src/compose.php?mailbox=' . urlencode($mailbox) . '&amp;session=' . "{$session}";
    } else {
        $compose_uri = $base_uri . 'src/compose.php?newmessage=1';
        $session = 0;
    }
    // only output JavaScript if actually turned on
    if ($javascript_on || strpos($xtra, 'new_js_autodetect_results.value')) {
        if (!defined('PAGE_NAME')) {
            define('PAGE_NAME', NULL);
        }
        switch (PAGE_NAME) {
            case 'read_body':
                $js = '';
                // compose in new window code
                if ($compose_new_win == '1') {
                    if (!preg_match("/^[0-9]{3,4}\$/", $compose_width)) {
                        $compose_width = '640';
                    }
                    if (!preg_match("/^[0-9]{3,4}\$/", $compose_height)) {
                        $compose_height = '550';
                    }
                    $js .= "function comp_in_new(comp_uri) {\n" . "       if (!comp_uri) {\n" . '           comp_uri = "' . $compose_uri . "\";\n" . '       }' . "\n" . '    var newwin = window.open(comp_uri' . ', "_blank",' . '"width=' . $compose_width . ',height=' . $compose_height . ',scrollbars=yes,resizable=yes,status=yes");' . "\n" . "}\n\n";
                }
                // javascript for sending read receipts
                if ($default_use_mdn && $mdn_user_support) {
                    $js .= "function sendMDN() {\n" . "    mdnuri=window.location+'&sendreceipt=1';\n" . "    window.location = mdnuri;\n" . "\n}\n\n";
                }
                // if any of the above passes, add the JS tags too.
                if ($js) {
                    $js = "\n" . '<script language="JavaScript" type="text/javascript">' . "\n<!--\n" . $js . "// -->\n</script>\n";
                }
                displayHtmlHeader($org_title, $js);
                $onload = $xtra;
                break;
            case 'compose':
                $js = '<script language="JavaScript" type="text/javascript">' . "\n<!--\n" . "var alreadyFocused = false;\n" . "function checkForm() {\n" . "\n    if (alreadyFocused) return;\n";
                global $action, $reply_focus;
                if (strpos($action, 'reply') !== FALSE && $reply_focus) {
                    if ($reply_focus == 'select') {
                        $js .= "document.forms['compose'].body.select();}\n";
                    } else {
                        if ($reply_focus == 'focus') {
                            $js .= "document.forms['compose'].body.focus();}\n";
                        } else {
                            if ($reply_focus == 'none') {
                                $js .= "}\n";
                            }
                        }
                    }
                } else {
                    if ($reply_focus == 'none') {
                        $js .= "}\n";
                    } else {
                        $js .= "    var f = document.forms.length;\n" . "    var i = 0;\n" . "    var pos = -1;\n" . "    while( pos == -1 && i < f ) {\n" . "        var e = document.forms[i].elements.length;\n" . "        var j = 0;\n" . "        while( pos == -1 && j < e ) {\n" . "            if ( document.forms[i].elements[j].type == 'text' ) {\n" . "                pos = j;\n" . "            }\n" . "            j++;\n" . "        }\n" . "        i++;\n" . "    }\n" . "    if( pos >= 0 ) {\n" . "        document.forms[i-1].elements[pos].focus();\n" . "    }\n" . "}\n";
                    }
                }
                $js .= "// -->\n" . "</script>\n";
                $onload = 'onload="checkForm();"';
                displayHtmlHeader($org_title, $js);
                break;
            default:
                $js = '<script language="JavaScript" type="text/javascript">' . "\n<!--\n" . "function checkForm() {\n" . "   var f = document.forms.length;\n" . "   var i = 0;\n" . "   var pos = -1;\n" . "   while( pos == -1 && i < f ) {\n" . "       var e = document.forms[i].elements.length;\n" . "       var j = 0;\n" . "       while( pos == -1 && j < e ) {\n" . "           if ( document.forms[i].elements[j].type == 'text' " . "           || document.forms[i].elements[j].type == 'password' ) {\n" . "               pos = j;\n" . "           }\n" . "           j++;\n" . "       }\n" . "   i++;\n" . "   }\n" . "   if( pos >= 0 ) {\n" . "       document.forms[i-1].elements[pos].focus();\n" . "   }\n" . "   {$xtra}\n" . "}\n";
                if ($compose_new_win == '1') {
                    if (!preg_match("/^[0-9]{3,4}\$/", $compose_width)) {
                        $compose_width = '640';
                    }
                    if (!preg_match("/^[0-9]{3,4}\$/", $compose_height)) {
                        $compose_height = '550';
                    }
                    $js .= "function comp_in_new(comp_uri) {\n" . "       if (!comp_uri) {\n" . '           comp_uri = "' . $compose_uri . "\";\n" . '       }' . "\n" . '    var newwin = window.open(comp_uri' . ', "_blank",' . '"width=' . $compose_width . ',height=' . $compose_height . ',scrollbars=yes,resizable=yes,status=yes");' . "\n" . "}\n\n";
                }
                $js .= "// -->\n" . "</script>\n";
                $onload = 'onload="checkForm();"';
                displayHtmlHeader($org_title, $js);
        }
        // end switch module
    } else {
        // JavaScript off
        displayHtmlHeader($org_title);
        $onload = '';
    }
    $google = "\n<script type=\"text/javascript\"><!--\ngoogle_ad_client = \"pub-0768633782379013\";\n//ehcp-webmail-468x60\ngoogle_ad_slot = \"6865422642\";\ngoogle_ad_width = 468;\ngoogle_ad_height = 60;\n//--></script>\n<script type=\"text/javascript\"\nsrc=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\">\n</script>\n";
    echo "<body text=\"{$color['8']}\" bgcolor=\"{$color['4']}\" link=\"{$color['7']}\" vlink=\"{$color['7']}\" alink=\"{$color['7']}\" {$onload}>\n\n {$google} ";
    /** Here is the header and wrapping table **/
    $shortBoxName = htmlspecialchars(imap_utf7_decode_local(readShortMailboxName($mailbox, $delimiter)));
    if ($shortBoxName == 'INBOX') {
        $shortBoxName = _("INBOX");
    }
    echo "<a name=\"pagetop\"></a>\n" . html_tag('table', '', '', $color[4], 'border="0" width="100%" cellspacing="0" cellpadding="2"') . "\n" . html_tag('tr', '', '', $color[9]) . "\n" . html_tag('td', '', 'left') . "\n";
    if ($shortBoxName != '' && strtolower($shortBoxName) != 'none') {
        echo '         ' . _("Current Folder") . ": <b>{$shortBoxName}&nbsp;</b>\n";
    } else {
        echo '&nbsp;';
    }
    echo "      </td>\n" . html_tag('td', '', 'right') . "<b>\n";
    displayInternalLink('src/signout.php', _("Sign Out"), $frame_top);
    echo "</b></td>\n" . "   </tr>\n" . html_tag('tr', '', '', $color[4]) . "\n" . ($hide_sm_attributions ? html_tag('td', '', 'left', '', 'colspan="2"') : html_tag('td', '', 'left')) . "\n";
    $urlMailbox = urlencode($mailbox);
    $startMessage = (int) $startMessage;
    echo makeComposeLink('src/compose.php?mailbox=' . $urlMailbox . '&amp;startMessage=' . $startMessage);
    echo "&nbsp;&nbsp;\n";
    displayInternalLink('src/addressbook.php', _("Addresses"));
    echo "&nbsp;&nbsp;\n";
    displayInternalLink('src/folders.php', _("Folders"));
    echo "&nbsp;&nbsp;\n";
    displayInternalLink('src/options.php', _("Options"));
    echo "&nbsp;&nbsp;\n";
    displayInternalLink("src/search.php?mailbox={$urlMailbox}", _("Search"));
    echo "&nbsp;&nbsp;\n";
    displayInternalLink('src/help.php', _("Help"));
    echo "&nbsp;&nbsp;\n";
    do_hook('menuline');
    echo "      </td>\n";
    if (!$hide_sm_attributions) {
        echo html_tag('td', '', 'right') . "\n";
        if (!isset($provider_uri)) {
            $provider_uri = 'http://squirrelmail.org/';
        }
        if (!isset($provider_name)) {
            $provider_name = 'SquirrelMail';
        }
        echo '<a href="' . $provider_uri . '" target="_blank">' . $provider_name . '</a>';
        echo "</td>\n";
    }
    echo "   </tr>\n" . "</table><br>\n\n";
}
Exemplo n.º 5
0
/**
 *  Returns a list of all folders, subscribed or not
 */
function sqimap_mailbox_list_all($imap_stream)
{
    global $list_special_folders_first, $folder_prefix, $delimiter;
    $read_ary = sqimap_run_command($imap_stream, "LIST \"{$folder_prefix}\" *", true, $response, $message, false);
    $read_ary = compact_mailboxes_response($read_ary);
    $g = 0;
    $phase = 'inbox';
    $fld_pre_length = strlen($folder_prefix);
    for ($i = 0, $cnt = count($read_ary); $i < $cnt; $i++) {
        /* Store the raw IMAP reply */
        $boxes[$g]['raw'] = $read_ary[$i];
        /* Count number of delimiters ($delimiter) in folder name */
        $mailbox = find_mailbox_name($read_ary[$i]);
        $dm_count = substr_count($mailbox, $delimiter);
        if (substr($mailbox, -1) == $delimiter) {
            /* If name ends in delimiter - decrement count by one */
            $dm_count--;
        }
        /* Format folder name, but only if it's a INBOX.* or has a parent. */
        $boxesallbyname[$mailbox] = $g;
        $parentfolder = readMailboxParent($mailbox, $delimiter);
        if (eregi('^inbox' . quotemeta($delimiter), $mailbox) || ereg('^' . $folder_prefix, $mailbox) || isset($boxesallbyname[$parentfolder]) && strlen($parentfolder) > 0) {
            if ($dm_count) {
                $boxes[$g]['formatted'] = str_repeat('&nbsp;&nbsp;', $dm_count);
            } else {
                $boxes[$g]['formatted'] = '';
            }
            $boxes[$g]['formatted'] .= imap_utf7_decode_local(readShortMailboxName($mailbox, $delimiter));
        } else {
            $boxes[$g]['formatted'] = imap_utf7_decode_local($mailbox);
        }
        $boxes[$g]['unformatted-dm'] = $mailbox;
        if (substr($mailbox, -1) == $delimiter) {
            $mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
        }
        $boxes[$g]['unformatted'] = $mailbox;
        $boxes[$g]['unformatted-disp'] = substr($mailbox, $fld_pre_length);
        $boxes[$g]['id'] = $g;
        /* Now lets get the flags for this mailbox */
        $read_mlbx = $read_ary[$i];
        $flags = substr($read_mlbx, strpos($read_mlbx, '(') + 1);
        $flags = substr($flags, 0, strpos($flags, ')'));
        $flags = str_replace('\\', '', $flags);
        $flags = trim(strtolower($flags));
        if ($flags) {
            $boxes[$g]['flags'] = explode(' ', $flags);
        } else {
            $boxes[$g]['flags'] = array();
        }
        $g++;
    }
    if (is_array($boxes)) {
        sort($boxes);
    }
    return $boxes;
}