recurring_events-2.0.x-dev/modules/recurring_events_registration/modules/recurring_events_reminders/recurring_events_reminders.install

modules/recurring_events_registration/modules/recurring_events_reminders/recurring_events_reminders.install
<?php

/**
 * @file
 * Install and update functions for the Registration Reminders submodule.
 */

declare(strict_types=1);

use Drupal\Core\Field\BaseFieldDefinition;

/**
 * Install the schema updates for eventseries entities to add registration.
 *
 * @see hook_install()
 */
function recurring_events_reminders_install() {
  // Add the registration reminders custom field to eventseries.
  $storage_definition = BaseFieldDefinition::create('registration_reminders')
    ->setName('registration_reminders')
    ->setLabel(t('Event Registration Reminders'))
    ->setDescription('The event registration reminders configuration.')
    ->setDisplayConfigurable('form', TRUE)
    ->setDisplayConfigurable('view', TRUE)
    ->setRevisionable(TRUE)
    ->setTranslatable(FALSE)
    ->setCardinality(1)
    ->setRequired(FALSE)
    ->setDisplayOptions('form', [
      'type' => 'registration_reminders',
      'weight' => 11,
    ]);

  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('registration_reminders', 'eventseries', 'eventseries', $storage_definition);

  // Add a field to eventinstances to store the desired reminder date.
  $storage_definition = BaseFieldDefinition::create('timestamp')
    ->setName('reminder_date')
    ->setLabel(t('Reminder Date'))
    ->setDescription('The date that reminders should be sent.')
    ->setDisplayConfigurable('form', FALSE)
    ->setDisplayConfigurable('view', FALSE)
    ->setRevisionable(FALSE)
    ->setTranslatable(FALSE)
    ->setCardinality(1)
    ->setRequired(FALSE);

  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('reminder_date', 'eventinstance', 'eventinstance', $storage_definition);

  // Add a field to eventinstances to store date reminders were sent.
  $storage_definition = BaseFieldDefinition::create('timestamp')
    ->setName('reminder_sent')
    ->setLabel(t('Reminder Sent'))
    ->setDescription('The date that reminders were sent.')
    ->setDisplayConfigurable('form', FALSE)
    ->setDisplayConfigurable('view', FALSE)
    ->setRevisionable(FALSE)
    ->setTranslatable(FALSE)
    ->setCardinality(1)
    ->setRequired(FALSE);

  \Drupal::entityDefinitionUpdateManager()
    ->installFieldStorageDefinition('reminder_sent', 'eventinstance', 'eventinstance', $storage_definition);

  // Set the default reminder email subject and body config.
  $config = \Drupal::configFactory()->getEditable('recurring_events_registration.registrant.config');
  $values = $config->get('notifications');
  $values['registration_reminder'] = [
    'enabled' => TRUE,
    'subject' => 'Upcoming Event Reminder',
    'body' => '[eventseries:reminder_message]',
  ];
  $config->set('notifications', $values);
  $config->save(TRUE);
}

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

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