0

如何根据其 ID 找到 Menuitem 的正确 SEF url?

$link = JRoute::_( $menus->getItem( $id )->link.'&lang='.$languages[ $code ]->sef, true );

提供类似的东西:

http://localhost/<path>/component/content/?view=featured

但我想要的是从菜单生成的 url,即:

http://localhost/<path>/<lang-sef-code>/<path>

我怎样才能做到这一点?

4

1 回答 1

2

我终于找到了解决我遇到的问题的方法。

$languages = JLanguageHelper::getLanguages('lang_code');
foreach ($associations as $code => $id ) {
    item = $menus->getItem( $id );
    $link = JRoute::_( 'index.php?lang='.$languages[ $code ]->sef.'&Itemid='.$item->id );
}

这提供:

http://localhost/<lang>/<path-to-link>

我注意到,在处理 SEF URL 时,将变量分配给 JRoute::_() 方法的顺序是决定性的。我希望能帮助那些也遇到这个问题的人。

问候

菲利普

于 2012-08-20T10:50:36.847 回答