'details', '#title' => t('Resend invitation'), '#open' => FALSE, '#description' => t('Send a reminder to the users invited via the Delegate module.'), '#group' => 'email', ]; $form['email_resend_invite']['resend_invitation_subject'] = [ '#type' => 'textfield', '#title' => t('Subject'), '#default_value' => $mail_config->get('resend_invitation.subject'), '#maxlength' => 180, ]; $form['email_resend_invite']['resend_invitation_body'] = [ '#type' => 'textarea', '#title' => t('Body'), '#default_value' => $mail_config->get('resend_invitation.body'), '#rows' => 15, ]; $form['#submit'][] = 'recruiter_save_email_resend_invite'; } /** * Save the changes made to the recruiter email. */ function recruiter_save_email_resend_invite(&$form, $form_state) { \Drupal::configFactory()->getEditable('recruiter.mail') ->set('resend_invitation.body', $form_state->getValue('resend_invitation_body')) ->set('resend_invitation.subject', $form_state->getValue('resend_invitation_subject')) ->save(); } /** * Implements hook_mail(). */ function recruiter_mail($key, &$message, $params) { $token_service = \Drupal::token(); $language_manager = \Drupal::languageManager(); $langcode = $message['langcode']; $variables = ['user' => $params['account']]; $language = \Drupal::languageManager()->getLanguage($params['account']->getPreferredLangcode()); $original_language = $language_manager->getConfigOverrideLanguage(); $language_manager->setConfigOverrideLanguage($language); $mail_config = \Drupal::config('recruiter.mail'); $token_options = [ 'langcode' => $langcode, 'callback' => 'recruiter_mail_tokens', 'clear' => TRUE, ]; $message['subject'] .= PlainTextOutput::renderFromHtml($token_service->replace($mail_config->get($key . '.subject'), $variables, $token_options)); $message['body'][] = $token_service->replace($mail_config->get($key . '.body'), $variables, $token_options); $language_manager->setConfigOverrideLanguage($original_language); } /** * Replace the tokens with data. * * @param array $replacements * Tokens. * @param array $data * Data where the tokens will be replaced. * @param array $options * Options. */ function recruiter_mail_tokens(&$replacements, $data, $options = []) { if (isset($data['user'])) { $replacements['[user:one-time-login-url]'] = user_pass_reset_url($data['user'], $options); $replacements['[user:cancel-url]'] = user_cancel_url($data['user'], $options); } } function recruiter_help($route_name, RouteMatchInterface $route_match) { switch ($route_name) { case 'help.page.recruiter': $helpText = <<< EOT

Disciple Delegater

This custom module allows disciples to be signed up and assigned to the website team. A Site Architect can invite people to become Coverings of community pages, and coverings can invite disciples to their communities' pages.

The email template can be edited here (new user created by administrator)

EOT; return($helpText); } }