summaryrefslogtreecommitdiff
path: root/program/include/rcube_html_page.php
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-02-18 09:54:19 +0000
committerthomascube <thomas@roundcube.net>2011-02-18 09:54:19 +0000
commit798764c2bbe0834e9d73031095efe520a84fc701 (patch)
treef097a6d5e2d3509b01657b455698ab3cf8c007ca /program/include/rcube_html_page.php
parent4d982d38a85567491a163d2f1561ad938640dea2 (diff)
Add plugin hook before the final HTML content of a page is sent
Diffstat (limited to 'program/include/rcube_html_page.php')
-rw-r--r--program/include/rcube_html_page.php18
1 files changed, 11 insertions, 7 deletions
diff --git a/program/include/rcube_html_page.php b/program/include/rcube_html_page.php
index ab226bc32..5b56cccc5 100644
--- a/program/include/rcube_html_page.php
+++ b/program/include/rcube_html_page.php
@@ -266,19 +266,23 @@ class rcube_html_page
$output = substr($output, 0, $pos) . $css . substr($output, $pos);
}
- $this->base_path = $base_path;
+ $this->base_path = $base_path;
// correct absolute paths in images and other tags
- // add timestamp to .js and .css filename
+ // add timestamp to .js and .css filename
$output = preg_replace_callback(
'!(src|href|background)=(["\']?)([a-z0-9/_.-]+)(["\'\s>])!i',
- array($this, 'file_callback'), $output);
+ array($this, 'file_callback'), $output);
$output = str_replace('$__skin_path', $base_path, $output);
- if ($this->charset != RCMAIL_CHARSET)
- echo rcube_charset_convert($output, RCMAIL_CHARSET, $this->charset);
- else
- echo $output;
+ // trigger hook with final HTML content to be sent
+ $hook = rcmail::get_instance()->plugins->exec_hook("send_page", array('content' => $output));
+ if (!$hook['abort']) {
+ if ($this->charset != RCMAIL_CHARSET)
+ echo rcube_charset_convert($hook['content'], RCMAIL_CHARSET, $this->charset);
+ else
+ echo $hook['content'];
+ }
}
/**