31
31
32
32
class Breadcrumb extends ComponentBase {
33
33
public static $ defaultOptions = [
34
+ 'absoluteURL ' => null ,
34
35
];
35
36
36
37
public $ options = [];
@@ -41,25 +42,26 @@ function cacheKey() {
41
42
}
42
43
43
44
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
+ }
51
57
52
58
$ breadcrumb = [
53
- ['text ' => $ homeText , 'url ' => ' / ' ],
59
+ ['text ' => $ homeText , 'url ' => url ( ' index/index ' , $ urlOptions ) ],
54
60
];
55
61
56
62
switch ($ route ) {
57
63
//product page
58
64
case 'product/product/index ' :
59
- $ breadcrumb = [
60
- ['text ' => __ ('Home ' ), 'url ' => '/ ' ],
61
- ];
62
-
63
65
$ product_id = $ request ->get ['product_id ' ] ?? false ;
64
66
65
67
if ($ product_id ) {
@@ -69,42 +71,34 @@ function results() {
69
71
+ self :: $ global );
70
72
71
73
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 )];
73
75
}
74
76
}
75
77
76
- $ breadcrumb [] = ['text ' => $ name , 'url ' => false ];
78
+ $ breadcrumb [] = ['text ' => $ slug , 'url ' => false ];
77
79
78
80
break ;
79
81
//product category page
80
82
case 'product/category/index ' :
81
- $ breadcrumb = [
82
- ['text ' => $ homeText , 'url ' => '/ ' ],
83
- ['text ' => $ slug , 'url ' => false ],
84
- ];
83
+ $ breadcrumb [] = ['text ' => $ slug , 'url ' => false ];
85
84
86
85
break ;
87
86
//shop page
88
87
case 'product/index ' :
89
- $ breadcrumb = [
90
- ['text ' => $ homeText , 'url ' => '/ ' ],
91
- ['text ' => $ shopText , 'url ' => false ],
92
- ];
88
+ $ breadcrumb [] = ['text ' => $ shopText , 'url ' => false ];
93
89
94
90
break ;
95
91
//manufacturer page
96
92
case 'product/manufacturer/index ' :
97
- $ breadcrumb = [
98
- ['text ' => $ homeText , 'url ' => '/ ' ],
93
+ $ breadcrumb += [
99
94
['text ' => $ shopText , 'url ' => url ('product/index ' )],
100
95
['text ' => $ slug , 'url ' => false ],
101
96
];
102
97
103
98
break ;
104
99
//vendor page
105
100
case 'product/vendor/index ' :
106
- $ breadcrumb = [
107
- ['text ' => $ homeText , 'url ' => '/ ' ],
101
+ $ breadcrumb += [
108
102
['text ' => $ shopText , 'url ' => url ('product/index ' )],
109
103
['text ' => $ slug , 'url ' => false ],
110
104
];
@@ -113,19 +107,13 @@ function results() {
113
107
//blog page
114
108
case 'content ' :
115
109
case 'content/index ' :
116
- $ breadcrumb = [
117
- ['text ' => $ homeText , 'url ' => '/ ' ],
118
- ['text ' => $ blogText , 'url ' => false ],
119
- ];
110
+ $ breadcrumb [] = ['text ' => $ blogText , 'url ' => false ];
120
111
121
112
break ;
122
113
//post page
123
114
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 ' )];
129
117
130
118
if ($ post_id ) {
131
119
$ category = new CategorySQL ();
@@ -134,7 +122,7 @@ function results() {
134
122
+ self :: $ global );
135
123
136
124
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 )];
138
126
}
139
127
}
140
128
@@ -145,34 +133,22 @@ function results() {
145
133
case 'content/page/index ' :
146
134
$ post_id = $ request ->get ['post_id ' ] ?? false ;
147
135
148
- $ breadcrumb = [
149
- ['text ' => $ homeText , 'url ' => '/ ' ],
150
- ['text ' => $ slug , 'url ' => false ],
151
- ];
136
+ $ breadcrumb [] = ['text ' => $ slug , 'url ' => false ];
152
137
153
138
break ;
154
139
//post category page
155
140
case 'content/category/index ' :
156
- $ breadcrumb = [
157
- ['text ' => $ homeText , 'url ' => '/ ' ],
158
- ['text ' => $ slug , 'url ' => false ],
159
- ];
141
+ $ breadcrumb [] = ['text ' => $ slug , 'url ' => false ];
160
142
161
143
break ;
162
144
//compare
163
145
case 'cart/cart/index ' :
164
- $ breadcrumb = [
165
- ['text ' => $ homeText , 'url ' => '/ ' ],
166
- ['text ' => __ ('Cart ' ), 'url ' => false ],
167
- ];
146
+ $ breadcrumb [] = ['text ' => __ ('Cart ' ), 'url ' => false ];
168
147
169
148
break ;
170
149
//compare
171
150
case 'cart/compare/index ' :
172
- $ breadcrumb = [
173
- ['text ' => $ homeText , 'url ' => '/ ' ],
174
- ['text ' => __ ('Compare ' ), 'url ' => false ],
175
- ];
151
+ $ breadcrumb [] = ['text ' => __ ('Compare ' ), 'url ' => false ];
176
152
177
153
break ;
178
154
0 commit comments