Skip to content

Commit 4a62b26

Browse files
committed
improved breadcrumbs block
1 parent 7c0203e commit 4a62b26

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

app/site/blocks/BreadCrumbs.php

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
use \Psr\Container\ContainerInterface;
1717
use \App\Site\Models\Menu;
1818
use \App\Base\Traits\AdminTrait;
19+
use \App\Site\Controllers\Frontend\Page;
20+
use \App\Site\Models\Rewrite;
1921

2022
/**
2123
* Breadcrumbs Block
@@ -40,7 +42,17 @@ public function renderHTML(BasePage $current_page = null)
4042
$menuitems = $this->getContainer()->call([Menu::class, 'where'], ['condition' => ['rewrite_id' => $route_info->getRewrite()]]);
4143
$menu_item = reset($menuitems);
4244
$home_url = $this->getRouting()->getUrl('frontend.root');
43-
$breadcrumbs_links = ['<a href="'.$home_url.'">'.$this->getUtils()->translate('Home', $locale).'</a>'];
45+
46+
$breadcrumbs_links = [];
47+
48+
$homepageid = $this->getSiteData()->getHomePageId(
49+
$this->getSiteData()->getCurrentWebsite(),
50+
$current_page->getCurrentLocale()
51+
);
52+
53+
if (($current_page instanceof Page) && ($current_page->getPageId() != $homepageid)) {
54+
$breadcrumbs_links[] = '<a href="'.$home_url.'">'.$this->getUtils()->translate('Home', $locale).'</a>';
55+
}
4456

4557
$breadcrumbs_html = '<nav aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item">';
4658
if ($menu_item instanceof Menu) {
@@ -49,8 +61,17 @@ public function renderHTML(BasePage $current_page = null)
4961
$breadcrumbs[] = $menu_item->getId();
5062
}
5163

52-
array_push($breadcrumbs_links, ...array_map(function ($id) {
64+
array_push($breadcrumbs_links, ...array_map(function ($id) use ($homepageid, $locale) {
5365
$menuItem = $this->getContainer()->call([Menu::class, 'load'], ['id' => $id]);
66+
67+
if ($menuItem->getRewriteId()) {
68+
/** @var Rewrite $rewrite */
69+
$rewrite = $this->getContainer()->make(Rewrite::class)->fill($menuItem->getRewriteId());
70+
if ($rewrite->getRoute() == '/page/'.$homepageid) {
71+
$menuItem->setTitle($this->getUtils()->translate('Home', $locale));
72+
}
73+
}
74+
5475
$leaf = [
5576
'title' => $menuItem->getTitle(),
5677
'href' => $menuItem->getLinkUrl(),

app/site/controllers/Frontend/Page.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,15 @@ public function showFrontPage(RouteInfo $route_info = null)
121121
return $this->doRedirect("/".$this->getSiteData()->getBrowserPreferredLanguage());
122122
}
123123

124+
/**
125+
* gets page model id
126+
* @return integer
127+
*/
128+
public function getPageId()
129+
{
130+
return $this->getObject()->getId();
131+
}
132+
124133
/**
125134
* {@inheritdocs}
126135
* @return array

0 commit comments

Comments
 (0)