Удалить составную часть из sef url, пункт меню не полностью

Я построил пользовательский компонент для Joomla 2.5. Теперь я хотел реализовать sef urls. Итак, я начал создавать router.php файл. Я был почти успешным. Единственное, что я хочу изменить - это удалить ссылку на имя компонента. Вот что я получил:

http://host.tld/component/componentname/

Если я создаю пункт меню с псевдонимом, sef url выглядит следующим образом:

http://host.tld/alias

Это фактическая схема, которую я хочу иметь, но она отображается только тогда, когда я щелкаю пункт меню из меню. Если я на домашнем сайте, это не работает.

1 ответ

Решение

Решил проблему сам:

В случае, если у вас есть только один пункт меню для вашего компонента (иначе вы должны выбрать правильный), вам просто нужно добавить эти строки в ваш код:

$app = JFactory::getApplication();
$menu = $app->getMenu();
$items = $menu->getItems('component', 'com_games');

if (!isset($query['Itemid']))   
    $query['Itemid'] =  $items->id; 

Теперь Joomla использует псевдоним пункта меню для генерации URL-адресов.

Другие вопросы по тегам