| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <?php/** * All plugin hook handlers are bundled here *//** * Sends out a full HTML mail * * @param string $hook         'email' * @param string $type         'system' * @param array  $return_value In the format: *     to => STR|ARR of recipients in RFC-2822 format (http://www.faqs.org/rfcs/rfc2822.html) *     from => STR of senden in RFC-2822 format (http://www.faqs.org/rfcs/rfc2822.html) *     subject => STR with the subject of the message *     body => STR with the message body *     plaintext_message STR with the plaintext version of the message *     html_message => STR with the HTML version of the message *     cc => NULL|STR|ARR of CC recipients in RFC-2822 format (http://www.faqs.org/rfcs/rfc2822.html) *     bcc => NULL|STR|ARR of BCC recipients in RFC-2822 format (http://www.faqs.org/rfcs/rfc2822.html) *     date => NULL|UNIX timestamp with the date the message was created *     attachments => NULL|ARR of array(array('mimetype', 'filename', 'content')) * @param array  $params       The unmodified core parameters * * @return bool */function html_email_handler_email_hook($hook, $type, $return_value, $params) {	static $plugin_setting;		if (!isset($plugin_setting)) {		$plugin_setting = false;				// do we need to handle sending of mails?		if (elgg_get_plugin_setting("notifications", "html_email_handler") == "yes") {			$plugin_setting = true;		}	}		if (!$plugin_setting) {		return $return_value;	}		// if someone else handled sending they should return true|false	if (empty($return_value) || !is_array($return_value)) {		return $return_value;	}		$additional_params = elgg_extract("params", $return_value);	if (is_array($additional_params)) {		$return_value = array_merge($return_value, $additional_params);	}		return html_email_handler_send_email($return_value);}/** * Cleanup the cached inline images * * @param string $hook   the name of the hook * @param string $type   the type of the hook * @param mixed  $return current return value * @param array  $params supplied params * * @return mixed */function html_email_handler_daily_cron_hook($hook, $type, $return, $params) {		if (empty($params) || !is_array($params)) {		return $return;	}		$cache_dir = elgg_get_config("dataroot") . "html_email_handler/image_cache/";	if (!is_dir($cache_dir)) {		return $return;	}		$dh = opendir($cache_dir);	if (empty($dh)) {		return $return;	}		$max_lifetime = elgg_extract("time", $params, time()) - (24 * 60 * 60);		while (($filename = readdir($dh)) !== false) {		// make sure we have a file		if (!is_file($cache_dir . $filename)) {			continue;		}				$modified_time = filemtime($cache_dir . $filename);		if ($modified_time > $max_lifetime) {			continue;		}				// file is past lifetime, so cleanup		unlink($cache_dir . $filename);	}		closedir($dh);		return $return;}
 |