summaryrefslogtreecommitdiff
path: root/program/lib
diff options
context:
space:
mode:
Diffstat (limited to 'program/lib')
-rw-r--r--program/lib/Roundcube/rcube_message.php12
-rw-r--r--program/lib/Roundcube/rcube_plugin.php9
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;