~ubuntu-branches/ubuntu/hardy/squirrelmail/hardy-updates

« back to all changes in this revision

Viewing changes to plugins/listcommands/setup.php

  • Committer: Bazaar Package Importer
  • Author(s): Sam Johnston
  • Date: 2004-02-04 01:42:12 UTC
  • Revision ID: james.westby@ubuntu.com-20040204014212-ek9533qvd2vo1wa1
Tags: upstream-1.5.0
ImportĀ upstreamĀ versionĀ 1.5.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
/**
 
4
 * setup.php
 
5
 *
 
6
 * Copyright (c) 1999-2003 The SquirrelMail Project Team
 
7
 * Licensed under the GNU GPL. For full terms see the file COPYING.
 
8
 *
 
9
 * Implementation of RFC 2369 for SquirrelMail.
 
10
 * When viewing a message from a mailinglist complying with this RFC,
 
11
 * this plugin displays a menu which gives the user a choice of mailinglist
 
12
 * commands such as (un)subscribe, help and list archives.
 
13
 *
 
14
 * $Id: setup.php,v 1.28 2003/11/01 17:36:16 alex-brainstorm Exp $
 
15
 * @package plugins
 
16
 * @subpackage listcommands
 
17
 */
 
18
 
 
19
/**
 
20
 * Initialize the listcommands plugin
 
21
 */
 
22
function squirrelmail_plugin_init_listcommands () {
 
23
    global $squirrelmail_plugin_hooks;
 
24
 
 
25
    $squirrelmail_plugin_hooks['read_body_header']['listcommands'] = 'plugin_listcommands_menu';
 
26
}
 
27
 
 
28
function plugin_listcommands_menu() {
 
29
    global $passed_id, $passed_ent_id, $color, $mailbox, $message;
 
30
 
 
31
    /**
 
32
     * Array of commands we can deal with from the header. The Reply option
 
33
     * is added later because we generate it using the Post information.
 
34
     */
 
35
    $fieldsdescr = array('post'        => _("Post to List"),
 
36
                         'reply'       => _("Reply to List"),
 
37
                         'subscribe'   => _("Subscribe"),
 
38
                         'unsubscribe' => _("Unsubscribe"),
 
39
                         'archive'     => _("List Archives"),
 
40
                         'owner'       => _("Contact Listowner"),
 
41
                         'help'        => _("Help"));
 
42
    $output = array();
 
43
 
 
44
    foreach ($message->rfc822_header->mlist as $cmd => $actions) {
 
45
 
 
46
        /* I don't know this action... skip it */
 
47
        if ( ( function_exists('array_key_exists') &&       /* PHP >= 4.1 */
 
48
               !array_key_exists($cmd, $fieldsdescr) ) ||
 
49
             ( function_exists('key_exists') && 
 
50
               !key_exists($cmd, $fieldsdescr) )            /* PHP == 4.0.6 */
 
51
        ) {
 
52
            continue;
 
53
        }
 
54
 
 
55
        /* proto = {mailto,href} */
 
56
        $proto = array_shift(array_keys($actions));
 
57
        $act   = array_shift($actions);
 
58
 
 
59
        if ($proto == 'mailto') {
 
60
 
 
61
            if (($cmd == 'post') || ($cmd == 'owner')) {
 
62
                $url = 'src/compose.php?';
 
63
            } else {
 
64
                $url = "plugins/listcommands/mailout.php?action=$cmd&amp;";
 
65
            }
 
66
            $url .= 'send_to=' . strtr($act,'?','&');
 
67
 
 
68
            $output[] = makeComposeLink($url, $fieldsdescr[$cmd]);
 
69
 
 
70
            if ($cmd == 'post') {
 
71
                if (!isset($mailbox))
 
72
                    $mailbox = 'INBOX';
 
73
                $url .= '&amp;passed_id='.$passed_id.
 
74
                        '&amp;mailbox='.urlencode($mailbox).
 
75
                        (isset($passed_ent_id)?'&amp;passed_ent_id='.$passed_ent_id:'');
 
76
                $url .= '&amp;smaction=reply';
 
77
 
 
78
                $output[] = makeComposeLink($url, $fieldsdescr['reply']);
 
79
            }
 
80
        } else if ($proto == 'href') {
 
81
            $output[] = '<a href="' . $act . '" target="_blank">'
 
82
                      . $fieldsdescr[$cmd] . '</a>';
 
83
        }
 
84
    }
 
85
 
 
86
    if (count($output) > 0) {
 
87
        echo '<tr>';
 
88
        echo html_tag('td', '<b>' . _("Mailing List") . ':&nbsp;&nbsp;</b>',
 
89
                      'right', '', 'valign="middle" width="20%"') . "\n";
 
90
        echo html_tag('td', '<small>' . implode('&nbsp;|&nbsp;', $output) . '</small>',
 
91
                      'left', $color[0], 'valign="middle" width="80%"') . "\n";
 
92
        echo '</tr>';
 
93
    }
 
94
}
 
95
 
 
96
?>