X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fattachment_common.php;h=871a1344020237fb85e94137a54c937af9c36355;hb=f8a1ed5aa365d515e4e2ac3602f900bfb9447fce;hp=23278b17a5f9fb7f5a20224cd3580156174e158d;hpb=6c84ba1ec45ab854c37b6f65c5b4d84ab1c7aad4;p=squirrelmail.git diff --git a/functions/attachment_common.php b/functions/attachment_common.php index 23278b17..871a1344 100644 --- a/functions/attachment_common.php +++ b/functions/attachment_common.php @@ -10,12 +10,16 @@ * * @version $Id$ * @package squirrelmail + * @todo document attachment $type hook arguments */ -/** - * FIXME Needs phpDocumentator style 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(); @@ -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,15 +81,24 @@ 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; } - +/** + * 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. @@ -100,7 +112,8 @@ function attachment_common_link_text(&$Args) { $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]); @@ -119,8 +132,13 @@ function attachment_common_link_text(&$Args) { $Args[6] = $Args[1]['attachment_common']['href']; } +/** + * 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'] = SM_PATH . 'src/read_body.php?startMessage=' . + $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'; @@ -129,12 +147,17 @@ function attachment_common_link_message(&$Args) { $Args[6] = $Args[1]['attachment_common']['href']; } - +/** + * 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'], @@ -145,6 +168,11 @@ function attachment_common_link_html(&$Args) { $Args[6] = $Args[1]['attachment_common']['href']; } +/** + * 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; @@ -156,7 +184,7 @@ 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]); @@ -166,11 +194,15 @@ function attachment_common_link_image(&$Args) { $Args[6] = $Args[1]['attachment_common']['href']; } - +/** + * 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]); @@ -180,7 +212,12 @@ function attachment_common_link_vcard(&$Args) { $Args[6] = $Args[1]['attachment_common']['href']; } - +/** + * 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;