diff options
author | thomascube <thomas@roundcube.net> | 2011-02-18 09:54:19 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2011-02-18 09:54:19 +0000 |
commit | 798764c2bbe0834e9d73031095efe520a84fc701 (patch) | |
tree | f097a6d5e2d3509b01657b455698ab3cf8c007ca /program/include/rcube_html_page.php | |
parent | 4d982d38a85567491a163d2f1561ad938640dea2 (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.php | 18 |
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']; + } } /** |