localgov_microsites_group-4.1.0/modules/localgov_microsites_events/localgov_microsites_events.install

modules/localgov_microsites_events/localgov_microsites_events.install
<?php

/**
 * @file
 * LocalGov Microsites Events module file.
 */

use Drupal\search_api\Entity\Index;

/**
 * Implements hook_install().
 */
function localgov_microsites_events_install($is_syncing) {

  if ($is_syncing) {
    return;
  }

  // Get display settings for events.
  /** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display */
  $form_display = \Drupal::entityTypeManager()
    ->getStorage('entity_form_display')
    ->load('node.localgov_event.default');
  /** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $view_display */
  $view_display = \Drupal::entityTypeManager()
    ->getStorage('entity_view_display')
    ->load('node.localgov_event.default');

  // Set form display options for paragraph content.
  if (!$form_display->getComponent('localgov_paragraph_content')) {
    $form_display->setComponent('localgov_paragraph_content', [
      'type' => 'layout_paragraphs',
      'region' => 'content',
      'settings' => [
        'preview_view_mode' => 'default',
        'nesting_depth' => 0,
        'require_layouts' => 1,
      ],
      'weight' => 5,
    ]);
    $group_details = $form_display->getThirdPartySetting('field_group', 'group_details');
    $group_details['children'][] = 'localgov_paragraph_content';
    $form_display->setThirdPartySetting('field_group', 'group_details', $group_details);
    $form_display->save();
  }
  // Set form display options for banner.
  if (!$form_display->getComponent('lgms_banner')) {
    $form_display->setComponent('lgms_banner', [
      'type' => 'entity_reference_paragraphs',
      'region' => 'content',
      'settings' => [
        'edit_mode' => 'closed',
        'add_mode' => 'button',
      ],
      'weight' => 3,
    ]);
    $group_details = $form_display->getThirdPartySetting('field_group', 'group_details');
    $group_details['children'][] = 'lgms_banner';
    $form_display->setThirdPartySetting('field_group', 'group_details', $group_details);
    $form_display->save();
  }

  // Set view display options for event categories.
  if (!$view_display->getComponent('localgov_event_categories')) {
    $view_display->setComponent('localgov_event_categories', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }
  else {
    $view_display->setComponent('localgov_event_categories', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }

  // Set view display options for event locality.
  if (!$view_display->getComponent('localgov_event_locality')) {
    $view_display->setComponent('localgov_event_locality', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }
  else {
    $view_display->setComponent('localgov_event_locality', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }

  // Set view display options for event provider.
  if (!$view_display->getComponent('localgov_event_provider')) {
    $view_display->setComponent('localgov_event_provider', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }
  else {
    $view_display->setComponent('localgov_event_provider', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }

  // Set view display options for event venue.
  if (!$view_display->getComponent('localgov_event_venue')) {
    $view_display->setComponent('localgov_event_venue', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }
  else {
    $view_display->setComponent('localgov_event_venue', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }

  // Set view display options for event price.
  if (!$view_display->getComponent('localgov_event_price')) {
    $view_display->setComponent('localgov_event_price', [
      'type' => 'entity_reference_label',
      'region' => 'content',
      'label' => 'hidden',
      'weight' => 4,
    ])->save();
  }

  // Set view display options for paragraph content.
  if (!$view_display->getComponent('localgov_paragraph_content')) {
    $view_display->setComponent('localgov_paragraph_content', [
      'type' => 'layout_paragraphs',
      'label' => 'hidden',
      'region' => 'content',
      'settings' => [
        'view_mode' => 'default',
        'link' => '',
      ],
      'weight' => 5,
    ])->save();
  }

  // Set view display options for banner.
  if (!$view_display->getComponent('lgms_banner')) {
    $view_display->setComponent('lgms_banner', [
      'type' => 'layout_paragraphs',
      'label' => 'hidden',
      'region' => 'content',
      'settings' => [
        'view_mode' => 'default',
        'link' => '',
      ],
      'weight' => 0,
    ])->save();
  }

  // Create field_group for banner section.
  $group_view_banner = new stdClass();
  $group_view_banner->group_name = 'group_banner';
  $group_view_banner->context = 'view';
  $group_view_banner->entity_type = 'node';
  $group_view_banner->bundle = 'localgov_event';
  $group_view_banner->mode = 'default';
  $group_view_banner->label = 'Banner';
  $group_view_banner->region = 'content';
  $group_view_banner->parent_name = '';
  $group_view_banner->weight = '0';
  $group_view_banner->children = [
    'lgms_banner',
  ];
  $group_view_banner->format_type = 'html_element';
  $group_view_banner->format_settings = [
    'classes' => 'full__banner',
    'show_empty_fields' => FALSE,
    'id' => '',
    'element' => 'div',
    'show_label' => FALSE,
    'label_element' => 'h3',
    'label_element_classes' => '',
    'attributes' => '',
    'effect' => 'none',
    'speed' => 'fast',
  ];
  field_group_group_save($group_view_banner);

  // Create field_group for page_top section.
  $group_view_page_top = new stdClass();
  $group_view_page_top->group_name = 'group_page_top';
  $group_view_page_top->context = 'view';
  $group_view_page_top->entity_type = 'node';
  $group_view_page_top->bundle = 'localgov_event';
  $group_view_page_top->mode = 'default';
  $group_view_page_top->label = 'Page Top';
  $group_view_page_top->region = 'content';
  $group_view_page_top->parent_name = '';
  $group_view_page_top->weight = '0';
  $group_view_page_top->children = [
    'localgov_event_image',
    'localgov_event_categories',
    'localgov_event_date',
    'localgov_event_location',
    'localgov_event_locality',
    'localgov_event_price',
    'localgov_event_provider',
    'localgov_event_venue',
  ];
  $group_view_page_top->format_type = 'html_element';
  $group_view_page_top->format_settings = [
    'classes' => 'full__page-top',
    'show_empty_fields' => FALSE,
    'id' => '',
    'element' => 'div',
    'show_label' => FALSE,
    'label_element' => 'h3',
    'label_element_classes' => '',
    'attributes' => '',
    'effect' => 'none',
    'speed' => 'fast',
  ];
  field_group_group_save($group_view_page_top);

  // Use the group term reference plugin for the term fields.
  $field_names = [
    'localgov_event_categories',
    'localgov_event_locality',
    'localgov_event_price',
  ];
  foreach ($field_names as $field_name) {
    /** @var \Drupal\field\Entity\FieldConfig $field */
    $field = Drupal::entityTypeManager()
      ->getStorage('field_config')
      ->load('node.localgov_event.' . $field_name);
    $field->setSetting('handler', 'group:taxonomy_term');
    $field->save();
  }

  // Add domain access to exclude other sites results.
  $index = Index::load('localgov_events');
  $processor = \Drupal::getContainer()
    ->get('search_api.plugin_helper')
    ->createProcessorPlugin($index, 'domain_group_entity_access');
  $index->addProcessor($processor);
  $index->save();

  // Update the localgov_embed_views to allow the lgms_embed_view_events view.
  /** @var \Drupal\field\Entity\FieldConfig $field */
  $field = Drupal::entityTypeManager()
    ->getStorage('field_config')
    ->load('paragraph.localgov_embed_views.localgov_embed_block_view');
  $preselect_views = $field->getSetting('preselect_views');
  $preselect_views['lgms_embed_view_events'] = 'lgms_embed_view_events';
  $field->setSetting('preselect_views', $preselect_views);
  $field->save();
}

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

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