email_confirmer-8.x-1.x-dev/email_confirmer.module

email_confirmer.module
<?php

/**
 * @file
 * Email confirmation API and service.
 */

/**
 * Implements hook_mail().
 */
function email_confirmer_mail($key, &$message, $params) {
  switch ($key) {
    case 'confirmation_request':
      $context = $params['context'];

      // @todo recipient name?
      $message['to'] = $params['context']['email_confirmer_confirmation']->getEmail();
      $message['subject'] = \Drupal::token()->replace(\Drupal::config('email_confirmer.settings')->get('confirmation_request.subject'), $context, ['sanitize' => FALSE]);
      $message['body'][] = \Drupal::token()->replace(\Drupal::config('email_confirmer.settings')->get('confirmation_request.body'), $context, ['sanitize' => FALSE]);
      break;
  }
}

/**
 * Implements hook_cron().
 */
function email_confirmer_cron() {
  // Purge old confirmations.
  $lifetime = \Drupal::config('email_confirmer.settings')->get('confirmation_lifetime');
  if (empty($lifetime)) {
    // No purge.
    return;
  }

  $confirmation_storage = \Drupal::entityTypeManager()
    ->getStorage('email_confirmer_confirmation');
  $old_confirmations = $confirmation_storage->getQuery()
    ->condition('created', \Drupal::time()->getRequestTime() - $lifetime, '<')
    ->accessCheck(FALSE)
    ->execute();

  if (!empty($old_confirmations)) {
    $confirmation_storage->delete($confirmation_storage->loadMultiple($old_confirmations));
    \Drupal::logger('email_confirmer')->info('Purged @count old email confirmations.', ['@count' => count($old_confirmations)]);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc