class Immediately in Open Social 8.3
Same name and namespace in other branches
- 8.9 modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 8 modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 8.2 modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 8.4 modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 8.5 modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 8.6 modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 8.7 modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 8.8 modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 10.3.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 10.0.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 10.1.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- 10.2.x modules/custom/activity_send/modules/activity_send_email/src/Plugin/EmailFrequency/Immediately.php \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
Define a concrete class for immediate emails.
Plugin annotation
@EmailFrequency(
id = "immediately",
name = @Translation("Immediately"),
weight = 10,
interval = 0
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\activity_send_email\EmailFrequencyBase implements EmailFrequencyInterface
- class \Drupal\activity_send_email\Plugin\EmailFrequency\Immediately
- class \Drupal\activity_send_email\EmailFrequencyBase implements EmailFrequencyInterface
Expanded class hierarchy of Immediately
File
- modules/
custom/ activity_send/ modules/ activity_send_email/ src/ Plugin/ EmailFrequency/ Immediately.php, line 23
Namespace
Drupal\activity_send_email\Plugin\EmailFrequencyView source
class Immediately extends EmailFrequencyBase {
/**
* {@inheritdoc}
*/
public function processItem(Activity $activity, Message $message, User $target) {
if ($target
->isBlocked()) {
return;
}
// Continue if we have text to send and the user is currently offline.
if (isset($activity->field_activity_output_text) && EmailActivityDestination::isUserOffline($target)) {
$langcode = $target
->getPreferredLangcode();
$body_text = EmailActivityDestination::getSendEmailOutputText($message, $langcode);
if ($langcode && !empty($body_text)) {
$this
->sendEmail($body_text, $langcode, $target);
}
}
}
/**
* Send an email with a single notification.
*
* @param string $body_text
* The text to send to the target user.
* @param string $langcode
* The langcode of the target user.
* @param \Drupal\user\Entity\User $target
* The target account to send the email to.
*/
protected function sendEmail($body_text, $langcode, User $target) {
// Translating frequency instance in the language of the user.
// @codingStandardsIgnoreStart
$frequency_translated = t($this
->getName()
->getUntranslatedString(), [], [
'langcode' => $langcode,
]);
// @codingStandardsIgnoreEnd
// Construct the render array.
$notification = [
'#theme' => 'directmail',
'#notification' => $body_text,
'#notification_settings' => t('Based on your @settings, the notification above is sent to you <strong>:frequency</strong>', [
'@settings' => Link::fromTextAndUrl(t('email notification settings', [], [
'langcode' => $langcode,
]), Url::fromRoute('entity.user.edit_form', [
'user' => $target
->id(),
])
->setAbsolute())
->toString(),
':frequency' => $frequency_translated,
], [
'langcode' => $langcode,
]),
];
$params['body'] = \Drupal::service('renderer')
->renderRoot($notification);
// Send the email.
$mail_manager = \Drupal::service('plugin.manager.mail');
$mail_manager
->mail('activity_send_email', 'activity_send_email', $target
->getEmail(), $langcode, $params, NULL, TRUE);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
EmailFrequencyBase:: |
public | function |
Return the interval of the email frequency in seconds. Overrides EmailFrequencyInterface:: |
|
EmailFrequencyBase:: |
public | function |
Return the name of the email frequency. Overrides EmailFrequencyInterface:: |
|
EmailFrequencyBase:: |
public | function |
Return the weight of the frequency option. Overrides EmailFrequencyInterface:: |
|
Immediately:: |
public | function |
Processes an activity item. Overrides EmailFrequencyBase:: |
|
Immediately:: |
protected | function | Send an email with a single notification. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |