Fix listcommands plugin to behave like normal reply/compose links, and
[squirrelmail.git] / plugins / listcommands / mailout.php
index 7e44bdd7982f129ebfe1d06c272e2d516765a94c..c39f1d9d3cbdd155ce9d446ea083a2f0de113071 100644 (file)
@@ -2,12 +2,15 @@
 /**
  * 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
  */
 
+/** @ignore */
 define('SM_PATH','../../');
 
 /* SquirrelMail required files. */
@@ -15,15 +18,17 @@ 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 */
-$mailbox = $_GET['mailbox'];
-$send_to = $_GET['send_to'];
-$subject = $_GET['subject'];
-$body    = $_GET['body'];
-$action  = $_GET['action'];
+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" .
@@ -46,49 +51,32 @@ case 'unsubscribe':
 
 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