From bff88dcb94a95d53ac37d8ac3c2b86f512b5869a Mon Sep 17 00:00:00 2001 From: alecpl Date: Fri, 13 May 2011 17:31:09 +0000 Subject: - Apply fixes from trunk (up to r4756) --- program/include/rcube_template.php | 40 +++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 22 deletions(-) (limited to 'program/include/rcube_template.php') diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index 5c69290c5..5e0f4c14f 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -113,7 +113,6 @@ class rcube_template extends rcube_html_page } } - /** * Set page title variable */ @@ -122,7 +121,6 @@ class rcube_template extends rcube_html_page $this->pagetitle = $title; } - /** * Getter for the current page title * @@ -143,7 +141,6 @@ class rcube_template extends rcube_html_page return $title; } - /** * Set skin */ @@ -226,7 +223,6 @@ class rcube_template extends rcube_html_page $this->js_commands[] = $cmd; } - /** * Add a localized label to the client environment */ @@ -241,7 +237,6 @@ class rcube_template extends rcube_html_page } } - /** * Invoke display_message command * @@ -262,7 +257,6 @@ class rcube_template extends rcube_html_page } } - /** * Delete all stored env variables and commands * @@ -282,7 +276,6 @@ class rcube_template extends rcube_html_page parent::reset(); } - /** * Redirect to a certain url * @@ -296,7 +289,6 @@ class rcube_template extends rcube_html_page exit; } - /** * Send the request output to the client. * This will either parse a skin tempalte or send an AJAX response @@ -361,16 +353,15 @@ class rcube_template extends rcube_html_page } /** - * Parse a specific skin template and deliver to stdout - * - * Either returns nothing, or exists hard (exit();) + * Parse a specific skin template and deliver to stdout (or return) * * @param string Template name * @param boolean Exit script - * @return void + * @param boolean Don't write to stdout, return parsed content instead + * * @link http://php.net/manual/en/function.exit.php */ - private function parse($name = 'main', $exit = true) + function parse($name = 'main', $exit = true, $write = true) { $skin_path = $this->config['skin_path']; $plugin = false; @@ -428,22 +419,27 @@ class rcube_template extends rcube_html_page // trigger generic hook where plugins can put additional content to the page $hook = $this->app->plugins->exec_hook("render_page", array('template' => $realname, 'content' => $output)); - // add debug console - if ($this->config['debug_level'] & 8) { - $this->add_footer('
- console -
' - ); + $output = $this->parse_with_globals($hook['content']); + + if ($write) { + // add debug console + if ($this->config['debug_level'] & 8) { + $this->add_footer('
+ console +
' + ); + } + $this->write(trim($output)); + } + else { + return $output; } - $output = $this->parse_with_globals($hook['content']); - $this->write(trim($output)); if ($exit) { exit; } } - /** * Return executable javascript code for all registered commands * -- cgit v1.2.3