add fixme
[squirrelmail.git] / plugins / spamcop / functions.php
index 2a78c79..590785c 100644 (file)
@@ -1,8 +1,9 @@
 <?php
+
 /**
  * SpamCop plugin - functions
  *
- * @copyright (c) 1999-2005 The SquirrelMail Project Team
+ * @copyright &copy; 1999-2007 The SquirrelMail Project Team
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package plugins
@@ -58,8 +59,8 @@ function spamcop_load_function() {
  * @since 1.5.1
  * @access private
  */
-function spamcop_show_link_function() {
-    global $spamcop_enabled, $spamcop_method, $spamcop_quick_report,$javascript_on;
+function spamcop_show_link_function(&$links) {
+    global $spamcop_enabled, $spamcop_method, $spamcop_quick_report;
 
     if (! $spamcop_enabled)
         return;
@@ -78,8 +79,6 @@ function spamcop_show_link_function() {
         $passed_ent_id = 0;
     }
 
-    echo "<br />\n";
-
     /*
        Catch situation when user uses quick_email and does not update
        preferences. User gets web_form link. If prefs are set to
@@ -89,19 +88,24 @@ function spamcop_show_link_function() {
         $spamcop_method = 'web_form';
     }
 
-    // Javascript is used only in web based reporting
-    // don't insert javascript if javascript is disabled
-    if ($spamcop_method == 'web_form' && $javascript_on) {
-?><script language="javascript" type="text/javascript">
-document.write('<a href="../plugins/spamcop/spamcop.php?passed_id=<?php echo urlencode($passed_id); ?>&amp;js_web=1&amp;mailbox=<?php echo urlencode($mailbox); ?>&amp;passed_ent_id=<?php echo urlencode($passed_ent_id); ?>" target="_blank">');
-document.write("<?php echo _("Report as Spam"); ?>");
-document.write("</a>");
-</script><?php
-    } else {
-?><a href="../plugins/spamcop/spamcop.php?passed_id=<?php echo urlencode($passed_id); ?>&amp;mailbox=<?php echo urlencode($mailbox); ?>&amp;startMessage=<?php echo urlencode($startMessage); ?>&amp;passed_ent_id=<?php echo urlencode($passed_ent_id); ?>">
-<?php echo _("Report as Spam"); ?></a>
-<?php
+// FIXME: do we need this javascript and if so, fix it
+// <script type="text/javascript">
+// document.write('<a href="../plugins/spamcop/spamcop.php?passed_id=<php echo urlencode($passed_id); >&amp;js_web=1&amp;mailbox=<php echo urlencode($mailbox); >&amp;passed_ent_id=<php echo urlencode($passed_ent_id); >" target="_blank">');
+//document.write("<php echo _("Report as Spam"); >");
+//document.write("</a>");
+//</script>
+
+
+    $url =  '../plugins/spamcop/spamcop.php?passed_id=' . urlencode($passed_id) .
+                '&amp;mailbox=' . urlencode($mailbox) . '&amp;startMessage=' . urlencode($startMessage) .
+                '&amp;passed_ent_id=' . urlencode($passed_ent_id);
+    if ( $spamcop_method == 'web_form' && checkForJavascript() ) {
+        $url .= '&amp;js_web=1';
     }
+
+    $links[] = array ( 'URL' => $url,
+        'Text' => _("Report as Spam")
+    );
 }
 
 /**
@@ -130,13 +134,12 @@ function spamcop_options_function() {
  */
 function spamcop_while_sending_function() {
     global $mailbox, $spamcop_delete, $spamcop_save, $spamcop_is_composing, $auto_expunge,
-           $username, $key, $imapServerAddress, $imapPort;
+           $username, $imapServerAddress, $imapPort;
 
     if (sqgetGlobalVar('spamcop_is_composing' , $spamcop_is_composing)) {
         // delete spam message
         if ($spamcop_delete) {
-            $imapConnection = sqimap_login($username, $key, $imapServerAddress,
-                $imapPort, 0);
+            $imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, 0);
             sqimap_mailbox_select($imapConnection, $mailbox);
             sqimap_msgs_list_delete($imapConnection, $mailbox, array($spamcop_is_composing));
             if ($auto_expunge)
@@ -173,12 +176,11 @@ function spamcop_enable_disable($option,$disable_action,$enable_action) {
 /**
  * Stores message in attachment directory, when email based reports are used
  * @access private
+ * @todo Duplicate code in src/compose.php
  */
-function getMessage_RFC822_Attachment($message, $composeMessage, $passed_id,
+function spamcop_getMessage_RFC822_Attachment($message, $composeMessage, $passed_id,
                                       $passed_ent_id='', $imapConnection) {
-    global $attachment_dir, $username;
 
-    $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
     if (!$passed_ent_id) {
         $body_a = sqimap_run_command($imapConnection,
                                     'FETCH '.$passed_id.' RFC822',
@@ -194,22 +196,12 @@ function getMessage_RFC822_Attachment($message, $composeMessage, $passed_id,
         array_shift($body_a);
         $body = implode('', $body_a) . "\r\n";
 
-        $localfilename = GenerateRandomString(32, 'FILE', 7);
-        $full_localfilename = "$hashed_attachment_dir/$localfilename";
-        $fp = fopen( $full_localfilename, 'w');
+        $filename = sq_get_attach_tempfile();
+        $fp = fopen($filename, 'wb');
         fwrite ($fp, $body);
         fclose($fp);
-
-        /* dirty relative dir fix */
-        if (substr($attachment_dir,0,3) == '../') {
-           $attachment_dir = substr($attachment_dir,3);
-           $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
-        }
-        $full_localfilename = "$hashed_attachment_dir/$localfilename";
-
         $composeMessage->initAttachment('message/rfc822','email.txt',
-                         $full_localfilename);
+                         $filename);
     }
     return $composeMessage;
 }
-?>
\ No newline at end of file