You are here

social_event_managers.install in Open Social 10.2.x

Install, update and uninstall functions for the social_event_managers module.

File

modules/social_features/social_event/modules/social_event_managers/social_event_managers.install
View source
<?php

/**
 * @file
 * Install, update and uninstall functions for the social_event_managers module.
 */
use Drupal\user\Entity\Role;
use Symfony\Component\Yaml\Yaml;

/**
 * Implements hook_install().
 *
 * Perform actions related to the installation of social_event_managers.
 */
function social_event_managers_install() {

  // Fetch site manager role.
  $role = Role::load('sitemanager');

  // Set permission for site manager.
  if ($role instanceof Role) {

    // Set permission.
    $role
      ->grantPermission('set social event managers settings');
    $role
      ->trustData()
      ->save();
  }

  // Add enrollments permissions to CM and SM.
  $roles = [
    'sitemanager',
    'contentmanager',
  ];
  foreach ($roles as $rolename) {
    $role = Role::load($rolename);

    // Set permission for site manager.
    if ($role instanceof Role) {

      // Set permission.
      $role
        ->grantPermission('manage everything enrollments');
      $role
        ->trustData()
        ->save();
    }
  }
}

/**
 * Perform actions related to the installation of social_event_managers.
 */
function social_event_managers_update_8001() {
  social_event_managers_install();
}

/**
 * Add manage enrollments permission to SM and CM.
 */
function social_event_managers_update_8003() {
  $roles = [
    'sitemanager',
    'contentmanager',
  ];
  foreach ($roles as $rolename) {
    $role = Role::load($rolename);

    // Set permission for site manager.
    if ($role instanceof Role) {

      // Set permission.
      $role
        ->grantPermission('manage everything enrollments');
      $role
        ->trustData()
        ->save();
    }
  }
}

/**
 * Add new field for rendered profile entity so we can sort it.
 *
 * Load in a config file from an specific update hook that will never change.
 * Update helper did not update all fields correctly.
 */
function social_event_managers_update_8004() {
  $config_file = drupal_get_path('module', 'social_event_managers') . '/config/update/social_event_managers_update_8004.yml';
  if (is_file($config_file)) {
    $settings = Yaml::parse(file_get_contents($config_file));
    if (is_array($settings)) {
      $config = \Drupal::configFactory()
        ->getEditable('views.view.event_manage_enrollments');
      $config
        ->setData($settings)
        ->save(TRUE);
    }
  }
}

/**
 * Update labels for event organiser field.
 */
function social_event_managers_update_8005() {

  // Load the existing configuration.
  $config_name = 'field.field.node.event.field_event_managers';
  $config = \Drupal::configFactory()
    ->getEditable($config_name);
  $config_data = $config
    ->getRawData();
  if (!empty($config_data['label'])) {

    // This to ensure any custom added values are not affected.
    if (strpos($config_data['label'], 'Event organisers') !== FALSE) {
      $config_data['label'] = 'Organizers';
    }
    $config
      ->setData($config_data)
      ->save();

    // Make sure we clear cached definitions for the fields.
    \Drupal::service('entity_field.manager')
      ->clearCachedFieldDefinitions();
  }
}

/**
 * Add translation compatibility for Event fields and views.
 */
function social_event_managers_update_8006() {

  /** @var \Drupal\update_helper\Updater $updateHelper */
  $updateHelper = \Drupal::service('update_helper.updater');

  // Execute configuration update definitions with logging of success.
  $updateHelper
    ->executeUpdate('social_event_managers', 'social_event_managers_update_8006');

  // Output logged messages to related channel of update execution.
  return $updateHelper
    ->logger()
    ->output();
}

Functions

Namesort descending Description
social_event_managers_install Implements hook_install().
social_event_managers_update_8001 Perform actions related to the installation of social_event_managers.
social_event_managers_update_8003 Add manage enrollments permission to SM and CM.
social_event_managers_update_8004 Add new field for rendered profile entity so we can sort it.
social_event_managers_update_8005 Update labels for event organiser field.
social_event_managers_update_8006 Add translation compatibility for Event fields and views.