From 3536577bcbc908dbfd26d8b74696ce3da30bf48b Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Mon, 13 Jul 2009 07:22:28 -0400 Subject: [PATCH] - improve responsiveness by flushing template output asap, also set the \Seen flag after message page display --- program/include/rcube_template.php | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-) diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index c6d75dd..af688ee 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -294,7 +294,11 @@ $this->write(); } - if ($exit) { + // set output asap + ob_flush(); + flush(); + + if ($exit) { exit; } } @@ -371,6 +375,9 @@ // parse for specialtags $output = $this->parse_conditions($templ); $output = $this->parse_xml($output); + + // trigger generic hook where plugins can put additional content to the page + $hook = $this->app->plugins->exec_hook("render_page", array('template' => $name, 'content' => $output)); // add debug console if ($this->config['debug_level'] & 8) { @@ -379,7 +386,8 @@ <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>' ); } - $output = $this->parse_with_globals($output); + + $output = $this->parse_with_globals($hook['content']); $this->write(trim($output)); if ($exit) { exit; @@ -435,6 +443,7 @@ */ private function parse_with_globals($input) { + $GLOBALS['__version'] = Q(RCMAIL_VERSION); $GLOBALS['__comm_path'] = Q($this->app->comm_path); return preg_replace('/\$(__[a-z0-9_\-]+)/e', '$GLOBALS["\\1"]', $input); } @@ -968,7 +977,7 @@ // save original url $url = get_input_value('_url', RCUBE_INPUT_POST); - if (empty($url) && !preg_match('/_action=logout/', $_SERVER['QUERY_STRING'])) + if (empty($url) && !preg_match('/_(task|action)=logout/', $_SERVER['QUERY_STRING'])) $url = $_SERVER['QUERY_STRING']; $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser', 'size' => 30) + $attrib); -- Gitblit v1.9.1