From 60226a75d8e4a3ee9504da6eab6d8f329bb32e7b Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Tue, 27 Nov 2012 12:13:33 +0100 Subject: Separate the very application-specific output classes from the Roundcube framework; add autoloader for rmail* classes --- program/include/rcmail_string_replacer.php | 54 ++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 program/include/rcmail_string_replacer.php (limited to 'program/include/rcmail_string_replacer.php') diff --git a/program/include/rcmail_string_replacer.php b/program/include/rcmail_string_replacer.php new file mode 100644 index 000000000..4fbc611c9 --- /dev/null +++ b/program/include/rcmail_string_replacer.php @@ -0,0 +1,54 @@ + | + +-----------------------------------------------------------------------+ +*/ + + +/** + * Helper class for turning URLs and email addresses in plaintext content + * into clickable links. + * + * @package Core + * @subpackage Utils + */ +class rcmail_string_replacer extends rcube_string_replacer +{ + /** + * Callback function used to build mailto: links around e-mail strings + * + * This also adds an onclick-handler to open the Rouncube compose message screen on such links + * + * @param array Matches result from preg_replace_callback + * @return int Index of saved string value + * @see rcube_string_replacer::mailto_callback() + */ + public function mailto_callback($matches) + { + $href = $matches[1]; + $suffix = $this->parse_url_brackets($href); + + $i = $this->add(html::a(array( + 'href' => 'mailto:' . $href, + 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".command('compose','".rcube::JQ($href)."',this)", + ), rcube::Q($href)) . $suffix); + + return $i >= 0 ? $this->get_replacement($i) : ''; + } + +} \ No newline at end of file -- cgit v1.2.3