diff options
author | alecpl <alec@alec.pl> | 2011-11-24 07:53:00 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2011-11-24 07:53:00 +0000 |
commit | 3ad2b1b4b0ac0fc7a6c7a5adaad9a0616b890daf (patch) | |
tree | b4f9d8054a99ad4e20f22a0f7068036673187657 /program/include | |
parent | c994e0e7cd9f593eb21ff80c7c1ddbeaf2a1b12a (diff) |
- Applied fixes from trunk up to r5479
Diffstat (limited to 'program/include')
-rw-r--r-- | program/include/main.inc | 12 | ||||
-rw-r--r-- | program/include/rcube_string_replacer.php | 2 | ||||
-rwxr-xr-x | program/include/rcube_template.php | 2 |
3 files changed, 10 insertions, 6 deletions
diff --git a/program/include/main.inc b/program/include/main.inc index c84e5ad6b..25940bd67 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -730,12 +730,14 @@ function asciiwords($str, $css_id = false, $replace_with = '') /** * Convert the given string into a valid HTML identifier - * Same functionality as done in app.js with this.identifier_expr - * + * Same functionality as done in app.js with rcube_webmail.html_identifier() */ -function html_identifier($str) +function html_identifier($str, $encode=false) { - return asciiwords($str, true, '_'); + if ($encode) + return rtrim(strtr(base64_encode($str), '+/', '-_'), '='); + else + return asciiwords($str, true, '_'); } /** @@ -1331,7 +1333,7 @@ function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, &$jslist, $at } // make folder name safe for ids and class names - $folder_id = html_identifier($folder['id']); + $folder_id = html_identifier($folder['id'], true); $classes = array('mailbox'); // set special class for Sent, Drafts, Trash and Junk diff --git a/program/include/rcube_string_replacer.php b/program/include/rcube_string_replacer.php index 8997ca342..1cd1ef9fe 100644 --- a/program/include/rcube_string_replacer.php +++ b/program/include/rcube_string_replacer.php @@ -39,7 +39,7 @@ class rcube_string_replacer // Support unicode/punycode in top-level domain part $utf_domain = '[^?&@"\'\\/()\s\r\t\n]+\\.([^\\x00-\\x2f\\x3b-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,})'; $url1 = '.:;,'; - $url2 = 'a-z0-9%=#@+?&\\/_~\\[\\]{}-'; + $url2 = 'a-z0-9%=#@+?!&\\/_~\\[\\]{}-'; $this->link_pattern = "/([\w]+:\/\/|\Wwww\.)($utf_domain([$url1]?[$url2]+)*)/i"; $this->mailto_pattern = "/(" diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index 11c251ac5..ea221767c 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -71,6 +71,7 @@ class rcube_template extends rcube_html_page //$this->framed = $framed; $this->set_env('task', $task); + $this->set_env('x_frame_options', $this->app->config->get('x_frame_options', 'sameorigin')); // load the correct skin (in case user-defined) $this->set_skin($this->config['skin']); @@ -915,6 +916,7 @@ class rcube_template extends rcube_html_page // make valid href to specific buttons if (in_array($attrib['command'], rcmail::$main_tasks)) { $attrib['href'] = rcmail_url(null, null, $attrib['command']); + $attrib['onclick'] = sprintf("%s.switch_task('%s');return false", JS_OBJECT_NAME, $attrib['command']); } else if ($attrib['task'] && in_array($attrib['task'], rcmail::$main_tasks)) { $attrib['href'] = rcmail_url($attrib['command'], null, $attrib['task']); |