alecpl
2010-03-09 fe7d78ab5584106eb3236f6123ea86691ea313d6
program/include/rcube_template.php
@@ -73,7 +73,7 @@
        $this->add_script($javascript, 'head_top');
        $this->add_script($javascript_foot, 'foot');
        $this->scripts_path = 'program/js/';
        $this->include_script('jquery-1.3.min.js');
        $this->include_script('jquery-1.4.min.js');
        $this->include_script('common.js');
        $this->include_script('app.js');
@@ -290,7 +290,9 @@
        if ($templ != 'iframe') {
            // prevent from endless loops
            if ($exit != 'recur' && $this->app->plugins->is_processing('render_page')) {
                raise_error(array('code' => 505, 'type' => 'php', 'message' => 'Recursion alert: ignoring output->send()'), true, false);
                raise_error(array('code' => 505, 'type' => 'php',
                  'file' => __FILE__, 'line' => __LINE__,
                  'message' => 'Recursion alert: ignoring output->send()'), true, false);
                return;
            }
            $this->parse($templ, false);
@@ -392,8 +394,8 @@
        // add debug console
        if ($this->config['debug_level'] & 8) {
            $this->add_footer('<div id="console" style="position:absolute;top:5px;left:5px;width:405px;padding:2px;background:white;z-index:9000;">
                <a href="#toggle" onclick="con=document.getElementById(\'dbgconsole\');con.style.display=(con.style.display==\'none\'?\'block\':\'none\');return false">console</a>
                <form action="/" name="debugform" style="display:inline"><textarea name="console" id="dbgconsole" rows="20" cols="40" wrap="off" style="display:none;width:400px;border:none;font-size:x-small" spellcheck="false"></textarea></form></div>'
                <a href="#toggle" onclick="con=$(\'#dbgconsole\');con[con.is(\':visible\')?\'hide\':\'show\']();return false">console</a>
                <textarea name="console" id="dbgconsole" rows="20" cols="40" wrap="off" style="display:none;width:400px;border:none;font-size:10px" spellcheck="false"></textarea></div>'
            );
        }
        
@@ -455,7 +457,16 @@
    {
        $GLOBALS['__version'] = Q(RCMAIL_VERSION);
        $GLOBALS['__comm_path'] = Q($this->app->comm_path);
        return preg_replace('/\$(__[a-z0-9_\-]+)/e', '$GLOBALS["\\1"]', $input);
        return preg_replace_callback('/\$(__[a-z0-9_\-]+)/',
       array($this, 'globals_callback'), $input);
    }
    /**
     * Callback funtion for preg_replace_callback() in parse_with_globals()
     */
    private function globals_callback($matches)
    {
        return $GLOBALS[$matches[1]];
    }
    /**
@@ -544,7 +555,7 @@
     * Parses expression and replaces variables
     *
     * @param  string Expression statement
     * @return string Expression statement
     * @return string Expression value
     */
    private function parse_expression($expression)
    {
@@ -975,7 +986,7 @@
            return $username;
        }
        // get e-mail address form default identity
        // get e-mail address from default identity
        if ($sql_arr = $this->app->user->get_identity()) {
            $username = $sql_arr['email'];
        }
@@ -1123,39 +1134,67 @@
     * @param array Named parameters for the select tag
     * @return string HTML code for the gui object
     */
    static function charset_selector($attrib)
    function charset_selector($attrib)
    {
        // pass the following attributes to the form class
        $field_attrib = array('name' => '_charset');
        foreach ($attrib as $attr => $value) {
            if (in_array($attr, array('id', 'class', 'style', 'size', 'tabindex'))) {
            if (in_array($attr, array('id', 'name', 'class', 'style', 'size', 'tabindex'))) {
                $field_attrib[$attr] = $value;
            }
        }
        $charsets = array(
            'US-ASCII'     => 'ASCII (English)',
            'EUC-JP'       => 'EUC-JP (Japanese)',
            'EUC-KR'       => 'EUC-KR (Korean)',
            'BIG5'         => 'BIG5 (Chinese)',
            'GB2312'       => 'GB2312 (Chinese)',
            'ISO-2022-JP'  => 'ISO-2022-JP (Japanese)',
            'ISO-8859-1'   => 'ISO-8859-1 (Latin-1)',
            'ISO-8859-2'   => 'ISO-8895-2 (Central European)',
            'ISO-8859-7'   => 'ISO-8859-7 (Greek)',
            'ISO-8859-9'   => 'ISO-8859-9 (Turkish)',
            'Windows-1251' => 'Windows-1251 (Cyrillic)',
            'Windows-1252' => 'Windows-1252 (Western)',
            'Windows-1255' => 'Windows-1255 (Hebrew)',
            'Windows-1256' => 'Windows-1256 (Arabic)',
            'Windows-1257' => 'Windows-1257 (Baltic)',
            'UTF-8'        => 'UTF-8'
            );
            'UTF-8'        => 'UTF-8 ('.rcube_label('unicode').')',
            'US-ASCII'     => 'ASCII ('.rcube_label('english').')',
            'ISO-8859-1'   => 'ISO-8859-1 ('.rcube_label('westerneuropean').')',
            'ISO-8859-2'   => 'ISO-8895-2 ('.rcube_label('easterneuropean').')',
            'ISO-8859-4'   => 'ISO-8895-4 ('.rcube_label('baltic').')',
            'ISO-8859-5'   => 'ISO-8859-5 ('.rcube_label('cyrillic').')',
            'ISO-8859-6'   => 'ISO-8859-6 ('.rcube_label('arabic').')',
            'ISO-8859-7'   => 'ISO-8859-7 ('.rcube_label('greek').')',
            'ISO-8859-8'   => 'ISO-8859-8 ('.rcube_label('hebrew').')',
            'ISO-8859-9'   => 'ISO-8859-9 ('.rcube_label('turkish').')',
            'ISO-8859-10'   => 'ISO-8859-10 ('.rcube_label('nordic').')',
            'ISO-8859-11'   => 'ISO-8859-11 ('.rcube_label('thai').')',
            'ISO-8859-13'   => 'ISO-8859-13 ('.rcube_label('baltic').')',
            'ISO-8859-14'   => 'ISO-8859-14 ('.rcube_label('celtic').')',
            'ISO-8859-15'   => 'ISO-8859-15 ('.rcube_label('westerneuropean').')',
            'ISO-8859-16'   => 'ISO-8859-16 ('.rcube_label('southeasterneuropean').')',
            'WINDOWS-1250' => 'Windows-1250 ('.rcube_label('easterneuropean').')',
            'WINDOWS-1251' => 'Windows-1251 ('.rcube_label('cyrillic').')',
            'WINDOWS-1252' => 'Windows-1252 ('.rcube_label('westerneuropean').')',
            'WINDOWS-1253' => 'Windows-1253 ('.rcube_label('greek').')',
            'WINDOWS-1254' => 'Windows-1254 ('.rcube_label('turkish').')',
            'WINDOWS-1255' => 'Windows-1255 ('.rcube_label('hebrew').')',
            'WINDOWS-1256' => 'Windows-1256 ('.rcube_label('arabic').')',
            'WINDOWS-1257' => 'Windows-1257 ('.rcube_label('baltic').')',
            'WINDOWS-1258' => 'Windows-1258 ('.rcube_label('vietnamese').')',
            'ISO-2022-JP'  => 'ISO-2022-JP ('.rcube_label('japanese').')',
            'ISO-2022-KR'  => 'ISO-2022-KR ('.rcube_label('korean').')',
            'ISO-2022-CN'  => 'ISO-2022-CN ('.rcube_label('chinese').')',
            'EUC-JP'       => 'EUC-JP ('.rcube_label('japanese').')',
            'EUC-KR'       => 'EUC-KR ('.rcube_label('korean').')',
            'EUC-CN'       => 'EUC-CN ('.rcube_label('chinese').')',
            'BIG5'         => 'BIG5 ('.rcube_label('chinese').')',
            'GB2312'       => 'GB2312 ('.rcube_label('chinese').')',
        );
            $select = new html_select($field_attrib);
            $select->add(array_values($charsets), array_keys($charsets));
        if (!empty($_POST['_charset']))
       $set = $_POST['_charset'];
   else if (!empty($attrib['selected']))
       $set = $attrib['selected'];
   else
       $set = $this->get_charset();
            $set = $_POST['_charset'] ? $_POST['_charset'] : $this->get_charset();
            return $select->show($set);
   $set = strtoupper($set);
   if (!isset($charsets[$set]))
       $charsets[$set] = $set;
        $select = new html_select($field_attrib);
        $select->add(array_values($charsets), array_keys($charsets));
        return $select->show($set);
    }
}  // end class rcube_template