102 lines
3.4 KiB
Plaintext
102 lines
3.4 KiB
Plaintext
<?php
|
|
|
|
use Drupal\Component\Render\PlainTextOutput;
|
|
use Drupal\Core\Routing\RouteMatchInterface;
|
|
|
|
/**
|
|
* Implements hook_form_alter()
|
|
*/
|
|
function recruiter_form_user_admin_settings_alter(&$form, $form_state) {
|
|
|
|
$mail_config = \Drupal::config('recruiter.mail');
|
|
|
|
$form['email_resend_invite'] = [
|
|
'#type' => '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
|
|
<h2>Disciple Delegater</h2>
|
|
<p>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.<p>
|
|
<p>The email template can be <a href="/admin/config/people/accounts#edit-email-admin-created" target="_blank">edited here (new user created
|
|
by administrator)</a></p>
|
|
EOT;
|
|
return($helpText);
|
|
}
|
|
}
|