@@ -88,14 +88,11 @@ public static function getTagRoute($id)
88
88
}
89
89
else
90
90
{
91
- if (!empty ($ needles ) && $ item = self ::_findItem ($ needles ))
92
- {
93
- $ link = 'index.php?Itemid= ' . $ item ;
94
- }
95
- else
91
+ $ link = 'index.php?option=com_tags&view=tag&id= ' . $ id ;
92
+
93
+ if ($ item = self ::_findItem ($ needles ))
96
94
{
97
- // Create the link
98
- $ link = 'index.php?option=com_tags&view=tag&id= ' . $ id ;
95
+ $ link .= '&Itemid= ' . $ item ;
99
96
}
100
97
}
101
98
@@ -131,32 +128,24 @@ protected static function _findItem($needles = null)
131
128
{
132
129
if (isset ($ item ->query ) && isset ($ item ->query ['view ' ]))
133
130
{
134
- $ view = $ item ->query [ ' view ' ] ;
131
+ $ lang = ( $ item ->language != '' ? $ item -> language : ' * ' ) ;
135
132
136
- if (!isset (self ::$ lookup [$ view ]))
133
+ if (!isset (self ::$ lookup [$ lang ]))
137
134
{
138
- self ::$ lookup [$ view ] = array ();
135
+ self ::$ lookup [$ lang ] = array ();
139
136
}
140
137
141
- // Only match menu items that list one tag
142
- if (isset ($ item ->query ['id ' ][0 ]) && count ($ item ->query ['id ' ]) == 1 )
138
+ $ view = $ item ->query ['view ' ];
139
+
140
+ if (!isset (self ::$ lookup [$ lang ][$ view ]))
143
141
{
144
- /*
145
- * Here it will become a bit tricky
146
- * language != * can override existing entries
147
- * language == * cannot override existing entries
148
- */
149
- if (!isset (self ::$ lookup [$ language ][$ view ][$ item ->query ['id ' ][0 ]]) || $ item ->language != '* ' )
150
- {
151
- self ::$ lookup [$ language ][$ view ][$ item ->query ['id ' ][0 ]] = $ item ->id ;
152
- }
153
-
154
- self ::$ lookup [$ view ][$ item ->query ['id ' ][0 ]] = $ item ->id ;
142
+ self ::$ lookup [$ lang ][$ view ] = array ();
155
143
}
156
144
157
- if (isset ($ item ->query ["tag_list_language_filter " ]) && $ item ->query ["tag_list_language_filter " ] != '' )
145
+ // Only match menu items that list one tag
146
+ if (isset ($ item ->query ['id ' ][0 ]) && count ($ item ->query ['id ' ]) == 1 )
158
147
{
159
- $ language = $ item ->query [" tag_list_language_filter " ] ;
148
+ self :: $ lookup [ $ lang ][ $ view ][ $ item ->query [' id ' ][ 0 ]] = $ item -> id ;
160
149
}
161
150
}
162
151
}
@@ -167,13 +156,13 @@ protected static function _findItem($needles = null)
167
156
{
168
157
foreach ($ needles as $ view => $ ids )
169
158
{
170
- if (isset (self ::$ lookup [$ view ]))
159
+ if (isset (self ::$ lookup [$ language ][ $ view ]))
171
160
{
172
161
foreach ($ ids as $ id )
173
162
{
174
- if (isset (self ::$ lookup [$ view ][(int ) $ id ]))
163
+ if (isset (self ::$ lookup [$ language ][ $ view ][(int ) $ id ]))
175
164
{
176
- return self ::$ lookup [$ view ][(int ) $ id ];
165
+ return self ::$ lookup [$ language ][ $ view ][(int ) $ id ];
177
166
}
178
167
}
179
168
}
0 commit comments