You are here

lightning_page.module in Lightning Core 8.3

File

modules/lightning_page/lightning_page.module
View source
<?php

use Drupal\field\FieldConfigInterface;
use Drupal\node\Entity\NodeType;
use Drupal\workflows\Entity\Workflow;

/**
 * Implements hook_modules_installed().
 */
function lightning_page_modules_installed(array $modules) {
  if (Drupal::isConfigSyncing()) {
    return;
  }
  if (in_array('layout_library', $modules, TRUE)) {

    /** @var \Drupal\layout_builder\Entity\LayoutEntityDisplayInterface $display */
    $display = lightning_core_entity_get_display('node', 'page');
    $display
      ->enableLayoutBuilder()
      ->setThirdPartySetting('layout_library', 'enable', TRUE)
      ->save();
  }
  if (in_array('lightning_workflow', $modules, TRUE)) {
    $workflow = Workflow::load('editorial');

    /** @var \Drupal\content_moderation\Plugin\WorkflowType\ContentModerationInterface $plugin */
    $plugin = $workflow
      ->getTypePlugin();
    $plugin
      ->addEntityTypeAndBundle('node', 'page');
    $workflow
      ->save();
  }
  if (in_array('menu_ui', $modules, TRUE)) {
    NodeType::load('page')
      ->setThirdPartySetting('menu_ui', 'available_menus', [
      'main',
    ])
      ->setThirdPartySetting('menu_ui', 'parent', 'main:')
      ->save();
  }
}

/**
 * Implements hook_ENTITY_TYPE_insert().
 */
function lightning_page_field_config_insert(FieldConfigInterface $field) {

  // Don't do anything during config sync.
  if (\Drupal::isConfigSyncing()) {
    return;
  }
  elseif ($field
    ->id() == 'node.page.field_meta_tags') {
    lightning_core_entity_get_display('node', 'page')
      ->setComponent('field_meta_tags', [
      'type' => 'metatag_empty_formatter',
      'region' => 'content',
    ])
      ->save();
    lightning_core_entity_get_form_display('node', 'page')
      ->setComponent('field_meta_tags', [
      'type' => 'metatag_firehose',
      'region' => 'content',
    ])
      ->save();
  }
}