X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Flistcommands%2Fsetup.php;h=a6c0baaa868a6bc644d8d5687b8826b9395f2ed0;hp=310772979e2cf6648866d02c149b1e55dcac0578;hb=0bde8324cf275fd572ccf0ca66c2ddb98ad62798;hpb=73ee43b174ceb16e6143d0c8feb512e53eee3042 diff --git a/plugins/listcommands/setup.php b/plugins/listcommands/setup.php index 31077297..a6c0baaa 100644 --- a/plugins/listcommands/setup.php +++ b/plugins/listcommands/setup.php @@ -1,105 +1,114 @@ - * + * $Id$ */ -function squirrelmail_plugin_init_listcommands () -{ + +function squirrelmail_plugin_init_listcommands () { global $squirrelmail_plugin_hooks; $squirrelmail_plugin_hooks['read_body_header']['listcommands'] = 'plugin_listcommands_menu'; } +function plugin_listcommands_menu() { + global $imapConnection, $passed_id, $color, $mailbox, + $subject, $ent_num, $priority_level; -function plugin_listcommands_menu () { - - global $imapConnection, $passed_id, $color, $mailbox, $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. + /** + * 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( 'Help' => _("Help"), - 'Unsubscribe' => _("Unsubscribe"), - 'Subscribe' => _("Subscribe"), - 'Post' => _("Post to the list"), - 'Archive' => _("List Archives"), - 'Owner' => _("Contact Listowner") ); - $fields = array_keys ($fieldsdescr); - $fieldsdescr['Reply'] = 'Reply to the list'; - - $cmds = array(); + $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(); 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) ) - { - $cmds[$field] = $match[1]; + $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]; } } } - foreach ($cmds as $cmd => $url) - { - if ( eregi('mailto:(.+)', $url, $regs) ) - { + 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' ) - { + + if (($cmd == 'Post') || ($cmd == 'Owner')) { $url = 'compose.php?'; - } - else - { - $url = '../plugins/listcommands/mailout.php?action=' . $cmd . '&'; + } else { + $url = "../plugins/listcommands/mailout.php?action=$cmd&"; } - $url .= 'mailbox=' . urlencode($mailbox) . '&send_to=' . $purl['path']; - - if ( isset($purl['query']) ) - { + $url .= 'mailbox=' . urlencode($mailbox) + . '&send_to=' . $purl['path']; + + if (isset($purl['query'])) { $url .= '&' . $purl['query']; } $output[] = '' . $fieldsdescr[$cmd] . ''; - if ( $cmd == 'Post' ) - { - $url .= '&reply_subj=' . urlencode($subject) . '&reply_id=' . $passed_id; + if ($cmd == 'Post') { + $url .= '&reply_subj=' . urlencode($subject) + . '&reply_id=' . $passed_id + . '&ent_num=' . $ent_num + . '&mailprio=' . $priority_level; $output[] = '' . $fieldsdescr['Reply'] . ''; } + } else if (eregi('^(http|ftp)', $url)) { + $output[] = '' + . $fieldsdescr[$cmd] . ''; } - elseif ( eregi('^(http|ftp)', $url) ) - { - $output[] = '' . $fieldsdescr[$cmd] . ''; - } - - } - if (count($output) > 0) { - echo "". - '' . _("Mailinglist options:") . ' ' . implode (' | ', $output) . - ''. - ''; + echo ""; + echo "" + . str_replace(' ', ' ', _("Mailing List:")) + . ''; + echo "" + . '' . implode(' | ', $output) . '' + . ''; + echo ''; } - -} -?> \ No newline at end of file +} + +?>