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' => ' ',
'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' => ' ',
'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');
}