Fix listcommands plugin to behave like normal reply/compose links, and
[squirrelmail.git] / plugins / listcommands / mailout.php
index 6f608f26a590772a65841622d0fdbf588d3448e0..c39f1d9d3cbdd155ce9d446ea083a2f0de113071 100644 (file)
@@ -2,20 +2,34 @@
 /**
  * mailout.php
  *
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Copyright (c) 1999-2005 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * $Id$
+ * @package plugins
+ * @subpackage listcommands
  */
 
-chdir('..');
-include_once ('../src/validate.php');
-include_once ('../functions/page_header.php');
-include_once ('../src/load_prefs.php');
-include_once('../functions/html.php');
+/** @ignore */
+define('SM_PATH','../../');
+
+/* SquirrelMail required files. */
+require_once(SM_PATH . 'include/validate.php');
+include_once(SM_PATH . 'functions/page_header.php');
+include_once(SM_PATH . 'include/load_prefs.php');
+include_once(SM_PATH . 'functions/html.php');
+require_once(SM_PATH . 'functions/identity.php');
+require_once(SM_PATH . 'functions/forms.php');
 
 displayPageHeader($color, $mailbox);
 
+/* get globals */
+sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
+sqgetGlobalVar('send_to', $send_to, SQ_GET);
+sqgetGlobalVar('subject', $subject, SQ_GET);
+sqgetGlobalVar('body',    $body,    SQ_GET);
+sqgetGlobalVar('action',  $action,  SQ_GET);
+
 echo html_tag('p', '', 'left' ) .
 html_tag( 'table', '', 'center', $color[0], 'border="0" width="75%"' ) . "\n" .
     html_tag( 'tr',
@@ -25,61 +39,44 @@ html_tag( 'table', '', 'center', $color[0], 'border="0" width="75%"' ) . "\n" .
     html_tag( 'td', '', 'left' );
 
 switch ( $action ) {
-case 'Help':
+case 'help':
     $out_string = _("This will send a message to %s requesting help for this list. You will receive an emailed response at the address below.");
     break;
-case 'Subscribe':
+case 'subscribe':
     $out_string = _("This will send a message to %s requesting that you will be subscribed to this list. You will be subscribed with the address below.");
     break;
-case 'Unsubscribe':
+case 'unsubscribe':
     $out_string = _("This will send a message to %s requesting that you will be unsubscribed from this list. It will try to unsubscribe the adress below.");
 }
 
 printf( $out_string, htmlspecialchars($send_to) );
 
-echo '<form method="post" action="../../src/compose.php">';
+echo addForm('../../src/compose.php', 'post');
 
-/*
- * Identity support (RFC 2369 sect. B.1.)
- *
- * I had to copy this from compose.php because there doesn't
- * seem to exist a function to get the identities.
- */
 
-$defaultmail = htmlspecialchars(getPref($data_dir, $username, 'full_name'));
-$em = getPref($data_dir, $username, 'email_address');
-if ($em != '') {
-    $defaultmail .= htmlspecialchars(' <' . $em . '>') . "\n";
-}
+$idents = get_identities();
+
 echo html_tag('p', '', 'center' ) . _("From:") . ' ';
 
-$idents = getPref($data_dir, $username, 'identities');
-if ($idents != '' && $idents > 1) {
-    echo ' <select name="identity">' . "\n" .
-         '<option value="default">' . $defaultmail;
-    for ($i = 1; $i < $idents; $i ++) {
-        echo '<option value="' . $i . '"';
-        if (isset($identity) && $identity == $i) {
-            echo ' selected';
-        }
-        echo '>' . htmlspecialchars(getPref($data_dir, $username,
-                                                'full_name' . $i));
-        $em = getPref($data_dir, $username, 'email_address' . $i);
-        if ($em != '') {
-            echo htmlspecialchars(' <' . $em . '>') . "\n";
-        }
+if (count($idents) > 1) {
+    echo '<select name="identity">';
+    foreach($idents as $nr=>$data) {
+        echo '<option value="' . $nr . '">' .
+            htmlspecialchars(
+                $data['full_name'].' <'.
+                $data['email_address'] . ">\n");
     }
     echo '</select>' . "\n" ;
-
 } else {
-    echo $defaultmail;
+    echo htmlspecialchars('"'.$idents[0]['full_name'].'" <'.$idents[0]['email_address'].'>');
 }
 
-echo '<br>'
-. '<input type=hidden name="send_to" value="' . htmlspecialchars($send_to) . '">'
-. '<input type=hidden name="subject" value="' . htmlspecialchars($subject) . '">'
-. '<input type=hidden name="body" value="' . htmlspecialchars($body) . '">'
-. '<input type=hidden name="mailbox" value="' . htmlspecialchars($mailbox) . '">'
-. '<input type=submit name="send" value="' . _("Send Mail") . '"><BR><BR></CENTER>'
-. '</form></TD></TR></TABLE></P></BODY></HTML>';
-?>
+echo '<br />'
+. addHidden('send_to', $send_to)
+. addHidden('subject', $subject)
+. addHidden('body', $body)
+. addHidden('mailbox', $mailbox)
+. addSubmit(_("Send Mail"), 'send')
+. '<br /><br /></center>'
+. '</form></td></tr></table></p></body></html>';
+?>
\ No newline at end of file