From e2ab93e54b0576afcc455883e256862fa939c79c Mon Sep 17 00:00:00 2001 From: fidian Date: Wed, 7 Mar 2001 18:25:36 +0000 Subject: [PATCH] * Added code to show text/html messages (immediately after text/plain and entity_id of 2) as default instead of the text/plain version. * Made option default to off git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1172 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- data/default_pref | 1 + functions/mime.php | 55 ++++++++++++++++++++++++++++++----------- src/load_prefs.php | 2 ++ src/options.php | 4 +++ src/options_display.php | 13 ++++++++++ 5 files changed, 60 insertions(+), 15 deletions(-) diff --git a/data/default_pref b/data/default_pref index cc40cad8..1337b528 100644 --- a/data/default_pref +++ b/data/default_pref @@ -1,3 +1,4 @@ full_name= reply_to= chosen_theme=../config/default_theme.php +show_html_default=0 diff --git a/functions/mime.php b/functions/mime.php index 53ae552c..f5d4b258 100644 --- a/functions/mime.php +++ b/functions/mime.php @@ -479,21 +479,46 @@ // figures out what entity to display and returns the $message object // for that entity. - function findDisplayEntity ($message) { - if ($message) { - if ($message->header->type0 == "text") { - if ($message->header->type1 == "plain" || - $message->header->type1 == "html") { - if (isset($message->header->entity_id)) - return $message->header->entity_id; - return 0; - } - } else { - for ($i=0; $message->entities[$i]; $i++) { - return findDisplayEntity($message->entities[$i]); - } - } - } + function findDisplayEntity ($message, $next = 'none') + { + global $show_html_default; + + if (! $message) + return; + + // Show text/plain or text/html -- the first one we find. + if ($message->header->type0 == 'text' && + ($message->header->type1 == 'plain' || + $message->header->type2 == 'html')) + { + // If the next part is an HTML version, this will + // all be true. Show it, if the user so desires. + // HTML mails this way all have entity_id of 2. 1 = text/plain + if ($next != 'none' && + $next->header->type0 == "text" && + $next->header->type1 == "html" && + $next->header->entity_id == 2 && + $message->header->type1 == "plain" && + isset($show_html_default) && + $show_html_default) + $message = $next; + + if (isset($message->header->entity_id)) + return $message->header->entity_id; + } + else + { + for ($i=0; $message->entities[$i]; $i++) + { + $next = 'none'; + if (isset($message->entities[$i + 1])) + $next = $message->entities[$i + 1]; + $entity = findDisplayEntity($message->entities[$i], $next); + if ($entity != 0) + return $entity; + } + } + return 0; } /** This returns a parsed string called $body. That string can then diff --git a/src/load_prefs.php b/src/load_prefs.php index 6778427a..844ce3a6 100644 --- a/src/load_prefs.php +++ b/src/load_prefs.php @@ -188,6 +188,8 @@ $location_of_buttons = 'between'; $collapse_folders = getPref($data_dir, $username, 'collapse_folders'); + + $show_html_default = getPref($data_dir, $username, 'show_html_default'); do_hook("loading_prefs"); diff --git a/src/options.php b/src/options.php index 92ad9701..43a5ce6f 100644 --- a/src/options.php +++ b/src/options.php @@ -71,6 +71,10 @@ setPref($data_dir, $username, 'location_of_buttons', $button_new_location); setPref($data_dir, $username, 'left_size', $leftsize); setPref($data_dir, $username, 'use_javascript_addr_book', $javascript_abook); + if (isset($showhtmldefault)) + setPref($data_dir, $username, 'show_html_default', 1); + else + removePref($data_dir, $username, 'show_html_default'); do_hook('options_display_save'); diff --git a/src/options_display.php b/src/options_display.php index 259655b5..dae18568 100644 --- a/src/options_display.php +++ b/src/options_display.php @@ -293,6 +293,19 @@ ?> + + + : + + + > + + +   -- 2.25.1