From e83f035887e3a463568465673ae92f365788c2a5 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Sat, 29 Aug 2009 14:41:17 -0400 Subject: [PATCH] - Fix LDAP contact update when RDN field is changed (#1485788) --- program/include/rcube_html_page.php | 34 ++++++++++++++++++++++++---------- 1 files changed, 24 insertions(+), 10 deletions(-) diff --git a/program/include/rcube_html_page.php b/program/include/rcube_html_page.php index 42036f6..6a19703 100644 --- a/program/include/rcube_html_page.php +++ b/program/include/rcube_html_page.php @@ -5,7 +5,7 @@ | program/include/rcube_html_page.php | | | | This file is part of the RoundCube PHP suite | - | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland | + | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | | CONTENTS: | @@ -28,14 +28,12 @@ { protected $scripts_path = ''; protected $script_files = array(); - protected $external_scripts = array(); protected $scripts = array(); - protected $charset = 'UTF-8'; + protected $charset = RCMAIL_CHARSET; - protected $script_tag_file = "<script type=\"text/javascript\" src=\"%s%s\"></script>\n"; - protected $script_tag = "<script type=\"text/javascript\">\n<!--\n%s\n\n//-->\n</script>\n"; + protected $script_tag_file = "<script type=\"text/javascript\" src=\"%s\"></script>\n"; + protected $script_tag = "<script type=\"text/javascript\">\n/* <![CDATA[ */\n%s\n/* ]]> */\n</script>"; protected $default_template = "<html>\n<head><title></title></head>\n<body></body>\n</html>"; - protected $tag_format_external_script = "<script type=\"text/javascript\" src=\"%s\"></script>\n"; protected $title = ''; protected $header = ''; @@ -55,6 +53,9 @@ public function include_script($file, $position='head') { static $sa_files = array(); + + if (!preg_match('|^https?://|i', $file) && $file[0] != '/') + $file = $this->scripts_path . $file . (($fs = @filemtime($this->scripts_path . $file)) ? '?s='.$fs : ''); if (in_array($file, $sa_files)) { return; @@ -132,6 +133,7 @@ $this->title = ''; $this->header = ''; $this->footer = ''; + $this->body = ''; } /** @@ -166,7 +168,7 @@ // definition of the code to be placed in the document header and footer if (is_array($this->script_files['head'])) { foreach ($this->script_files['head'] as $file) { - $__page_header .= sprintf($this->script_tag_file, $this->scripts_path, $file); + $__page_header .= sprintf($this->script_tag_file, $file); } } @@ -181,7 +183,7 @@ if (is_array($this->script_files['foot'])) { foreach ($this->script_files['foot'] as $file) { - $__page_footer .= sprintf($this->script_tag_file, $this->scripts_path, $file); + $__page_footer .= sprintf($this->script_tag_file, $file); } } @@ -247,10 +249,22 @@ $__page_header = $__page_footer = ''; // correct absolute paths in images and other tags - $output = preg_replace('/(src|href|background)=(["\']?)(\/[a-z0-9_\-]+)/Ui', "\\1=\\2$base_path\\3", $output); + $output = preg_replace('!(src|href|background)=(["\']?)(/[a-z0-9_-]+)!i', "\\1=\\2$base_path\\3", $output); + $output = preg_replace_callback('!(src|href)=(["\']?)([a-z0-9/_.-]+.(css|js))(["\'\s>])!i', array($this, 'add_filemtime'), $output); $output = str_replace('$__skin_path', $base_path, $output); - print rcube_charset_convert($output, 'UTF-8', $this->charset); + if ($this->charset != RCMAIL_CHARSET) + echo rcube_charset_convert($output, RCMAIL_CHARSET, $this->charset); + else + echo $output; + } + + /** + * Callback function for preg_replace_callback in write() + */ + public function add_filemtime($matches) + { + return sprintf("%s=%s%s?s=%d%s", $matches[1], $matches[2], $matches[3], @filemtime($matches[3]), $matches[5]); } } -- Gitblit v1.9.1