Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

navigation.install

Install, update and uninstall functions for the navigation module.

File

core/modules/navigation/navigation.install

View source
<?php


/**
 * @file
 * Install, update and uninstall functions for the navigation module.
 */

/**
 * Implements hook_requirements().
 */
function navigation_requirements($phase) {
    $requirements = [];
    if ($phase === 'runtime') {
        if (\Drupal::moduleHandler()->moduleExists('toolbar')) {
            $requirements['toolbar'] = [
                'title' => t('Toolbar and Navigation modules are both installed'),
                'value' => t('The Navigation module is a complete replacement for the Toolbar module and disables its functionality when both modules are installed. If you are planning to continue using Navigation module, you can uninstall the Toolbar module now.'),
                'severity' => REQUIREMENT_WARNING,
            ];
        }
    }
    return $requirements;
}

/**
 * Reorganizes the values for the logo settings.
 */
function navigation_update_11001(array &$sandbox) : void {
    $settings = \Drupal::configFactory()->getEditable('navigation.settings');
    $settings->setData([
        'logo' => [
            'provider' => $settings->get('logo_provider'),
            'managed' => is_array($settings->get('logo_managed')) ? current($settings->get('logo_managed')) : $settings->get('logo_managed'),
            'max' => [
                'filesize' => $settings->get('logo_max_filesize'),
                'height' => $settings->get('logo_height') ?? 40,
                'width' => $settings->get('logo_width') ?? 40,
            ],
        ],
    ]);
    $settings->save(TRUE);
}

/**
 * Update for navigation logo to store the file path instead of ID.
 */
function navigation_update_11002(array &$sandbox) : void {
    $settings = \Drupal::configFactory()->getEditable('navigation.settings');
    $logo_path = '';
    if (!empty($settings->get('logo.managed'))) {
        $logo_fid = $settings->get('logo.managed');
        $file = \Drupal::entityTypeManager()->getStorage('file')
            ->load($logo_fid);
        if (isset($file)) {
            $logo_path = $file->getFileUri();
            // Delete file usage reference because they are not being used anymore.
            \Drupal::service('file.usage')->delete($file, 'navigation');
        }
    }
    $settings->set('logo.path', $logo_path);
    $settings->clear('logo.managed');
    $settings->save();
}

Functions

Title Deprecated Summary
navigation_requirements Implements hook_requirements().
navigation_update_11001 Reorganizes the values for the logo settings.
navigation_update_11002 Update for navigation logo to store the file path instead of ID.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal