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