You are here

thunder_liveblog.install in Thunder 8.5

The install file.

File

modules/thunder_liveblog/thunder_liveblog.install
View source
<?php

/**
 * @file
 * The install file.
 */
use Drupal\field\Entity\FieldConfig;
use Drupal\user\Entity\Role;

/**
 * Implements hook_install().
 *
 * Configures form and view display of the field_embed_media.
 */
function thunder_liveblog_install() {

  // Add permissions to thunder users.
  $liveblog_permissions = [
    'add liveblog_post entity',
    'create liveblog content',
    'delete any liveblog content',
    'delete liveblog revisions',
    'delete liveblog_post entity',
    'delete own liveblog content',
    'edit any liveblog content',
    'edit liveblog_post entity',
    'edit own liveblog content',
    'revert liveblog revisions',
    'view liveblog revisions',
  ];
  foreach ([
    'editor',
    'seo',
  ] as $role) {
    if ($role = Role::load($role)) {
      foreach ($liveblog_permissions as $permission) {
        $role
          ->grantPermission($permission);
      }
      $role
        ->save();
    }
  }
}

/**
 * Delete liveblog provided config, we have our own.
 */
function thunder_liveblog_module_preinstall($module) {
  if ('thunder_liveblog' == $module) {
    $entity_query = \Drupal::entityQuery('node');
    $results = $entity_query
      ->condition('type', 'liveblog')
      ->exists('body')
      ->count()
      ->execute();
    if (($field = FieldConfig::load('node.liveblog.body')) && !$results) {
      $field
        ->delete();
      field_purge_batch(10);
    }
    $configs = [
      'core.entity_form_display.node.liveblog.default',
      'core.entity_form_display.liveblog_post.liveblog_post.default',
      'core.entity_view_display.liveblog_post.liveblog_post.default',
      'core.entity_view_display.node.liveblog.default',
    ];
    $configFactory = \Drupal::configFactory();
    foreach ($configs as $config) {
      $configFactory
        ->getEditable($config)
        ->delete();
    }
  }
}

Functions

Namesort descending Description
thunder_liveblog_install Implements hook_install().
thunder_liveblog_module_preinstall Delete liveblog provided config, we have our own.