sector_events-3.0.x-dev/sector_events.install

sector_events.install
<?php

/**
 * @file
 * Contains install tasks for the sector_events.module.
 */

use Drupal\block\Entity\Block;

/**
 * Implements hook_install
 *
 * Adds permissions to the content editor role.
 * Creates the default xmlsitemap settings for the event content type.
 */
function sector_events_install() {
  user_role_grant_permissions(
    'content_editor',
    [
      'create event content',
      'delete any event content',
      'delete own event content',
      'edit any event content',
      'edit own event content',
      'revert event revisions',
      'view event revisions',
    ]
  );
  user_role_grant_permissions(
    'content_administrator',
    [
      'create event content',
      'delete any event content',
      'delete own event content',
      'edit any event content',
      'edit own event content',
      'revert event revisions',
      'view event revisions',
    ]
  );

  // Check Xmlsitemap module is enabled.
  $moduleHandler = \Drupal::service('module_handler');
  if($moduleHandler->moduleExists('xmlsitemap')) {
    // Default data array for events.
    $data = [
      'status' => TRUE,
      'priority' => 0.5,
      'changefreq' => 86400,
    ];
    // Load the config and save our default data.
    \Drupal::configFactory()->getEditable("xmlsitemap.settings.node.event")->setData($data)->save();
  }
  // Create the block for sector events.
  $block = Block::create([
    'id' => 'sector_event_event_type',
    'langcode' => 'en',
    'status' => 'true',
    'third_party_settings' => [
      'block_class' => [
        'classes' => 'd-inline-flex badge badge-secondary mb-4'
      ]
    ],
    'theme' => 'sector_radix_starter',
    'region' => 'pre_content',
    'weight' => -16,
    'provider' => 'null',
    'plugin' => 'fieldblock:node',
    'settings' => [
      'id' => 'fieldblock:node',
      'label' => 'Event type',
      'provider' => 'fieldblock',
      'label_display' => 0,
      'label_from_field' => 1,
      'field_name' => 'field_event_category',
      'formatter_id' => 'entity_reference_label',
      'formatter_settings' => [
        'link' => 0
      ],
    ],
    'visibility' => [
      'node_type' => [
        'id' => 'node_type',
        'bundles' => [
          'event' => 'event'
        ],
        'negate' => false,
        'context_mapping' => [
          'node' => '@node.node_route_context:node',
        ]
      ],
      'term' => [
        'id' => 'term',
        'negate' => false,
        'tid' => null,
        'context_mapping' => []
      ],
    ]
  ]);
  // Save the block.
  $block->save();
}

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

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