summaryrefslogtreecommitdiff
path: root/program/include
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-11-24 07:53:00 +0000
committeralecpl <alec@alec.pl>2011-11-24 07:53:00 +0000
commit3ad2b1b4b0ac0fc7a6c7a5adaad9a0616b890daf (patch)
treeb4f9d8054a99ad4e20f22a0f7068036673187657 /program/include
parentc994e0e7cd9f593eb21ff80c7c1ddbeaf2a1b12a (diff)
- Applied fixes from trunk up to r5479
Diffstat (limited to 'program/include')
-rw-r--r--program/include/main.inc12
-rw-r--r--program/include/rcube_string_replacer.php2
-rwxr-xr-xprogram/include/rcube_template.php2
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']);