X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Flistcommands%2Fsetup.php;h=a6c0baaa868a6bc644d8d5687b8826b9395f2ed0;hp=7aef8d7f45789164bc95c5b36a47704370fa7613;hb=a8380e75f951c6915dba43505e94df50af6ea3cb;hpb=519f07d7fc7262e197187dafaa2ab694c90dfe3c diff --git a/plugins/listcommands/setup.php b/plugins/listcommands/setup.php index 7aef8d7f..a6c0baaa 100644 --- a/plugins/listcommands/setup.php +++ b/plugins/listcommands/setup.php @@ -20,76 +20,95 @@ function squirrelmail_plugin_init_listcommands () { $squirrelmail_plugin_hooks['read_body_header']['listcommands'] = 'plugin_listcommands_menu'; } - -function plugin_listcommands_menu () { - +function plugin_listcommands_menu() { global $imapConnection, $passed_id, $color, $mailbox, $subject, $ent_num, $priority_level; - /* 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); + $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]; + $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) ) { + 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 . '&'; + $url = "../plugins/listcommands/mailout.php?action=$cmd&"; } - $url .= 'mailbox=' . urlencode($mailbox) . '&send_to=' . $purl['path']; + $url .= 'mailbox=' . urlencode($mailbox) + . '&send_to=' . $purl['path']; - if ( isset($purl['query']) ) { + if (isset($purl['query'])) { $url .= '&' . $purl['query']; } $output[] = '' . $fieldsdescr[$cmd] . ''; - if ( $cmd == 'Post' ) { - $url .= '&reply_subj=' . urlencode($subject) . - '&reply_id=' . $passed_id . - '&ent_num=' . $ent_num . - '&mailprio=' . $priority_level; + if ($cmd == 'Post') { + $url .= '&reply_subj=' . urlencode($subject) + . '&reply_id=' . $passed_id + . '&ent_num=' . $ent_num + . '&mailprio=' . $priority_level; $output[] = '' . $fieldsdescr['Reply'] . ''; } - } elseif ( eregi('^(http|ftp)', $url) ) { - $output[] = '' . $fieldsdescr[$cmd] . ''; + } else if (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 + +?>