niobi-8.x-2.0-alpha4/modules/niobi_resource/niobi_resource.install

modules/niobi_resource/niobi_resource.install
<?php
/**
 * @file
 */

use Drupal\Core\Config\ConfigFactoryOverrideInterface;

/**
 * Implements hook_install().
 *
 */
function niobi_resource_install() {
  \Drupal::service('config.installer')->installDefaultConfig('module', 'niobi_resource');
  /**
   * Install the custom configs for group & department dashboards
   */
  $group_config = \Drupal::configFactory()->getEditable('core.entity_view_display.group.group.default');
  $group_settings = $group_config->getOriginal('third_party_settings');
  $group_settings['field_group']['group_resources'] = array(
    'children' => array('niobi_resource_resources_in_group_entity_view_1'),
    'label' => 'Resources',
    'parent_name' => 'group_group_tabs',
    'weight' => '21',
    'format_type' => 'tab',
    'format_settings' => array(
      'id' => '',
      'classes' => '',
      'formatter' => 'closed',
      'description' => '',
    ),
  );
  $group_settings['field_group']['group_group_tabs']['children'][] = 'group_resources';
  $group_config->set('third_party_settings', $group_settings)->save();

  $dept_config = \Drupal::configFactory()->getEditable('core.entity_view_display.group.department.default');
  $dept_settings = $dept_config->getOriginal('third_party_settings');
  $dept_settings['field_group']['department_resources'] = array(
    'children' => array('niobi_resource_resources_in_group_entity_view_2'),
    'label' => 'Resources',
    'parent_name' => 'group_department_tabs',
    'weight' => '21',
    'format_type' => 'tab',
    'format_settings' => array(
      'id' => '',
      'classes' => '',
      'formatter' => 'closed',
      'description' => '',
    ),
  );
  $group_settings['field_group']['group_department_tabs']['children'][] = 'department_resources';
  $dept_config->set('third_party_settings', $dept_settings)->save();

  /**
   * Install Basic Page config on group/department dashboard
   */
  $group_storage_config = \Drupal::configFactory()->getEditable('views.view.niobi_resource_resources_in_group');
  $group_settings = $group_storage_config->getOriginal('display');
  $group_settings['default']['display_options']['header']['views_add_button_basic_page'] = array(
    'id' => 'views_add_button',
    'table' => 'views',
    'field' => 'views_add_button',
    'relationship' => 'none',
    'group_type' => 'group',
    'admin_label' => '',
    'empty' => TRUE,
    'tokenize' => TRUE,
    'type' => 'group_content+group_content_type_b6b3b269ddc6b',
    'context' => '{{ raw_arguments.gid }}',
    'button_text' => '+ Add Basic Page',
    'button_classes' => 'btn btn-success button',
    'button_attributes' => '',
    'button_prefix' => [
      'value' => '',
      'format' => 'basic_html',
    ],
    'button_suffix' => [
      'value' => '&nbsp;&nbsp;',
      'format' => 'basic_html'
    ],
    'query_string' => '',
    'destination' => TRUE,
    'plugin_id' => 'views_add_button_area',
  );
  $group_storage_config->set('display', $group_settings)->save();

  $dept_storage_config = \Drupal::configFactory()->getEditable('views.view.niobi_resource_resources_in_group');
  $dept_settings = $dept_storage_config->getOriginal('display');
  $dept_settings['entity_view_2']['display_options']['header']['views_add_button_basic_page'] = array(
    'id' => 'views_add_button',
    'table' => 'views',
    'field' => 'views_add_button',
    'relationship' => 'none',
    'group_type' => 'group',
    'admin_label' => '',
    'empty' => TRUE,
    'tokenize' => TRUE,
    'type' => 'group_content+group_content_type_b6b3b269ddc6b',
    'context' => '{{ raw_arguments.gid }}',
    'button_text' => '+ Add Single Form',
    'button_classes' => 'btn btn-success button',
    'button_attributes' => '',
    'button_prefix' => [
      'value' => '',
      'format' => 'basic_html',
    ],
    'button_suffix' => [
      'value' => '&nbsp;&nbsp;',
      'format' => 'basic_html'
    ],
    'query_string' => '',
    'destination' => TRUE,
    'plugin_id' => 'views_add_button_area',
  );
  $dept_storage_config->set('display', $dept_settings)->save();

}

/**
 * Implements hook_uninstall().
 */
function niobi_resource_uninstall() {
  /**
   * Uninstall custom configs for group dashboard
   */
  $group_config = \Drupal::configFactory()->getEditable('core.entity_view_display.group.group.default');
  $group_settings = $group_config->getOriginal('third_party_settings');
  unset($group_settings['field_group']['group_resources']);
  $group_settings['field_group']['group_group_tabs']['children'] = array_diff($group_settings['field_group']['group_group_tabs']['children'], ['group_resources']);
  $group_config->set('third_party_settings', $group_settings)->save();

  $dept_config = \Drupal::configFactory()->getEditable('core.entity_view_display.group.department.default');
  $dept_settings = $dept_config->getOriginal('third_party_settings');
  unset($dept_settings['field_group']['department_resources']);
  $dept_settings['field_group']['group_department_tabs']['children'] = array_diff($group_settings['field_group']['group_department_tabs']['children'], ['department_resources']);
  $dept_config->set('third_party_settings', $dept_settings)->save();

  \Drupal::service('config.manager')->uninstall('module', 'niobi_resource');
}

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

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