Skip to content

Commit

Permalink
Improve breadcrumbs.
Browse files Browse the repository at this point in the history
  • Loading branch information
olstjos committed Jan 27, 2021
1 parent ff74887 commit d64484c
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 24 deletions.
88 changes: 67 additions & 21 deletions ised_custom/ised_custom.module
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,27 @@ function ised_custom_system_breadcrumb_alter(\Drupal\Core\Breadcrumb\Breadcrumb

$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$route_name = \Drupal::routeMatch()->getRouteName();
$breadcrumb_links = $breadcrumb->getLinks();
$idx = 0;
foreach ($breadcrumb_links as $breadcrumb_item => $key) {
if (!is_null($breadcrumb_links[$idx])) {
if ($breadcrumb_links[$idx]->getText() == 'Home' || $breadcrumb_links[$idx]->getText() == 'Accueil') {
$breadcrumb_links = $breadcrumb->getLinks();
unset($breadcrumb_links[$idx]);
$breadcrumb = new Breadcrumb();
$breadcrumb->setLinks($breadcrumb_links);
break; // Only expect one 'Home'
}
}
$idx++;
}
$breadcrumb_links = $breadcrumb->getLinks();

$UrlCanada = \Drupal\Core\Url::fromUri('https://www.canada.ca/' . $language);
$LinkCanada = \Drupal\Core\Link::fromTextAndUrl('Canada.ca', $UrlCanada);
$breadcrumb->addLink($LinkCanada);

// Canadian Consumer Hub.
$hubUrl = Url::fromRoute('<front>');
$hubLink = \Drupal\Core\Link::fromTextAndUrl(t('Canadian Consumer Hub'), $hubUrl);
$breadcrumb->addLink($hubLink);
$breadcrumb_links = $breadcrumb->getLinks();
$countLinks = count($breadcrumb_links);
if ($countLinks > 0) {
Expand All @@ -74,10 +91,14 @@ function ised_custom_system_breadcrumb_alter(\Drupal\Core\Breadcrumb\Breadcrumb
array_pop($breadcrumb_links);

$breadcrumb_links = array_merge($new_breadcrumb,$breadcrumb_links);
$breadcrumb = new Breadcrumb();
$breadcrumb->setLinks($breadcrumb_links);
}
// End section.
$breadcrumb_links = $breadcrumb->getLinks();


// Office of Consumer Affairs.
$UrlConsumerAffaires = \Drupal\Core\Url::fromUri('https://ic.gc.ca/eic/site/oca-bc.nsf/eng/h_ca00000.html');
$LinkConsumerAffaires = \Drupal\Core\Link::fromTextAndUrl('Office of Consumer Affairs', $UrlConsumerAffaires);
if ($language != 'en') {
Expand All @@ -96,21 +117,43 @@ function ised_custom_system_breadcrumb_alter(\Drupal\Core\Breadcrumb\Breadcrumb
array_pop($breadcrumb_links);

$breadcrumb_links = array_merge($new_breadcrumb,$breadcrumb_links);
$breadcrumb = new Breadcrumb();
$breadcrumb->setLinks($breadcrumb_links);
}
// End section.
$breadcrumb_links = $breadcrumb->getLinks();


// Canada.ca
$UrlCanada = \Drupal\Core\Url::fromUri('https://www.canada.ca/' . $language);
$LinkCanada = \Drupal\Core\Link::fromTextAndUrl('Canada.ca', $UrlCanada);
$breadcrumb->addLink($LinkCanada);
$breadcrumb_links = $breadcrumb->getLinks();
$countLinks = count($breadcrumb_links);
if ($countLinks > 0) {
$lastvalue = end($breadcrumb_links);
$lastkey = key($breadcrumb_links);

$new_breadcrumb = array($lastkey=>$lastvalue);

array_pop($breadcrumb_links);

$breadcrumb_links = array_merge($new_breadcrumb,$breadcrumb_links);
$breadcrumb = new Breadcrumb();
$breadcrumb->setLinks($breadcrumb_links);
}
// End section.
$breadcrumb_links = $breadcrumb->getLinks();



if ($breadcrumb && !\Drupal::service('router.admin_context')->isAdminRoute()) {

if ($route_name == 'view.sector_browse.page_2') {
$hubUrl = Url::fromRoute('<front>');
$hubLink = \Drupal\Core\Link::fromTextAndUrl(t('Canadian Consumer Hub'), $hubUrl);
$breadcrumb->addLink($hubLink);
if ($breadcrumb_links[1]->getText() == 'Results' || $breadcrumb_links[1]->getText() == 'Résultats') {
$resultsUrl = $breadcrumb_links[1]->getUrl();
$resultsLink = \Drupal\Core\Link::fromTextAndUrl(t('Results'), $resultsUrl);
$urlNone = Url::fromRoute('<none>');
$exploreResultsLink = \Drupal\Core\Link::fromTextAndUrl(t('Explore Categories'), $urlNone);
//$breadcrumb->addLink($resultsLink);
$breadcrumb->addLink($exploreResultsLink);
$breadcrumb_links = $breadcrumb->getLinks();
unset($breadcrumb_links[1]);
Expand All @@ -129,24 +172,27 @@ function ised_custom_system_breadcrumb_alter(\Drupal\Core\Breadcrumb\Breadcrumb
}

} else if ($route_name == 'search.view_node_search') {
$hubUrl = Url::fromRoute('<front>');
$hubLink = \Drupal\Core\Link::fromTextAndUrl(t('Canadian Consumer Hub'), $hubUrl);
$breadcrumb->addLink($hubLink);
//$hubUrl = Url::fromRoute('<front>');
//$hubLink = \Drupal\Core\Link::fromTextAndUrl(t('Canadian Consumer Hub'), $hubUrl);
//$breadcrumb->addLink($hubLink);

} else if ($route_name == 'view.sector_browse.page_1') {
$hubUrl = Url::fromRoute('<front>');
$hubLink = \Drupal\Core\Link::fromTextAndUrl(t('Canadian Consumer Hub'), $hubUrl);
$breadcrumb->addLink($hubLink);
//$hubUrl = Url::fromRoute('<front>');
//$hubLink = \Drupal\Core\Link::fromTextAndUrl(t('Canadian Consumer Hub'), $hubUrl);
//$breadcrumb->addLink($hubLink);

$breadcrumb->addLink(\Drupal\Core\Link::createFromRoute(t('Explore categories'), '<none>'));
}
if (isset($breadcrumb_links[0])) {
if ($breadcrumb_links[0]->getText() == 'Home' || $breadcrumb_links[0]->getText() == 'Accueil') {
$breadcrumb_links = $breadcrumb->getLinks();
unset($breadcrumb_links[0]);
$breadcrumb = new Breadcrumb();
$breadcrumb->setLinks($breadcrumb_links);
}
$breadcrumb_links = $breadcrumb->getLinks();
}

if (count($breadcrumb_links) > 1) {
$countLinks = count($breadcrumb_links);
if ($breadcrumb_links[$countLinks-1]->getText() == $breadcrumb_links[$countLinks-2]->getText()) {
unset($breadcrumb_links[$countLinks-1]);
$breadcrumb = new Breadcrumb();
$breadcrumb->setLinks($breadcrumb_links);
$breadcrumb_links = $breadcrumb->getLinks();
}
}
}
Expand Down
1 change: 1 addition & 0 deletions ised_custom/src/Form/CchSearchForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -140,5 +140,6 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
*/

public function submitForm(array &$form, FormStateInterface $form_state) {
\Drupal::messenger()->addMessage('keys:' . print_r(dump(array_keys($form/*['tid']*/), TRUE)), TRUE);//Very good for debugging
}
}
7 changes: 4 additions & 3 deletions ised_custom/src/Plugin/Block/BreadcrumbBlock.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public function build() {
else if(count($list) ==3){
$markup ='<nav property="breadcrumb" aria-label="breadcrumb" role="navigation">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="#">' . t('Start') . '</a></li>
<li class="breadcrumb-item"><a href="/">' . t('Start') . '</a></li>
<li class="breadcrumb-item"><a href="/'.$language.'/sector/term/'.$list_tids[2].'">'.$list[2].'</a></li>
<li class="breadcrumb-item"><a href="/'.$language.'/sector/term/'.$list_tids[1].'">'.$list[1].'</a></li>
<li class="breadcrumb-item active" aria-current="page">'.$list[0].'</li>
Expand All @@ -79,7 +79,7 @@ public function build() {
else if(count($list) ==4){
$markup ='<nav property="breadcrumb" aria-label="breadcrumb" role="navigation">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="#">' . t('Start') . '</a></li>
<li class="breadcrumb-item"><a href="/">' . t('Start') . '</a></li>
<li class="breadcrumb-item"><a href="/'.$language.'/sector/term/'.$list_tids[3].'">'.$list[3].'</a></li>
<li class="breadcrumb-item"><a href="/'.$language.'/sector/term/'.$list_tids[2].'">'.$list[2].'</a></li>
<li class="breadcrumb-item"><a href="/'.$language.'/sector/term/'.$list_tids[1].'">'.$list[1].'</a></li>
Expand All @@ -94,7 +94,8 @@ public function build() {

return [
'#markup' => $markup,
'#cache'=>['max-age'=>0,],
'#cache' => ['contexts' => ['url.path']], // Improves performance.
// '#cache'=>['max-age'=>0,],
];
}

Expand Down

0 comments on commit d64484c

Please sign in to comment.