@@ -61,6 +61,7 @@ private static function processRoute($url, $data) {
61
61
return $ b ['count ' ] <=> $ a ['count ' ];
62
62
});
63
63
64
+ $ route = $ url ;
64
65
//escape / for regex
65
66
$ url = str_replace ('/ ' , '\/ ' , $ url );
66
67
//numeric limit
@@ -74,7 +75,9 @@ private static function processRoute($url, $data) {
74
75
//wildcard
75
76
$ url = preg_replace ('/ ' . self :: wildcardRegex . '/ ' , '.*? ' , $ url );
76
77
77
- self :: $ urls [$ url ] = $ module ;
78
+ self :: $ urls [$ route ] = [$ url , $ module ];
79
+
80
+ return $ url ;
78
81
}
79
82
80
83
public static function addRoute ($ url , $ data ) {
@@ -119,15 +122,18 @@ public static function match($url) {
119
122
if (! self :: $ init ) {
120
123
self :: init ();
121
124
}
122
-
123
125
//remove get parameters
124
- $ url = preg_replace ('/\?.+$/ ' , '' , $ url );
126
+ $ url = preg_replace ('/\?.*$/ ' , '' , str_replace ('// ' , '/ ' , $ url ));
127
+
128
+ foreach (self :: $ urls as $ route => $ data ) {
129
+ list ($ pattern , $ module ) = $ data ;
125
130
126
- foreach (self :: $ urls as $ pattern => $ route ) {
127
131
if ($ url == $ pattern || preg_match ('/^ ' . $ pattern . '$/ ' , $ url , $ matches )) {
128
132
$ parameters = array_filter ($ matches , 'is_string ' , ARRAY_FILTER_USE_KEY );
129
133
130
- $ parameters ['route ' ] = $ route ;
134
+ $ parameters ['route ' ] = $ route ;
135
+ $ parameters ['module ' ] = $ module ;
136
+ $ parameters ['pattern ' ] = $ pattern ;
131
137
132
138
return $ parameters ;
133
139
}
@@ -171,10 +177,11 @@ public static function getUrlData($url = false) {
171
177
}
172
178
173
179
$ parameters = self :: match ($ url );
180
+ $ route = stripslashes ($ parameters ['route ' ] ?? '' );
174
181
175
182
if ($ parameters ) {
176
- $ parameters ['pattern ' ] = self :: $ modules [$ parameters ['route ' ]][0 ]['url ' ];
177
- $ parameters = $ parameters + self :: $ routes [$ parameters [ ' pattern ' ] ];
183
+ // $parameters['pattern'] = self :: $modules[$parameters['route']][0]['url'];
184
+ $ parameters = $ parameters + self :: $ routes [$ route ];
178
185
179
186
if (isset ($ parameters ['edit ' ])) {
180
187
$ parameters ['edit ' ] = self :: varReplace ($ parameters ['edit ' ], $ parameters );
0 commit comments