Skip to content

Commit f7986fd

Browse files
committed
Absolute url option
1 parent b1e1e5e commit f7986fd

File tree

1 file changed

+28
-52
lines changed

1 file changed

+28
-52
lines changed

app/component/breadcrumb.php

+28-52
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
class Breadcrumb extends ComponentBase {
3333
public static $defaultOptions = [
34+
'absoluteURL' => null,
3435
];
3536

3637
public $options = [];
@@ -41,25 +42,26 @@ function cacheKey() {
4142
}
4243

4344
function results() {
44-
$request = Request::getInstance();
45-
$route = $request->get['route'] ?? '';
46-
$slug = $request->get['slug'] ?? '';
47-
$name = $request->get['name'] ?? '';
48-
$homeText = __('Home');
49-
$shopText = __('Shop');
50-
$blogText = __('Blog');
45+
$request = Request::getInstance();
46+
$route = $request->get['route'] ?? '';
47+
$slug = $request->get['slug'] ?? '';
48+
$name = $request->get['name'] ?? '';
49+
$homeText = __('Home');
50+
$shopText = __('Shop');
51+
$blogText = __('Blog');
52+
$urlOptions = [];
53+
54+
if ($this->options['absoluteURL']) {
55+
$urlOptions= ['host' => SITE_URL, 'scheme' => $_SERVER['REQUEST_SCHEME'] ?? 'http'];
56+
}
5157

5258
$breadcrumb = [
53-
['text' => $homeText, 'url' => '/'],
59+
['text' => $homeText, 'url' => url('index/index', $urlOptions)],
5460
];
5561

5662
switch ($route) {
5763
//product page
5864
case 'product/product/index':
59-
$breadcrumb = [
60-
['text' => __('Home'), 'url' => '/'],
61-
];
62-
6365
$product_id = $request->get['product_id'] ?? false;
6466

6567
if ($product_id) {
@@ -69,42 +71,34 @@ function results() {
6971
+ self :: $global);
7072

7173
if ($result) {
72-
$breadcrumb[] = ['text' => $result['name'], 'url' => url('product/category/index', $result)];
74+
$breadcrumb[] = ['text' => $result['name'], 'url' => url('product/category/index', $result + $urlOptions)];
7375
}
7476
}
7577

76-
$breadcrumb[] = ['text' => $name, 'url' => false];
78+
$breadcrumb[] = ['text' => $slug, 'url' => false];
7779

7880
break;
7981
//product category page
8082
case 'product/category/index':
81-
$breadcrumb = [
82-
['text' => $homeText, 'url' => '/'],
83-
['text' => $slug, 'url' => false],
84-
];
83+
$breadcrumb[] = ['text' => $slug, 'url' => false];
8584

8685
break;
8786
//shop page
8887
case 'product/index':
89-
$breadcrumb = [
90-
['text' => $homeText, 'url' => '/'],
91-
['text' => $shopText, 'url' => false],
92-
];
88+
$breadcrumb[] = ['text' => $shopText, 'url' => false];
9389

9490
break;
9591
//manufacturer page
9692
case 'product/manufacturer/index':
97-
$breadcrumb = [
98-
['text' => $homeText, 'url' => '/'],
93+
$breadcrumb += [
9994
['text' => $shopText, 'url' => url('product/index')],
10095
['text' => $slug, 'url' => false],
10196
];
10297

10398
break;
10499
//vendor page
105100
case 'product/vendor/index':
106-
$breadcrumb = [
107-
['text' => $homeText, 'url' => '/'],
101+
$breadcrumb += [
108102
['text' => $shopText, 'url' => url('product/index')],
109103
['text' => $slug, 'url' => false],
110104
];
@@ -113,19 +107,13 @@ function results() {
113107
//blog page
114108
case 'content':
115109
case 'content/index':
116-
$breadcrumb = [
117-
['text' => $homeText, 'url' => '/'],
118-
['text' => $blogText, 'url' => false],
119-
];
110+
$breadcrumb[] = ['text' => $blogText, 'url' => false];
120111

121112
break;
122113
//post page
123114
case 'content/post/index':
124-
$post_id = $request->get['post_id'] ?? false;
125-
$breadcrumb = [
126-
['text' => $homeText, 'url' => '/'],
127-
['text' => $blogText, 'url' => url('content')],
128-
];
115+
$post_id = $request->get['post_id'] ?? false;
116+
$breadcrumb[] = ['text' => $blogText, 'url' => url('content')];
129117

130118
if ($post_id) {
131119
$category = new CategorySQL();
@@ -134,7 +122,7 @@ function results() {
134122
+ self :: $global);
135123

136124
if ($result && isset($result['category'])) {
137-
$breadcrumb[] = ['text' => $result['name'], 'url' => url('content/category/index', $result)];
125+
$breadcrumb[] = ['text' => $result['name'], 'url' => url('content/category/index', $result + $urlOptions)];
138126
}
139127
}
140128

@@ -145,34 +133,22 @@ function results() {
145133
case 'content/page/index':
146134
$post_id = $request->get['post_id'] ?? false;
147135

148-
$breadcrumb = [
149-
['text' => $homeText, 'url' => '/'],
150-
['text' => $slug, 'url' => false],
151-
];
136+
$breadcrumb[] = ['text' => $slug, 'url' => false];
152137

153138
break;
154139
//post category page
155140
case 'content/category/index':
156-
$breadcrumb = [
157-
['text' => $homeText, 'url' => '/'],
158-
['text' => $slug, 'url' => false],
159-
];
141+
$breadcrumb[] = ['text' => $slug, 'url' => false];
160142

161143
break;
162144
//compare
163145
case 'cart/cart/index':
164-
$breadcrumb = [
165-
['text' => $homeText, 'url' => '/'],
166-
['text' => __('Cart'), 'url' => false],
167-
];
146+
$breadcrumb[] = ['text' => __('Cart'), 'url' => false];
168147

169148
break;
170149
//compare
171150
case 'cart/compare/index':
172-
$breadcrumb = [
173-
['text' => $homeText, 'url' => '/'],
174-
['text' => __('Compare'), 'url' => false],
175-
];
151+
$breadcrumb[] = ['text' => __('Compare'), 'url' => false];
176152

177153
break;
178154

0 commit comments

Comments
 (0)