Chybné zpracování multijazyčné podpory menu v Joomla! 3.x

Pokud používáte multijazyčné menu v Joomla!, může se vám stát, že i přes to, že máte správně nastavené menu a také komponentu, tak se ve veřejné části objeví chyba 404 - Nenalezeno.

if ($length > 0 && JString::strpos($route_lowercase . '/', $item->route . '/') === 0
                                        && $item->type != 'menulink' && (!$app->getLanguageFilter() || $item->language == '*'
                                        || $item->language == $lang_tag))
                                {
                                        // We have exact item for this language
                                        if ($item->language == $lang_tag)
                                        {
                                                $found = $item;
                                                break;
                                        }
                                        // Or let's remember an item for all languages
                                        elseif (!$found)
                                        {
                                                $found = $item;
                                                // MISSING BREAK
                                                break;
                                        }
                                }

Chybka se ukrývá v nastavení jazyků u položek menu Joomla!. Joomla! totiž neumožnuje nastavení podpoložek menu na jazyk "Vše" (*) pokud má nadřazená položka již nějaký konkrétní jazyk přiřazený. Joomla! se pak snaží použít nadřazenou položku menu, ale neumí pro ní již získat její správné nastavení.

V souboru libraries/cms/router/site.php ve funkci parseSefRoute kolem řádku 276 chybí break;. Na chybku jsme také upozornili vývojový tým Joomla!.