Skip to content

Commit 1c10ec1

Browse files
committed
We only need nav:breadcrumbs, not structure:breadcrumbs
1 parent 309f736 commit 1c10ec1

2 files changed

Lines changed: 38 additions & 36 deletions

File tree

src/Tags/Nav.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,48 @@
22

33
namespace Statamic\Tags;
44

5+
use Statamic\Facades\Data;
6+
use Statamic\Facades\URL;
7+
58
class Nav extends Structure
69
{
710
public function index()
811
{
912
return $this->structure($this->get('handle', 'collection::pages'));
1013
}
14+
15+
public function breadcrumbs()
16+
{
17+
$url = URL::getCurrent();
18+
$segments = explode('/', $url);
19+
$segments[0] = '/';
20+
21+
if (! $this->params->bool('include_home', true)) {
22+
array_shift($segments);
23+
}
24+
25+
$crumbs = collect($segments)->map(function () use (&$segments) {
26+
$uri = URL::tidy(join('/', $segments));
27+
array_pop($segments);
28+
return $uri;
29+
})->mapWithKeys(function ($uri) {
30+
return [$uri => Data::findByUri($uri)];
31+
})->filter();
32+
33+
if (! $this->params->bool('reverse', false)) {
34+
$crumbs = $crumbs->reverse();
35+
}
36+
37+
if ($this->params->bool('trim', true)) {
38+
$this->content = trim($this->content);
39+
}
40+
41+
$output = $this->parseLoop($crumbs->values()->toAugmentedArray());
42+
43+
if ($backspaces = $this->params->int('backspace', 0)) {
44+
$output = substr($output, 0, -$backspaces);
45+
}
46+
47+
return $output;
48+
}
1149
}

src/Tags/Structure.php

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace Statamic\Tags;
44

5-
use Statamic\Facades\Data;
65
use Statamic\Facades\URL;
76
use Statamic\Facades\Site;
87
use Statamic\Structures\TreeBuilder;
@@ -59,39 +58,4 @@ public function toArray($tree, $parent = null)
5958
]);
6059
})->filter()->values()->all();
6160
}
62-
63-
public function breadcrumbs()
64-
{
65-
$url = URL::getCurrent();
66-
$segments = explode('/', $url);
67-
$segments[0] = '/';
68-
69-
if (! $this->params->bool('include_home', true)) {
70-
array_shift($segments);
71-
}
72-
73-
$crumbs = collect($segments)->map(function () use (&$segments) {
74-
$uri = URL::tidy(join('/', $segments));
75-
array_pop($segments);
76-
return $uri;
77-
})->mapWithKeys(function ($uri) {
78-
return [$uri => Data::findByUri($uri)];
79-
})->filter();
80-
81-
if (! $this->params->bool('reverse', false)) {
82-
$crumbs = $crumbs->reverse();
83-
}
84-
85-
if ($this->params->bool('trim', true)) {
86-
$this->content = trim($this->content);
87-
}
88-
89-
$output = $this->parseLoop($crumbs->values()->toAugmentedArray());
90-
91-
if ($backspaces = $this->params->int('backspace', 0)) {
92-
$output = substr($output, 0, -$backspaces);
93-
}
94-
95-
return $output;
96-
}
9761
}

0 commit comments

Comments
 (0)