thomascube
2011-07-17 03eb13f11cf7dd695be3aab95b4e39e510169a49
program/include/rcube_template.php
@@ -35,6 +35,7 @@
    private $pagetitle = '';
    private $message = null;
    private $js_env = array();
    private $js_labels = array();
    private $js_commands = array();
    private $object_handlers = array();
    private $plugin_skin_path;
@@ -230,25 +231,26 @@
          $args = $args[0];
        foreach ($args as $name) {
            $this->command('add_label', $name, rcube_label($name));
            $this->js_labels[$name] = rcube_label($name);
        }
    }
    /**
     * Invoke display_message command
     *
     * @param string Message to display
     * @param string Message type [notice|confirm|error]
     * @param array Key-value pairs to be replaced in localized text
     * @param boolean Override last set message
     * @param string  $message  Message to display
     * @param string  $type     Message type [notice|confirm|error]
     * @param array   $vars     Key-value pairs to be replaced in localized text
     * @param boolean $override Override last set message
     * @param int     $timeout  Message display time in seconds
     * @uses self::command()
     */
    public function show_message($message, $type='notice', $vars=null, $override=true)
    public function show_message($message, $type='notice', $vars=null, $override=true, $timeout=0)
    {
        if ($override || !$this->message) {
            $this->message = $message;
            $msgtext = rcube_label_exists($message) ? rcube_label(array('name' => $message, 'vars' => $vars)) : $message;
            $this->command('display_message', $msgtext, $type);
            $this->command('display_message', $msgtext, $type, $timeout * 1000);
        }
    }
@@ -266,6 +268,7 @@
    {
        $this->env = array();
        $this->js_env = array();
        $this->js_labels = array();
        $this->js_commands = array();
        $this->object_handlers = array();
        parent::reset();
@@ -327,7 +330,7 @@
    public function write($template = '')
    {
        // unlock interface after iframe load
        $unlock = preg_replace('/[^a-z0-9]/i', '', $_GET['_unlock']);
        $unlock = preg_replace('/[^a-z0-9]/i', '', $_REQUEST['_unlock']);
        if ($this->framed) {
            array_unshift($this->js_commands, array('set_busy', false, null, $unlock));
        }
@@ -452,6 +455,9 @@
        if (!$this->framed && !empty($this->js_env)) {
            $out .= JS_OBJECT_NAME . '.set_env('.json_serialize($this->js_env).");\n";
        }
        if (!empty($this->js_labels)) {
            $this->command('add_label', $this->js_labels);
        }
        foreach ($this->js_commands as $i => $args) {
            $method = array_shift($args);
            foreach ($args as $i => $arg) {