Loading config/install/easy_breadcrumb.settings.yml +1 −0 Changes for config/install/easy_breadcrumb.settings.yml: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ include_title_segment: true language_path_prefix_as_segment: false use_menu_title_as_fallback: false use_page_title_as_menu_title_fallback: false menu_title_preferred_menu: '' remove_repeated_segments: true term_hierarchy: false absolute_paths: false Loading config/schema/easy_breadcrumb.schema.yml +3 −0 Changes for config/schema/easy_breadcrumb.schema.yml: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -49,6 +49,9 @@ easy_breadcrumb.settings: use_page_title_as_menu_title_fallback: type: boolean label: 'Use the page title as a fallback if the menu title is not set' menu_title_preferred_menu: type: string label: 'Preferred menu to use as menu title source' remove_repeated_segments: type: boolean label: 'Remove repeated identical segments' Loading src/EasyBreadcrumbBuilder.php +16 −0 Changes for src/EasyBreadcrumbBuilder.php: 16 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -539,8 +539,24 @@ class EasyBreadcrumbBuilder implements BreadcrumbBuilderInterface { } } } else { $preferred_menu = $this->config->get(EasyBreadcrumbConstants::MENU_TITLE_PREFERRED_MENU); if ($preferred_menu) { $preferred_found = FALSE; foreach ($menu_links as $link) { if ($link->getMenuName() == $preferred_menu) { $menu_link = $link; $preferred_found = TRUE; break; } } if (!$preferred_found) { $menu_link = reset($menu_links); } } else { $menu_link = reset($menu_links); } $title = $this->normalizeText($menu_link->getTitle()); if (array_key_exists($title, $replacedTitles)) { $title = $replacedTitles[$title]; Loading src/EasyBreadcrumbConstants.php +5 −0 Changes for src/EasyBreadcrumbConstants.php: 5 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -121,6 +121,11 @@ class EasyBreadcrumbConstants { */ const USE_PAGE_TITLE_AS_MENU_TITLE_FALLBACK = 'use_page_title_as_menu_title_fallback'; /** * Preferred menu to use as menu title source. */ const MENU_TITLE_PREFERRED_MENU = 'menu_title_preferred_menu'; /** * Use site title as the front page segment. */ Loading src/Form/EasyBreadcrumbGeneralSettingsForm.php +21 −0 Changes for src/Form/EasyBreadcrumbGeneralSettingsForm.php: 21 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace Drupal\easy_breadcrumb\Form; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\easy_breadcrumb\EasyBreadcrumbConstants; use Drupal\system\Entity\Menu; /** * Build Easy Breadcrumb settings form. Loading Loading @@ -112,6 +113,26 @@ class EasyBreadcrumbGeneralSettingsForm extends ConfigFormBase { '#default_value' => $config->get(EasyBreadcrumbConstants::USE_MENU_TITLE_AS_FALLBACK), ]; $menu_list = array_map(function ($menu) { return $menu->label(); }, 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_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), '#states' => [ 'disabled' => [ ':input[name="' . EasyBreadcrumbConstants::USE_MENU_TITLE_AS_FALLBACK . '"]' => ['checked' => FALSE], ], 'invisible' => [ ':input[name="' . EasyBreadcrumbConstants::USE_MENU_TITLE_AS_FALLBACK . '"]' => ['checked' => FALSE], ], ], ]; $details_general[EasyBreadcrumbConstants::USE_PAGE_TITLE_AS_MENU_TITLE_FALLBACK] = [ '#type' => 'checkbox', '#title' => $this->t('Use page title as fallback for menu title'), Loading Loading
config/install/easy_breadcrumb.settings.yml +1 −0 Changes for config/install/easy_breadcrumb.settings.yml: 1 added line, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ include_title_segment: true language_path_prefix_as_segment: false use_menu_title_as_fallback: false use_page_title_as_menu_title_fallback: false menu_title_preferred_menu: '' remove_repeated_segments: true term_hierarchy: false absolute_paths: false Loading
config/schema/easy_breadcrumb.schema.yml +3 −0 Changes for config/schema/easy_breadcrumb.schema.yml: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -49,6 +49,9 @@ easy_breadcrumb.settings: use_page_title_as_menu_title_fallback: type: boolean label: 'Use the page title as a fallback if the menu title is not set' menu_title_preferred_menu: type: string label: 'Preferred menu to use as menu title source' remove_repeated_segments: type: boolean label: 'Remove repeated identical segments' Loading
src/EasyBreadcrumbBuilder.php +16 −0 Changes for src/EasyBreadcrumbBuilder.php: 16 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -539,8 +539,24 @@ class EasyBreadcrumbBuilder implements BreadcrumbBuilderInterface { } } } else { $preferred_menu = $this->config->get(EasyBreadcrumbConstants::MENU_TITLE_PREFERRED_MENU); if ($preferred_menu) { $preferred_found = FALSE; foreach ($menu_links as $link) { if ($link->getMenuName() == $preferred_menu) { $menu_link = $link; $preferred_found = TRUE; break; } } if (!$preferred_found) { $menu_link = reset($menu_links); } } else { $menu_link = reset($menu_links); } $title = $this->normalizeText($menu_link->getTitle()); if (array_key_exists($title, $replacedTitles)) { $title = $replacedTitles[$title]; Loading
src/EasyBreadcrumbConstants.php +5 −0 Changes for src/EasyBreadcrumbConstants.php: 5 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -121,6 +121,11 @@ class EasyBreadcrumbConstants { */ const USE_PAGE_TITLE_AS_MENU_TITLE_FALLBACK = 'use_page_title_as_menu_title_fallback'; /** * Preferred menu to use as menu title source. */ const MENU_TITLE_PREFERRED_MENU = 'menu_title_preferred_menu'; /** * Use site title as the front page segment. */ Loading
src/Form/EasyBreadcrumbGeneralSettingsForm.php +21 −0 Changes for src/Form/EasyBreadcrumbGeneralSettingsForm.php: 21 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ namespace Drupal\easy_breadcrumb\Form; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\easy_breadcrumb\EasyBreadcrumbConstants; use Drupal\system\Entity\Menu; /** * Build Easy Breadcrumb settings form. Loading Loading @@ -112,6 +113,26 @@ class EasyBreadcrumbGeneralSettingsForm extends ConfigFormBase { '#default_value' => $config->get(EasyBreadcrumbConstants::USE_MENU_TITLE_AS_FALLBACK), ]; $menu_list = array_map(function ($menu) { return $menu->label(); }, 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_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), '#states' => [ 'disabled' => [ ':input[name="' . EasyBreadcrumbConstants::USE_MENU_TITLE_AS_FALLBACK . '"]' => ['checked' => FALSE], ], 'invisible' => [ ':input[name="' . EasyBreadcrumbConstants::USE_MENU_TITLE_AS_FALLBACK . '"]' => ['checked' => FALSE], ], ], ]; $details_general[EasyBreadcrumbConstants::USE_PAGE_TITLE_AS_MENU_TITLE_FALLBACK] = [ '#type' => 'checkbox', '#title' => $this->t('Use page title as fallback for menu title'), Loading