@@ -43,95 +43,38 @@ public function getUrl($name, $code)
43
43
/**
44
44
* resolve route & params for links.
45
45
*
46
- * @param [type] $crntRouteName [description]
47
- * @param [type] $another [description]
48
- * @param [type] $params [description]
46
+ * @param [type] $crntRouteName [description]
47
+ * @param array|null $params [description]
49
48
*
50
49
* @return [type] [description]
51
50
*/
52
- public function getRoute ($ crntRouteName , $ another = null , $ params = null )
51
+ public function getRoute ($ crntRouteName , array $ params = null )
53
52
{
54
53
$ code = LaravelLocalization::getCurrentLocale ();
55
54
$ url = $ this ->routeLink ($ crntRouteName , $ code );
56
55
57
- // resolve multi routes with params
58
- if (is_array ( $ another ) ) {
59
- foreach ($ another as $ k => $ v ) {
60
- if ($ crntRouteName == $ k ) {
56
+ // resolve route params
57
+ if ($ params ) {
58
+ foreach ($ params as $ key => $ value ) {
59
+ if ($ crntRouteName == $ key ) {
61
60
if (!session ()->has ($ crntRouteName )) {
62
- session ([$ crntRouteName => $ v ]);
61
+ session ([$ crntRouteName => $ value ]);
63
62
}
64
63
65
- return $ this ->checkForhideDefaultLocaleInURL ($ code , $ url , $ v );
66
- }
67
- }
68
- }
64
+ if (LaravelLocalization::hideDefaultLocaleInURL () && $ code == LaravelLocalization::getDefaultLocale ()) {
65
+ return url ($ this ->getParams ($ url , $ value ));
66
+ }
69
67
70
- // resolve a single route with params
71
- else {
72
- if (($ crntRouteName == $ another ) && $ params ) {
73
- // set a session item so we can redir with params
74
- // from the lang switcher
75
- if (!session ()->has ($ crntRouteName )) {
76
- session ([$ crntRouteName => $ params ]);
68
+ return LaravelLocalization::getLocalizedURL (
69
+ $ code , url ($ this ->getParams ($ url , $ value )), [], true
70
+ );
77
71
}
78
-
79
- return $ this ->checkForhideDefaultLocaleInURL ($ code , $ url , $ params );
80
72
}
81
73
}
82
74
83
75
return route ($ crntRouteName );
84
76
}
85
77
86
- /**
87
- * render menu.
88
- *
89
- * @param [type] $pages [description]
90
- * @param [type] $classes [description]
91
- * @param [type] $params [description]
92
- * @param [type] $url [description]
93
- *
94
- * @return [type] [description]
95
- */
96
- public function render ($ pages , $ classes = null , $ params = null , $ url = null )
97
- {
98
- switch ($ classes ) {
99
- case 'config ' :
100
- $ ul = config ('simpleMenu.listClasses.ul ' );
101
- $ li = config ('simpleMenu.listClasses.li ' );
102
- $ a = config ('simpleMenu.listClasses.a ' );
103
- break ;
104
- default :
105
- $ ul = array_get ($ classes , 'ul ' );
106
- $ li = array_get ($ classes , 'li ' );
107
- $ a = array_get ($ classes , 'a ' );
108
- break ;
109
- }
110
-
111
- return $ this ->getHtml ($ pages , $ ul , $ li , $ a , $ params , $ url );
112
- }
113
-
114
- /**
115
- * to resolve links not being 'is-active' when 'hideDefaultLocaleInURL => true'.
116
- *
117
- * @param [type] $code [description]
118
- * @param [type] $url [description]
119
- * @param [type] $params [description]
120
- *
121
- * @return [type] [description]
122
- */
123
- protected function checkForhideDefaultLocaleInURL ($ code , $ url , $ params )
124
- {
125
- if (LaravelLocalization::hideDefaultLocaleInURL () &&
126
- LaravelLocalization::getCurrentLocale () == app ('laravellocalization ' )->getDefaultLocale ()) {
127
- return url ($ this ->getParams ($ url , $ params ));
128
- }
129
-
130
- return LaravelLocalization::getLocalizedURL (
131
- $ code , url ($ this ->getParams ($ url , $ params )), [], true
132
- );
133
- }
134
-
135
78
/**
136
79
* resolve route url.
137
80
*
@@ -163,33 +106,31 @@ protected function routeLink($name, $code)
163
106
}
164
107
165
108
/**
166
- * resolve params .
109
+ * render menu .
167
110
*
168
- * @param [type] $url [description]
169
- * @param [type] $params [description]
111
+ * @param [type] $pages [description]
112
+ * @param [type] $classes [description]
113
+ * @param [type] $params [description]
114
+ * @param [type] $url [description]
170
115
*
171
116
* @return [type] [description]
172
117
*/
173
- protected function getParams ( $ url , $ params )
118
+ public function render ( $ pages , $ classes = null , $ params = null , $ url = null )
174
119
{
175
- foreach ($ params as $ key => $ value ) {
176
- $ url = preg_replace ('/\{ ' .preg_quote ($ key ).'(\?)?\}/ ' , $ value , $ url );
120
+ switch ($ classes ) {
121
+ case 'config ' :
122
+ $ ul = config ('simpleMenu.listClasses.ul ' );
123
+ $ li = config ('simpleMenu.listClasses.li ' );
124
+ $ a = config ('simpleMenu.listClasses.a ' );
125
+ break ;
126
+ default :
127
+ $ ul = array_get ($ classes , 'ul ' );
128
+ $ li = array_get ($ classes , 'li ' );
129
+ $ a = array_get ($ classes , 'a ' );
130
+ break ;
177
131
}
178
132
179
- return $ this ->rmvUnUsedParams ($ url );
180
- }
181
-
182
- /**
183
- * remove optional params.
184
- * so we dont get badly formated url.
185
- *
186
- * @param [type] $url [description]
187
- *
188
- * @return [type] [description]
189
- */
190
- protected function rmvUnUsedParams ($ url )
191
- {
192
- return preg_replace ('/\{.*\}/ ' , '' , $ url );
133
+ return $ this ->getHtml ($ pages , $ ul , $ li , $ a , $ params , $ url );
193
134
}
194
135
195
136
/**
@@ -208,6 +149,7 @@ protected function getHtml($pages, $ul, $li, $a, $params, $url)
208
149
{
209
150
$ html = '' ;
210
151
$ html .= "<ul class= \"{$ ul }\"> " ;
152
+
211
153
foreach ($ pages as $ one ) {
212
154
// escape empty url
213
155
if (empty ($ one ->getTranslationWithoutFallback ('url ' , app ()->getLocale ()))) {
@@ -225,8 +167,38 @@ protected function getHtml($pages, $ul, $li, $a, $params, $url)
225
167
}
226
168
$ html .= '</li> ' ;
227
169
}
170
+
228
171
$ html .= '</ul> ' ;
229
172
230
173
return $ html ;
231
174
}
175
+
176
+ /**
177
+ * resolve params.
178
+ *
179
+ * @param [type] $url [description]
180
+ * @param [type] $params [description]
181
+ *
182
+ * @return [type] [description]
183
+ */
184
+ protected function getParams ($ url , $ params )
185
+ {
186
+ foreach ($ params as $ key => $ value ) {
187
+ $ url = preg_replace ('/\{ ' .preg_quote ($ key ).'(\?)?\}/ ' , $ value , $ url );
188
+ }
189
+
190
+ return $ this ->rmvUnUsedParams ($ url );
191
+ }
192
+
193
+ /**
194
+ * remove optional params. so we dont get badly formated url.
195
+ *
196
+ * @param [type] $url [description]
197
+ *
198
+ * @return [type] [description]
199
+ */
200
+ protected function rmvUnUsedParams ($ url )
201
+ {
202
+ return preg_replace ('/\{.*\}/ ' , '' , $ url );
203
+ }
232
204
}
0 commit comments