You are here

htmlmail.install in HTML Mail 8.3

Install, update, and uninstall functions for the HTML Mail module.

File

htmlmail.install
View source
<?php

/**
 * @file
 * Install, update, and uninstall functions for the HTML Mail module.
 */

/**
 * Implements hook_install().
 */
function htmlmail_install() {
  $config = \Drupal::configFactory()
    ->getEditable('system.mail');
  $mail_plugins = $config
    ->get('interface');
  if (in_array('htmlmail', array_keys($mail_plugins))) {
    return;
  }
  $mail_plugins['htmlmail'] = 'HTMLMailMailSystem';
  $config
    ->set('interface', $mail_plugins)
    ->save();
  $config = \Drupal::configFactory()
    ->getEditable('mailsystem.settings');
  $config
    ->set('defaults.sender', 'htmlmail')
    ->set('defaults.formatter', 'htmlmail')
    ->save();
}

/**
 * Implements hook_uninstall().
 */
function htmlmail_uninstall() {
  $config = \Drupal::configFactory()
    ->getEditable('system.mail');
  $mail_plugins = $config
    ->get('interface');
  if (!in_array('htmlmail', array_keys($mail_plugins))) {
    return;
  }
  unset($mail_plugins['htmlmail']);
  $config
    ->set('interface', $mail_plugins)
    ->save();
  $config = \Drupal::configFactory()
    ->getEditable('mailsystem.settings');
  $config
    ->set('defaults.sender', 'php_mail')
    ->set('defaults.formatter', 'php_mail')
    ->save();
  \Drupal::configFactory()
    ->getEditable('htmlmail.settings')
    ->delete();
}

/**
 * Renames the HTML Mail configuration variables.
 *
 * @see https://www.drupal.org/project/htmlmail/issues/3168420
 */
function htmlmail_update_8301() {
  $config = \Drupal::configFactory()
    ->getEditable('htmlmail.settings');

  // Copy old configuration to new configuration.
  $config
    ->set('debug', $config
    ->get('htmlmail_debug'))
    ->set('theme', $config
    ->get('htmlmail_theme'))
    ->set('html_with_plain', $config
    ->get('htmlmail_html_with_plain'))
    ->set('use_mime_mail', $config
    ->get('htmlmail_use_mime_mail'))
    ->set('postfilter', $config
    ->get('htmlmail_postfilter'))
    ->set('test', $config
    ->get('htmlmail_test'));

  // Remove old configuration.
  $config
    ->clear('htmlmail_debug')
    ->clear('htmlmail_theme')
    ->clear('htmlmail_html_with_plain')
    ->clear('htmlmail_use_mime_mail')
    ->clear('htmlmail_postfilter')
    ->clear('htmlmail_test');

  // Save modified configuration.
  $config
    ->save('TRUE');
}

/**
 * Renames the 'use_mime_mail' configuration variable to 'use_mail_mime'.
 *
 * @see https://www.drupal.org/project/htmlmail/issues/3169313
 */
function htmlmail_update_8302() {
  $config = \Drupal::configFactory()
    ->getEditable('htmlmail.settings');

  // Copy old configuration to new configuration.
  $config
    ->set('use_mail_mime', $config
    ->get('use_mime_mail'));

  // Remove old configuration.
  $config
    ->clear('use_mime_mail');

  // Save modified configuration.
  $config
    ->save('TRUE');
}

Functions

Namesort descending Description
htmlmail_install Implements hook_install().
htmlmail_uninstall Implements hook_uninstall().
htmlmail_update_8301 Renames the HTML Mail configuration variables.
htmlmail_update_8302 Renames the 'use_mime_mail' configuration variable to 'use_mail_mime'.