alecpl
2008-09-19 d4273b8990d56394623e713a0696ec27545bccc7
program/include/rcube_template.php
@@ -106,6 +106,28 @@
        $this->pagetitle = $title;
    }
    /**
     * Getter for the current page title
     *
     * @return string The page title
     */
    public function get_pagetitle()
    {
        if (!empty($this->pagetitle)) {
            $title = $this->pagetitle;
        }
        else if ($this->env['task'] == 'login') {
            $title = rcube_label(array('name' => 'welcome', 'vars' => array('product' => $this->config['product_name'])));
        }
        else {
            $title = ucfirst($this->env['task']);
        }
        return $title;
    }
    /**
     * Set skin
     */
@@ -320,9 +342,9 @@
        // add debug console
        if ($this->config['debug_level'] & 8) {
            $this->add_footer('<div style="position:absolute;top:5px;left:5px;width:400px;padding:0.2em;background:white;opacity:0.8;z-index:9000">
            $this->add_footer('<div style="position:absolute;top:5px;left:5px;width:405px;padding:2px;background:white;opacity:0.8;filter:alpha(opacity=80);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"><textarea name="console" id="dbgconsole" rows="20" cols="40" wrap="off" style="display:none;width:400px;border:none;font-size:x-small"></textarea></form></div>'
                <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"></textarea></form></div>'
            );
        }
        $output = $this->parse_with_globals($output);
@@ -357,13 +379,7 @@
            implode(',', $args)
            );
        }
        // add command to set page title
        if ($this->ajax_call && !empty($this->pagetitle)) {
            $out .= sprintf(
                "this.set_pagetitle('%s');\n",
                JQ((!empty($this->config['product_name']) ? $this->config['product_name'].' :: ' : '') . $this->pagetitle)
            );
        }
        return $out;
    }
@@ -455,15 +471,15 @@
        $condition = preg_replace(
            array(
                '/session:([a-z0-9_]+)/i',
                '/config:([a-z0-9_]+)/i',
                '/config:([a-z0-9_]+)(:([a-z0-9_]+))?/i',
                '/env:([a-z0-9_]+)/i',
                '/request:([a-z0-9_]+)/ie'
            ),
            array(
                "\$_SESSION['\\1']",
                "\$this->config['\\1']",
                "\$this->app->config->get('\\1',get_boolean('\\3'))",
                "\$this->env['\\1']",
                "get_input_value('\\1', RCUVE_INPUT_GPC)"
                "get_input_value('\\1', RCUBE_INPUT_GPC)"
            ),
            $condition);
            
@@ -591,20 +607,12 @@
                    }
                    return $ver;
                }
                if ($object=='steptitle') {
                  return Q($this->get_pagetitle());
                }
                if ($object=='pagetitle') {
                    $task  = $this->env['task'];
                    $title = !empty($this->config['product_name']) ? $this->config['product_name'].' :: ' : '';
                    if (!empty($this->pagetitle)) {
                        $title .= $this->pagetitle;
                    }
                    else if ($task == 'login') {
                        $title = rcube_label(array('name' => 'welcome', 'vars' => array('product' => $this->config['product_name'])));
                    }
                    else {
                        $title .= ucfirst($task);
                    }
                    $title .= $this->get_pagetitle();
                    return Q($title);
                }
                break;
@@ -630,6 +638,9 @@
                        break;
                    case 'session':
                        $value = $_SESSION[$name];
                        break;
                    case 'cookie':
                        $value = htmlspecialchars($_COOKIE[$name]);
                        break;
                }
@@ -752,10 +763,13 @@
            // make valid href to specific buttons
            if (in_array($attrib['command'], rcmail::$main_tasks)) {
                $attrib['href'] = Q(rcmail_url(null, null, $attrib['command']));
                $attrib['href'] = rcmail_url(null, null, $attrib['command']);
            }
            else if (in_array($attrib['command'], $a_static_commands)) {
                $attrib['href'] = Q(rcmail_url($attrib['command']));
                $attrib['href'] = rcmail_url($attrib['command']);
            }
            else if ($attrib['command'] == 'permaurl' && !empty($this->env['permaurl'])) {
                $attrib['href'] = $this->env['permaurl'];
            }
        }
@@ -817,11 +831,11 @@
            if ($attrib['label']) {
                $btn_content .= ' '.$attrib['label'];
            }
            $link_attrib = array('href', 'onclick', 'onmouseover', 'onmouseout', 'onmousedown', 'onmouseup', 'title');
            $link_attrib = array('href', 'onclick', 'onmouseover', 'onmouseout', 'onmousedown', 'onmouseup', 'title', 'target');
        }
        else if ($attrib['type']=='link') {
            $btn_content = $attrib['label'] ? $attrib['label'] : $attrib['command'];
            $link_attrib = array('href', 'onclick', 'title', 'id', 'class', 'style', 'tabindex');
            $link_attrib = array('href', 'onclick', 'title', 'id', 'class', 'style', 'tabindex', 'target');
        }
        else if ($attrib['type']=='input') {
            $attrib['type'] = 'button';