event_platform-1.0.x-dev/event_platform_sessions/event_platform_sessions.install

event_platform_sessions/event_platform_sessions.install
<?php

/**
 * @file
 * Install, update and uninstall functions for the Event Platform Sessions module.
 */

use Drupal\taxonomy\Entity\Term;
use Drupal\user\Entity\Role;

/**
 * Implements hook_install().
 */
function event_platform_sessions_install() {
  // Update registration_role config.
  $config = \Drupal::configFactory()->getEditable('registration_role.setting');
  $config->set('role_to_select', ['speaker' => 'speaker'])->save();

  // Update registration_role config.
  $config = \Drupal::configFactory()->getEditable('user.settings');
  $config->set('register', 'visitors')->save();

  // Add permission to view field_r and field_time_slot.
  foreach (['anonymous', 'authenticated'] as $role) {
    $role_object = Role::load($role);
    $role_object->grantPermission('access user profiles');
    $role_object->grantPermission('view field_r');
    $role_object->grantPermission('view field_time_slot');
    $role_object->save();
  }

  // Update user compact display.
  $view_storage = \Drupal::entityTypeManager()->getStorage('entity_view_display');
  $view_display = $view_storage->load('user.user.compact');
  $view_display->setComponent('field_display_name', [
    'type' => 'string',
    'label' => 'hidden',
    'settings' => ['link_to_entity' => TRUE],
    'weight' => 1,
   ])
   ->removeComponent('field_bio')
   ->removeComponent('member_for');
  $view_display->save();

  // Update user default display.
  $view_display = $view_storage->load('user.user.default');
  $view_display->setComponent('field_bio', [
    'type' => 'text_default',
    'label' => 'above',
    'weight' => 3,
  ])
  ->setComponent('field_display_name', [
    'type' => 'string',
    'label' => 'hidden',
    'settings' => ['link_to_entity' => FALSE],
    'weight' => 2,
  ])
  ->removeComponent('member_for');
  $view_display->save();

  // Update user default form.
  $view_storage = \Drupal::entityTypeManager()->getStorage('entity_form_display');
  $view_display = $view_storage->load('user.user.default');
  $view_display->setComponent('field_bio', [
    'type' => 'text_textarea',
    'settings' => ['rows' => 5],
    'weight' => 2,
  ])
  ->setComponent('field_display_name', [
    'type' => 'string_textfield',
    'settings' => ['size' => 60],
    'weight' => 1,
  ])
  ->removeComponent('path');
  $view_display->save();

  // Nested array to hold default term data.
  $terms['session_audience'] = [
    'All Attendees',
    'Beginner',
    'Intermediate',
    'Advanced',
  ];

  $terms['session_category'] = [
    'New to Drupal',
    'Development & Performance',
    'Project Management & Consulting',
    'Off the "Drupal Island"',
    'Site-Building',
    'Theming, Design, & Usability',
  ];

  $terms['room'] = [
    'Room A',
    'Room B',
    'Room C',
  ];

  foreach ($terms as $vocab => $vocab_terms) {
    $index = 0;
    foreach ($vocab_terms as $label) {
      // Create the taxonomy term.
      $new_term = Term::create([
        'name' => $label,
        'vid' => $vocab,
      ]);
      $new_term->setWeight($index);

      // Save the taxonomy term.
      $new_term->save();
      $index++;
    }
  }
}

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

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