invokeAll('navigation_defaults'); $manager = \Drupal::service('plugin.manager.config_action'); foreach ($blocks as $block) { $manager->applyAction('addNavigationBlock', 'navigation.block_layout', $block); } } /** * Implements hook_requirements(). */ function navigation_requirements($phase): array { $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(); }