X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2Flistcommands%2Fsetup.php;h=50b3add1e750eed86be9b17e01f6d2291cc0c3ab;hb=e5f21a9121fd5ad2d5456201059c648849e34504;hp=e4402dc3f6656b40123c2f949dad8654da6a0c0e;hpb=38b9f447d203ce433a50c8dd44175bd2b22070a6;p=squirrelmail.git diff --git a/plugins/listcommands/setup.php b/plugins/listcommands/setup.php index e4402dc3..50b3add1 100644 --- a/plugins/listcommands/setup.php +++ b/plugins/listcommands/setup.php @@ -3,121 +3,42 @@ /** * setup.php * - * Copyright (c) 1999-2002 The SquirrelMail Project Team - * Licensed under the GNU GPL. For full terms see the file COPYING. - * * Implementation of RFC 2369 for SquirrelMail. * When viewing a message from a mailinglist complying with this RFC, * this plugin displays a menu which gives the user a choice of mailinglist * commands such as (un)subscribe, help and list archives. * - * $Id$ + * @copyright © 1999-2006 The SquirrelMail Project Team + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + * @version $Id$ + * @package plugins + * @subpackage listcommands */ +/** + * Initialize the listcommands plugin + */ function squirrelmail_plugin_init_listcommands () { global $squirrelmail_plugin_hooks; - $squirrelmail_plugin_hooks['read_body_header']['listcommands'] = 'plugin_listcommands_menu'; + $squirrelmail_plugin_hooks['template_construct_read_headers.tpl']['listcommands'] = 'plugin_listcommands_menu'; + $squirrelmail_plugin_hooks['optpage_register_block']['listcommands'] = 'plugin_listcommands_optpage_register_block'; + } +/** + * Main function added to read_body_header + */ function plugin_listcommands_menu() { - global $imapConnection, $passed_id, $color, $mailbox, - $message, $ent_num, $priority_level, $compose_new_win, $uid_support; - - $subject = trim($message->rfc822_header->subject); - - /** - * Array of commands we can deal with from the header. The Reply option - * is added later because we generate it using the Post information. - */ - $fieldsdescr = array('Post' => _("Post to List"), - 'Reply' => _("Reply to List"), - 'Subscribe' => _("Subscribe"), - 'Unsubscribe' => _("Unsubscribe"), - 'Archive' => _("List Archives"), - 'Owner' => _("Contact Listowner"), - 'Help' => _("Help")); - $fields = array_keys($fieldsdescr); - - $sorted_cmds = array(); - $unsorted_cmds = array(); - $output = array(); - - $lfields = 'List-' . implode (' List-', $fields); - - $sid = sqimap_session_id($uid_support); - fputs ($imapConnection, "$sid FETCH $passed_id BODY.PEEK[HEADER.FIELDS ($lfields)]\r\n"); - $read = sqimap_read_data($imapConnection, $sid, true, $response, $emessage); - - for ($i = 1; $i < count($read); $i++) { - foreach ($fields as $field) { - if ( preg_match("/^List-$field: *<(.+?)>/i", $read[$i], $match) ) { - $unsorted_cmds[$field] = $match[1]; - } - } - } - - if (count($unsorted_cmds) == 0) { - return; - } - - foreach ($fields as $field) { - foreach ($unsorted_cmds as $cmd => $url) { - if ($field == $cmd) { - $cmds[$cmd] = $url; - } - } - } - - foreach ($cmds as $cmd => $url) { - if (eregi('mailto:(.+)', $url, $regs)) { - $purl = parse_url($url); - - if (($cmd == 'Post') || ($cmd == 'Owner')) { - $url = 'compose.php?'; - } else { - $url = "../plugins/listcommands/mailout.php?action=$cmd&"; - - } - $url .= '&send_to=' . $purl['path']; + include_once(SM_PATH . 'plugins/listcommands/functions.php'); + return plugin_listcommands_menu_do(); +} - if (isset($purl['query'])) { - $url .= '&' . $purl['query']; - } - if ($compose_new_win == '1') { - $output[] = "" . $fieldsdescr[$cmd] . ''; - } - else { - $output[] = '' . $fieldsdescr[$cmd] . ''; - } - if ($cmd == 'Post') { - $url .= '&passed_id='.$passed_id. - '&mailbox='.urlencode($mailbox). - (isset($passed_ent_id)?'&passed_ent_id='.$passed_ent_id:''); - $url .= '&action=reply'; - if ($compose_new_win == '1') { - $output[] = "" . $fieldsdescr['Reply'] . ''; - } - else { - $output[] = '' . $fieldsdescr['Reply'] . ''; - } - } - } else if (eregi('^(http|ftp)', $url)) { - $output[] = '' - . $fieldsdescr[$cmd] . ''; - } - } - if (count($output) > 0) { - echo ''. "\n"; - echo ''; - echo html_tag( 'td', ''._("Mailing List").':  ', 'right', $color[0], 'valign="top" width="20%"') . "\n"; - echo html_tag( 'td', - '' . implode(' | ', $output) . '', 'left', $color[0], 'valign="top" width="80%"'); - echo "\n"; - echo '
'."\n"; - } +/** + * Show mailing list management option section on options page + */ +function plugin_listcommands_optpage_register_block() { + include_once(SM_PATH . 'plugins/listcommands/functions.php'); + plugin_listcommands_optpage_register_block_do(); } - -?>