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++; } } }