diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-10-16 03:01:55 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-10-16 03:01:55 +0000 |
commit | 13d3072f418835569f37f65b5055e5b3180fad2e (patch) | |
tree | 6964b91e90d3bddbc3d5ce302897c35a248ddf6b /modules/system | |
parent | b965f7478f34c78b747ad6667738828599e86df7 (diff) | |
download | brdo-13d3072f418835569f37f65b5055e5b3180fad2e.tar.gz brdo-13d3072f418835569f37f65b5055e5b3180fad2e.tar.bz2 |
- Patch #356074 by chx, Damien Tournoud: provide a sequences API.
Diffstat (limited to 'modules/system')
-rw-r--r-- | modules/system/mail.sending.inc | 34 | ||||
-rw-r--r-- | modules/system/system.api.php | 34 | ||||
-rw-r--r-- | modules/system/system.module | 15 |
3 files changed, 73 insertions, 10 deletions
diff --git a/modules/system/mail.sending.inc b/modules/system/mail.sending.inc index 6533de07d..96db60bb6 100644 --- a/modules/system/mail.sending.inc +++ b/modules/system/mail.sending.inc @@ -3,21 +3,40 @@ /** * @file - * Drupal core implementations of the DrupalMailSendingInterface. + * Drupal core implementations of MailSystemInterface. */ /** - * The default Drupal mail sending library using PHP's mail function. + * The default Drupal mail backend using PHP's mail function. */ class DefaultMailSystem implements MailSystemInterface { /** + * Concatenate and wrap the e-mail body for plain-text mails. + * + * @param $message + * A message array, as described in hook_mail_alter(). + * + * @return + * The formatted $message. + */ + public function format(array $message) { + // Join the body array into one string. + $message['body'] = implode("\n\n", $message['body']); + // Convert any HTML to plain-text. + $message['body'] = drupal_html_to_text($message['body']); + // Wrap the mail body for sending. + $message['body'] = drupal_wrap_mail($message['body']); + return $message; + } + + /** * Send an e-mail message, using Drupal variables and default settings. - * @see http://php.net/manual/en/function.mail.php the PHP function reference - * for mail(). - * @see drupal_mail() for information on how $message is composed. + * + * @see http://php.net/manual/en/function.mail.php + * @see drupal_mail() * * @param $message - * Message array as described by DrupalMailSendingInterface. + * A message array, as described in hook_mail_alter(). * @return * TRUE if the mail was successfully accepted, otherwise FALSE. */ @@ -44,8 +63,7 @@ class DefaultMailSystem implements MailSystemInterface { * * This class is for running tests or for development. */ -class TestingMailSystem implements MailSystemInterface { - +class TestingMailSystem extends DefaultMailSystem implements MailSystemInterface { /** * Accept an e-mail message and store it in a variable. * diff --git a/modules/system/system.api.php b/modules/system/system.api.php index 1f4d1d394..d29a16035 100644 --- a/modules/system/system.api.php +++ b/modules/system/system.api.php @@ -12,6 +12,38 @@ */ /** + * Defines one or more hooks that are exposed by a module. + * + * Normally hooks do not need to be explicitly defined. However, by declaring a + * hook explicitly, a module may define a "group" for it. Modules that implement + * a hook may then place their implementation in either $module.module or in + * $module.$group.inc. If the hook is located in $module.$group.inc, then that + * file will be automatically loaded when needed. + * In general, hooks that are rarely invoked and/or are very large should be + * placed in a separate include file, while hooks that are very short or very + * frequently called should be left in the main module file so that they are + * always available. + * + * @return + * An associative array whose keys are hook names and whose values are an + * associative array containing: + * - group: A string defining the group to which the hook belongs. The module + * system will determine whether a file with the name $module.$group.inc + * exists, and automatically load it when required. + * + * See system_hook_info() for all hook groups defined by Drupal core. + */ +function hook_hook_info() { + $hooks['token_info'] = array( + 'group' => 'tokens', + ); + $hooks['tokens'] = array( + 'group' => 'tokens', + ); + return $hooks; +} + +/** * Inform the base system and the Field API about one or more entity types. * * Inform the system about one or more entity types (i.e., object types that @@ -700,7 +732,7 @@ function hook_image_toolkits() { * * Email messages sent using functions other than drupal_mail() will not * invoke hook_mail_alter(). For example, a contributed module directly - * calling the drupal_mail_sending_system()->mail() or PHP mail() function + * calling the drupal_mail_system()->mail() or PHP mail() function * will not invoke this hook. All core modules use drupal_mail() for * messaging, it is best practice but not manditory in contributed modules. * diff --git a/modules/system/system.module b/modules/system/system.module index cb63659ec..cd35aa8ac 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -278,6 +278,19 @@ function system_rdf_namespaces() { } /** + * Implement hook_hook_info(). + */ +function system_hook_info() { + $hooks['token_info'] = array( + 'group' => 'tokens', + ); + $hooks['tokens'] = array( + 'group' => 'tokens', + ); + return $hooks; +} + +/** * Implement hook_entity_info(). */ function system_entity_info() { @@ -2762,7 +2775,7 @@ function system_mail($key, &$message, $params) { $body = token_replace($context['message'], $context); $message['subject'] .= str_replace(array("\r", "\n"), '', $subject); - $message['body'][] = drupal_html_to_text($body); + $message['body'][] = $body; } function system_message_action_form($context) { |