diff options
Diffstat (limited to 'program/include')
-rw-r--r-- | program/include/main.inc | 15 | ||||
-rw-r--r-- | program/include/rcube_imap.inc | 13 | ||||
-rw-r--r-- | program/include/rcube_shared.inc | 19 |
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)) |