summaryrefslogtreecommitdiff
path: root/program/include
diff options
context:
space:
mode:
Diffstat (limited to 'program/include')
-rw-r--r--program/include/main.inc15
-rw-r--r--program/include/rcube_imap.inc13
-rw-r--r--program/include/rcube_shared.inc19
3 files changed, 35 insertions, 12 deletions
diff --git a/program/include/main.inc b/program/include/main.inc
index bbfba07fc..48e485ce2 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -712,7 +712,7 @@ function show_message($message, $type='notice', $vars=NULL)
return 'this.'.$command;
else
- $OUTPUT->add_script(sprintf("%s%s.%s",
+ $OUTPUT->add_script(sprintf("%s%s.%s\n",
$framed ? sprintf('if(parent.%s)parent.', $JS_OBJECT_NAME) : '',
$JS_OBJECT_NAME,
$command));
@@ -789,6 +789,19 @@ function rcube_remote_response($js_code, $flush=FALSE)
}
+// send correctly formatted response for a request posted to an iframe
+function rcube_iframe_response($js_code='')
+ {
+ global $OUTPUT, $JS_OBJECT_NAME;
+
+ if (!empty($js_code))
+ $OUTPUT->add_script("if(parent.$JS_OBJECT_NAME){\n" . $js_code . "\n}");
+
+ $OUTPUT->write();
+ exit;
+ }
+
+
// read directory program/localization/ and return a list of available languages
function rcube_list_languages()
{
diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index dad64261e..630d2fb8b 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -1678,7 +1678,7 @@ function gethdrids($hdr)
{
$a = $this->_parse_address_list($input);
$out = array();
-
+
if (!is_array($a))
return $out;
@@ -2018,12 +2018,13 @@ function gethdrids($hdr)
{
$a = $this->_explode_quoted_string(',', $str);
$result = array();
-
+
foreach ($a as $key => $val)
{
$val = str_replace("\"<", "\" <", $val);
- $sub_a = $this->_explode_quoted_string(' ', $val);
-
+ $sub_a = $this->_explode_quoted_string(' ', $this->decode_header($val));
+ $result[$key]['name'] = '';
+
foreach ($sub_a as $k => $v)
{
if ((strpos($v, '@') > 0) && (strpos($v, '.') > 0))
@@ -2033,9 +2034,7 @@ function gethdrids($hdr)
}
if (empty($result[$key]['name']))
- $result[$key]['name'] = $result[$key]['address'];
-
- $result[$key]['name'] = $this->decode_header($result[$key]['name']);
+ $result[$key]['name'] = $result[$key]['address'];
}
return $result;
diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc
index 8f4efdb07..eab175b65 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/rcube_shared.inc
@@ -33,6 +33,7 @@ class rcube_html_page
var $script_tag_file = "<script type=\"text/javascript\" src=\"%s%s\"></script>\n";
var $script_tag = "<script type=\"text/javascript\">\n<!--\n%s\n\n//-->\n</script>\n";
+ var $default_template = "<html>\n<body></body>\n</html>";
var $title = '';
var $header = '';
@@ -78,11 +79,12 @@ class rcube_html_page
}
- function set_title()
+ function set_title($t)
{
-
+ $this->title = $t;
}
+
function set_charset($charset)
{
global $MBSTRING;
@@ -95,16 +97,25 @@ class rcube_html_page
$MBSTRING = FALSE;
}
}
-
+
function get_charset()
{
return $this->charset;
}
+ function reset()
+ {
+ $this->css = new rcube_css();
+ $this->script_files = array();
+ $this->scripts = array();
+ $this->title = '';
+ }
+
+
function write($templ='', $base_path='')
{
- $output = trim($templ);
+ $output = empty($templ) ? $this->default_template : trim($templ);
// set default page title
if (!strlen($this->title))