diff options
Diffstat (limited to 'program/lib/Roundcube')
-rw-r--r-- | program/lib/Roundcube/rcube_message.php | 12 | ||||
-rw-r--r-- | program/lib/Roundcube/rcube_plugin.php | 9 |
2 files changed, 15 insertions, 6 deletions
diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php index 0d33ba411..3644d6b8e 100644 --- a/program/lib/Roundcube/rcube_message.php +++ b/program/lib/Roundcube/rcube_message.php @@ -222,6 +222,7 @@ class rcube_message // part body not fetched yet... save in memory if it's small enough if ($part->body === null && is_numeric($mime_id) && $part->size < self::BODY_MAX_SIZE) { + $this->storage->set_folder($this->folder); // Warning: body here should be always unformatted $part->body = $this->storage->get_message_part($this->uid, $mime_id, $part, null, null, true, 0, false); @@ -263,17 +264,18 @@ class rcube_message $this->storage->set_folder($this->folder); $body = $this->storage->get_message_part($this->uid, $mime_id, $part, - $mode === -1, is_resource($mode) ? $mode : null, !$formatted, $max_bytes, $formatted); - - if (!$mode && $body && $formatted) { - $body = self::format_part_body($body, $part, $this->headers->charset); - } + $mode === -1, is_resource($mode) ? $mode : null, + !($mode && $formatted), $max_bytes, $mode && $formatted); if (is_resource($mode)) { rewind($mode); return $body !== false; } + if (!$mode && $body && $formatted) { + $body = self::format_part_body($body, $part, $this->headers->charset); + } + return $body; } diff --git a/program/lib/Roundcube/rcube_plugin.php b/program/lib/Roundcube/rcube_plugin.php index 9c7a9c2dc..e240448a2 100644 --- a/program/lib/Roundcube/rcube_plugin.php +++ b/program/lib/Roundcube/rcube_plugin.php @@ -71,6 +71,7 @@ abstract class rcube_plugin protected $home; protected $urlbase; private $mytask; + private $loaded_config = array(); /** @@ -141,6 +142,12 @@ abstract class rcube_plugin */ public function load_config($fname = 'config.inc.php') { + if (in_array($fname, $this->loaded_config)) { + return true; + } + + $this->loaded_config[] = $fname; + $fpath = $this->home.'/'.$fname; $rcube = rcube::get_instance(); @@ -415,7 +422,7 @@ abstract class rcube_plugin $rcube = rcube::get_instance(); $skins = array_keys((array)$rcube->output->skins); if (empty($skins)) { - $skins = array($rcube->config->get('skin')); + $skins = (array) $rcube->config->get('skin'); } foreach ($skins as $skin) { $skin_path = 'skins/' . $skin; |