Ориентировался на
https://github.com/joomla/joomla-cms/compare/staging...b2z:tag-routeТам последний фрагмент кода не туда вставлен.
Надо
Т.к. $needles - это массив ('tag'=>id), то $view == 'tag' .
Далее проверка на
if (isset(self::$lookup[$language][$view]))
т.е.
if (isset(self::$lookup[$language]['tag']))
, чего нет. В $lookup -
http://clip2net.com/s/3shcXgTСледовательно, не отрабатывал Return the default Itemid , вставленный в это условие (и цикл).
Если вынести за условие и за цикл (т.к. в переборе нет нужного нам $view), работает.
А почему не рассматривали вариант
Не пробовали в шаблоне модуля приписать к url тэгов Itemid того пункта меню?
?
По аналогии с модулем поиска добавить поле Itemid в настройки, в шаблоне модуля (дефолтный макет):
Все красиво, компонент трогать не надо.
UPD:
Забыл не значительный косметический момент, в первом фрагменте кода создать массив, для соблюдения общего стиля. Работает и без этого.