diff --git a/src/EasyBreadcrumbBuilder.php b/src/EasyBreadcrumbBuilder.php index e59c1ee77d04ffb279a56b0ac8103bffbc236024..4dac6ea4c632f14adc404f543e15b076d57d85c1 100644 --- a/src/EasyBreadcrumbBuilder.php +++ b/src/EasyBreadcrumbBuilder.php @@ -933,7 +933,8 @@ class EasyBreadcrumbBuilder implements BreadcrumbBuilderInterface { } // Get the site base path. - $base_path = \Drupal::request()->getBasePath(); + $request = $this->requestStack->getCurrentRequest(); + $base_path = $request->getBasePath(); // Adjust redirect_path to include base_path if not already included. // Prevent double slashes. @@ -952,7 +953,7 @@ class EasyBreadcrumbBuilder implements BreadcrumbBuilderInterface { ->findMatchingRedirect($redirect_path, [], $this->languageManager->getCurrentLanguage() ->getId()); } - catch (\Exception $exception ) { + catch (\Exception $exception) { // Do nothing for now. } if ($redirect) { diff --git a/src/Form/EasyBreadcrumbGeneralSettingsForm.php b/src/Form/EasyBreadcrumbGeneralSettingsForm.php index 9951f64e4cfad79d279dde650c68ac1176948a71..8c75e1b0298dab98f62c3579ddad663cbf39500d 100644 --- a/src/Form/EasyBreadcrumbGeneralSettingsForm.php +++ b/src/Form/EasyBreadcrumbGeneralSettingsForm.php @@ -2,15 +2,36 @@ namespace Drupal\easy_breadcrumb\Form; +use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\easy_breadcrumb\EasyBreadcrumbConstants; -use Drupal\system\Entity\Menu; +use Symfony\Component\DependencyInjection\ContainerInterface; /** * Build Easy Breadcrumb settings form. */ class EasyBreadcrumbGeneralSettingsForm extends ConfigFormBase { + use StringTranslationTrait; + + protected $entityTypeManager; + + /** + * {@inheritdoc} + */ + public function __construct(EntityTypeManagerInterface $entityTypeManager) { + $this->entityTypeManager = $entityTypeManager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('entity_type.manager') + ); + } /** * {@inheritdoc} @@ -127,13 +148,13 @@ class EasyBreadcrumbGeneralSettingsForm extends ConfigFormBase { $menu_list = array_map(function ($menu) { return $menu->label(); - }, Menu::loadMultiple()); + }, $this->entityTypeManager->getStorage('menu')->loadMultiple()); asort($menu_list); $details_general[EasyBreadcrumbConstants::MENU_TITLE_PREFERRED_MENU] = [ '#type' => 'select', '#title' => $this->t('Preferred menu'), '#options' => $menu_list, - '#empty_option' => t('- None -'), + '#empty_option' => $this->t('- None -'), '#empty_value' => '', '#description' => $this->t('Preferred menu to use as menu title source. Useful if menu links with identical paths exist in multiple menus.'), '#default_value' => $config->get(EasyBreadcrumbConstants::MENU_TITLE_PREFERRED_MENU), @@ -378,7 +399,7 @@ class EasyBreadcrumbGeneralSettingsForm extends ConfigFormBase { $details_advanced[EasyBreadcrumbConstants::TRUNCATOR_MODE] = [ '#type' => 'checkbox', '#title' => $this->t("Truncate the page's title to a maximum number."), - '#description' => t("Example: if you set it to 10, from <em>Long page title</em> will be <em>Long pa...</em>"), + '#description' => $this->t("Example: if you set it to 10, from <em>Long page title</em> will be <em>Long pa...</em>"), '#default_value' => $config->get(EasyBreadcrumbConstants::TRUNCATOR_MODE), ];