demo_umami.install

Same filename in other branches
  1. 8.9.x core/profiles/demo_umami/demo_umami.install
  2. 10 core/profiles/demo_umami/demo_umami.install
  3. 11.x core/profiles/demo_umami/demo_umami.install

Install, update and uninstall functions for the demo_umami installation profile.

File

core/profiles/demo_umami/demo_umami.install

View source
<?php


/**
 * @file
 * Install, update and uninstall functions for the demo_umami installation profile.
 */
use Drupal\user\Entity\User;
use Drupal\shortcut\Entity\Shortcut;

/**
 * Implements hook_requirements().
 */
function demo_umami_requirements($phase) {
    $requirements = [];
    if ($phase == 'runtime') {
        $profile = \Drupal::installProfile();
        $info = \Drupal::service('extension.list.profile')->getExtensionInfo($profile);
        $requirements['experimental_profile_used'] = [
            'title' => 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.
    
    /** @var \Drupal\user\Entity\User $user */
    $user = User::load(1);
    $user->addRole('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);
}

Functions

Title Deprecated Summary
demo_umami_install Implements hook_install().
demo_umami_requirements Implements hook_requirements().

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.