Trimming whitespace and replacing tabs
[squirrelmail.git] / functions / attachment_common.php
index 65bfba0d8615ebdb85da8a77a62bf3d8a56695ca..871a1344020237fb85e94137a54c937af9c36355 100644 (file)
@@ -3,19 +3,23 @@
 /**
  * attachment_common.php
  *
- * Copyright (c) 1999-2004 The SquirrelMail Project Team
+ * Copyright (c) 1999-2005 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * This file provides the handling of often-used attachment types.
  *
  * @version $Id$
  * @package squirrelmail
+ * @todo document attachment $type hook arguments
  */
 
-/**
- * Needs documentation
- */
-require_once(SM_PATH . 'functions/global.php');
+/** @ignore */
+if (! defined('SM_PATH')) define('SM_PATH','../');
+
+/** sqgetGlobalVar() */
+include_once(SM_PATH . 'functions/global.php');
+/** sqm_baseuri() */
+include_once(SM_PATH . 'functions/display_messages.php');
 
 global $attachment_common_show_images_list;
 $attachment_common_show_images_list = array();
@@ -31,6 +35,7 @@ $FileExtensionToMimeType = array('bmp'  => 'image/x-bitmap',
                                  'png'  => 'image/png',
                                  'rtf'  => 'text/richtext',
                                  'txt'  => 'text/plain',
+                                 'patch'=> 'text/plain',
                                  'vcf'  => 'text/x-vcard');
 
 /* Register browser-supported image types */
@@ -56,7 +61,6 @@ if (isset($attachment_common_types)) {
 }
 
 /* Register text-type attachments */
-//register_attachment_common('message/rfc822', 'link_text');
 register_attachment_common('message/rfc822', 'link_message');
 register_attachment_common('text/plain',     'link_text');
 register_attachment_common('text/richtext',  'link_text');
@@ -64,7 +68,6 @@ register_attachment_common('text/richtext',  'link_text');
 /* Register HTML */
 register_attachment_common('text/html',      'link_html');
 
-
 /* Register vcards */
 register_attachment_common('text/x-vcard',   'link_vcard');
 register_attachment_common('text/directory', 'link_vcard');
@@ -78,39 +81,45 @@ register_attachment_common('message/*',  'link_text');
 register_attachment_common('application/octet-stream', 'octet_stream');
 
 
-/* Function which optimizes readability of the above code */
-
+/**
+ * Function which optimizes readability of the above code
+ * Registers 'attachment $type' hooks.
+ * @param string $type attachment type
+ * @param string $func suffix of attachment_common_* function, which handles $type attachments.
+ * @since 1.2.0
+ */
 function register_attachment_common($type, $func) {
     global $squirrelmail_plugin_hooks;
     $squirrelmail_plugin_hooks['attachment ' . $type]['attachment_common'] =
                       'attachment_common_' . $func;
 }
 
-
-function attachment_common_link_text(&$Args)
-{
-    /* If there is a text attachment, we would like to create a 'view' button
+/**
+ * Adds href and text keys to attachment_common array for text attachments
+ * @param array $Args attachment $type hook arguments
+ * @since 1.2.0
+ */
+function attachment_common_link_text(&$Args) {
+    /* If there is a text attachment, we would like to create a "View" button
        that links to the text attachment viewer.
 
        $Args[1] = the array of actions
 
-       Use our plugin name for adding an action
-       $Args[1]['attachment_common'] = array for href and text
+       Use the name of this file for adding an action
+       $Args[1]['attachment_common'] = Array for href and text
 
        $Args[1]['attachment_common']['text'] = What is displayed
-       $Args[1]['attachment_common']['href'] = Where it links to
-
-       This sets the 'href' of this plugin for a new link. */
+       $Args[1]['attachment_common']['href'] = Where it links to */
     sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
 
-    $Args[1]['attachment_common']['href'] = SM_PATH . 'src/view_text.php?'. $QUERY_STRING;
+    // if htmlspecialchars() breaks something - find other way to encode & in url.
+    $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/view_text.php?'. htmlspecialchars($QUERY_STRING);
     $Args[1]['attachment_common']['href'] =
           set_url_var($Args[1]['attachment_common']['href'],
-         'ent_id',$Args[5]);
+          'ent_id',$Args[5]);
 
-    /* The link that we created needs a name.  "view" will be displayed for
-       all text attachments handled by this plugin. */
-    $Args[1]['attachment_common']['text'] = _("view");
+    /* The link that we created needs a name. */
+    $Args[1]['attachment_common']['text'] = _("View");
 
     /* Each attachment has a filename on the left, which is a link.
        Where that link points to can be changed.  Just in case the link above
@@ -123,38 +132,49 @@ function attachment_common_link_text(&$Args)
     $Args[6] = $Args[1]['attachment_common']['href'];
 }
 
-function attachment_common_link_message(&$Args)
-{
-    $Args[1]['attachment_common']['href'] = SM_PATH . 'src/read_body.php?startMessage=' .
+/**
+ * Adds href and text keys to attachment_common array for rfc822 attachments
+ * @param array $Args attachment $type hook arguments
+ * @since 1.2.6
+ */
+function attachment_common_link_message(&$Args) {
+    $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/read_body.php?startMessage=' .
         $Args[2] . '&passed_id=' . $Args[3] . '&mailbox=' . $Args[4] .
         '&passed_ent_id=' . $Args[5] . '&override_type0=message&override_type1=rfc822';
-    /* The link that we created needs a name.  "view" will be displayed for
-       all text attachments handled by this plugin. */
-    $Args[1]['attachment_common']['text'] = _("view");
+
+    $Args[1]['attachment_common']['text'] = _("View");
 
     $Args[6] = $Args[1]['attachment_common']['href'];
 }
 
-
-function attachment_common_link_html(&$Args)
-{
+/**
+ * Adds href and text keys to attachment_common array for html attachments
+ * @param array $Args attachment $type hook arguments
+ * @since 1.2.0
+ */
+function attachment_common_link_html(&$Args) {
     sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
 
-    $Args[1]['attachment_common']['href'] = SM_PATH . 'src/view_text.php?'. $QUERY_STRING.
-       /* why use the overridetype? can this be removed */
+    $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/view_text.php?'. htmlspecialchars($QUERY_STRING).
+        /* why use the overridetype? can this be removed */
+        /* override_type might be needed only when we want view other type of messages as html */
        '&override_type0=text&override_type1=html';
     $Args[1]['attachment_common']['href'] =
           set_url_var($Args[1]['attachment_common']['href'],
-         'ent_id',$Args[5]);
+          'ent_id',$Args[5]);
 
-    $Args[1]['attachment_common']['text'] = _("view");
+    $Args[1]['attachment_common']['text'] = _("View");
 
     $Args[6] = $Args[1]['attachment_common']['href'];
 }
 
-function attachment_common_link_image(&$Args)
-{
-    global $attachment_common_show_images, $attachment_common_show_images_list;
+/**
+ * Adds href and text keys to attachment_common array for image attachments
+ * @param array $Args attachment $type hook arguments
+ * @since 1.2.0
+ */
+function attachment_common_link_image(&$Args) {
+    global $attachment_common_show_images_list;
 
     sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
 
@@ -164,35 +184,41 @@ function attachment_common_link_image(&$Args)
 
     $attachment_common_show_images_list[] = $info;
 
-    $Args[1]['attachment_common']['href'] = SM_PATH . 'src/image.php?'. $QUERY_STRING;
+    $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/image.php?'. htmlspecialchars($QUERY_STRING);
     $Args[1]['attachment_common']['href'] =
           set_url_var($Args[1]['attachment_common']['href'],
-         'ent_id',$Args[5]);
+          'ent_id',$Args[5]);
 
-    $Args[1]['attachment_common']['text'] = _("view");
+    $Args[1]['attachment_common']['text'] = _("View");
 
     $Args[6] = $Args[1]['attachment_common']['href'];
-
 }
 
-
-function attachment_common_link_vcard(&$Args)
-{
+/**
+ * Adds href and text keys to attachment_common array for vcard attachments
+ * @param array $Args attachment $type hook arguments
+ * @since 1.2.0
+ */
+function attachment_common_link_vcard(&$Args) {
     sqgetGlobalVar('QUERY_STRING', $QUERY_STRING, SQ_SERVER);
 
-    $Args[1]['attachment_common']['href'] = SM_PATH . 'src/vcard.php?'. $QUERY_STRING;
+    $Args[1]['attachment_common']['href'] = sqm_baseuri() . 'src/vcard.php?'. htmlspecialchars($QUERY_STRING);
     $Args[1]['attachment_common']['href'] =
           set_url_var($Args[1]['attachment_common']['href'],
-         'ent_id',$Args[5]);
+          'ent_id',$Args[5]);
 
-    $Args[1]['attachment_common']['text'] = _("Business Card");
+    $Args[1]['attachment_common']['text'] = _("View Business Card");
 
     $Args[6] = $Args[1]['attachment_common']['href'];
 }
 
-
-function attachment_common_octet_stream(&$Args)
-{
+/**
+ * Processes octet-stream attachments.
+ * Calls attachment_common-load_mime_types and attachment $type hooks.
+ * @param array $Args attachment $type hook arguments
+ * @since 1.2.0
+ */
+function attachment_common_octet_stream(&$Args) {
     global $FileExtensionToMimeType;
 
     do_hook('attachment_common-load_mime_types');