| | |
| | | var $scripts_path = ''; |
| | | var $script_files = array(); |
| | | var $scripts = array(); |
| | | var $charset = 'ISO-8859-1'; |
| | | |
| | | 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"; |
| | |
| | | |
| | | } |
| | | |
| | | function set_charset($charset) |
| | | { |
| | | $this->charset = $charset; |
| | | } |
| | | |
| | | |
| | | function write($templ='', $base_path='') |
| | | { |
| | |
| | | // replace specialchars in content |
| | | $__page_title = rep_specialchars_output($this->title, 'html', 'show', FALSE); |
| | | $__page_header = $__page_body = $__page_footer = ''; |
| | | |
| | | |
| | | // include meta tag with charset |
| | | if (!empty($this->charset)) |
| | | $__page_header = '<meta http-equiv="content-type" content="text/html; charset='.$this->charset.'" />'."\n";; |
| | | |
| | | |
| | | // definition of the code to be placed in the document header and footer |
| | |
| | | // get text in the desired language from the language file |
| | | function rcube_label($attrib) |
| | | { |
| | | global $sess_user_lang, $INSTALL_PATH; |
| | | global $sess_user_lang, $INSTALL_PATH, $OUTPUT; |
| | | static $sa_text_data, $s_language, $utf8_decode; |
| | | |
| | | // extract attributes |
| | |
| | | // perform utf-8 decoding |
| | | if ($utf8_decode && function_exists('utf8ToUnicodeEntities')) |
| | | $text = utf8ToUnicodeEntities($text); |
| | | else if ($utf8_decode) |
| | | $OUTPUT->set_charset('UTF-8'); |
| | | |
| | | |
| | | // format output |
| | |
| | | { |
| | | if (!$html_encode_arr) |
| | | { |
| | | $html_encode_arr = get_html_translation_table(HTML_ENTITIES); |
| | | $html_encode_arr = get_html_translation_table(HTML_SPECIALCHARS); // HTML_ENTITIES |
| | | $html_encode_arr[chr(128)] = '€'; |
| | | unset($html_encode_arr['?']); |
| | | unset($html_encode_arr['&']); |
| | |
| | | // if the replace tables for RTF, XML and JS are not yet defined |
| | | if (!$js_rep_table) |
| | | { |
| | | $js_rep_table = $rtf_rep_table = $xml_rep_table = array(); |
| | | |
| | | for ($c=160; $c<256; $c++) // can be increased to support more charsets |
| | | { |
| | | $hex = dechex($c); |
| | | $js_rep_table[Chr($c)] = sprintf("\u%s%s", str_repeat('0', 4-strlen($hex)), $hex); |
| | | //$js_rep_table[Chr($c)] = sprintf("\u%s%s", str_repeat('0', 4-strlen($hex)), $hex); |
| | | $rtf_rep_table[Chr($c)] = "\\'$hex"; |
| | | $xml_rep_table[Chr($c)] = "&#$c;"; |
| | | } |
| | |
| | | |
| | | // encode for javascript use |
| | | if ($enctype=='js') |
| | | return preg_replace(array("/\r\n/", '/"/', "/'/"), array('\n', '\"', "\'"), strtr($str, $js_rep_table)); |
| | | return preg_replace(array("/\r\n/", '/"/', "/([^\\\])'/"), array('\n', '\"', "$1\'"), strtr($str, $js_rep_table)); |
| | | |
| | | // encode for RTF |
| | | if ($enctype=='rtf') |