Chris@14: t('Experimental installation profile used'), Chris@14: 'value' => $info['name'], Chris@14: 'description' => t('Experimental profiles are provided for testing purposes only. Use at your own risk. To start building a new site, reinstall Drupal and choose a non-experimental profile.'), Chris@14: 'severity' => REQUIREMENT_WARNING, Chris@14: ]; Chris@14: } Chris@14: return $requirements; Chris@14: } Chris@14: Chris@14: /** Chris@14: * Implements hook_install(). Chris@14: * Chris@14: * Perform actions to set up the site for this profile. Chris@14: * Chris@14: * @see system_install() Chris@14: */ Chris@14: function demo_umami_install() { Chris@14: // Assign user 1 the "administrator" role. Chris@14: $user = User::load(1); Chris@14: $user->roles[] = 'administrator'; Chris@14: $user->save(); Chris@14: Chris@14: // We install some menu links, so we have to rebuild the router, to ensure the Chris@14: // menu links are valid. Chris@14: \Drupal::service('router.builder')->rebuildIfNeeded(); Chris@14: Chris@14: // Populate the default shortcut set. Chris@14: $shortcut = Shortcut::create([ Chris@14: 'shortcut_set' => 'default', Chris@14: 'title' => t('Add content'), Chris@14: 'weight' => -20, Chris@14: 'link' => ['uri' => 'internal:/node/add'], Chris@14: ]); Chris@14: $shortcut->save(); Chris@14: Chris@14: $shortcut = Shortcut::create([ Chris@14: 'shortcut_set' => 'default', Chris@14: 'title' => t('All content'), Chris@14: 'weight' => -19, Chris@14: 'link' => ['uri' => 'internal:/admin/content'], Chris@14: ]); Chris@14: $shortcut->save(); Chris@14: Chris@14: // Enable the demo content module. This can't be specified as a dependency Chris@14: // in the demo_umami.info.yml file, as it requires configuration provided by Chris@14: // the profile (fields etc.). Chris@14: \Drupal::service('module_installer')->install(['demo_umami_content'], TRUE); Chris@14: }