Проблема с хлебными крошками!

  • 1 Ответов
  • 256 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Онлайн Aleks.Denezh

Я то докопаюсь до решения проблемы, но может кто то уже сталкивался и поможет  ;D
Вообщем после обновления до 3.4.5 вроде (может чуть меньше) началась проблема с хлебными крошками в моем компоненте!

Хлебные крошки формируются так:
$pathway = JFactory::getApplication()->getPathway();
$pathway->addItem( 'Название материала' );
Появляется хлебная крошка, например такая: главная -> категория -> материал
Категория завязана на пункт меню и путь такой например site.ru/category.html
но при добавлении материала на категории в хлебных крошках получается такая хрень: site.ru/category/14.html (14 - это ID текущей категории)

Вообщем в старых хлебных крошках были такие строки в файле: libraries/cms/pathway/site.php
Код: (php) [Выделить]
default:
$router = $app::getRouter();
if ($router->getMode() == JROUTER_MODE_SEF)
{
$url = 'index.php?Itemid=' . $link->id;
}
else
{
$url .= $link->link . '&Itemid=' . $link->id;
}
break;

Сейчас в этом месте только:
Код: (php) [Выделить]
default:
$url = $link->link . '?Itemid=' . $link->id;
break;

Если поменять это на:
Код: (php) [Выделить]
default:
$url = 'index.php?Itemid=' . $link->id;
break;
Все работает нормально!

Возможно это из-за ввода класса для роутинга в компонентах JComponentRouterBase
Попробовал в своем компоненте перевести на такой класс но ссылка стала ещё круче:
 site.ru/category/14?Itemid=118.html

Вообщем у кого какие идеи по этому поводу?
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016

*

Онлайн Aleks.Denezh

Re: Проблема с хлебными крошками!
« Ответ #1 : 23.12.2015, 02:17:27 »
Проблема решена вставкой следующего когда в buildRoute (cкопировано  из com_contact):

Код: (php) [Выделить]
if ( empty( $query['Itemid'] ) ) {
$menuItem = JMenuSite::getInstance( 'site' )->getActive();
}
else {
$menuItem = JMenuSite::getInstance( 'site' )->getItem( $query['Itemid'] );
}
$mView = ( empty( $menuItem->query['view'] ) )? null : $menuItem->query['view'];
$mId = ( empty( $menuItem->query['id'] ) )? null : $menuItem->query['id'];

if ( isset( $query['view'] ) ) {
$view = $query['view'];

if ( empty( $query['Itemid'] ) || empty( $menuItem ) || $menuItem->component != 'com_имя_компонента' ) {
$segments[] = $query['view'];
}

unset( $query['view'] );
}
// Are we dealing with a contact that is attached to a menu item?
if ( isset( $view ) && ( $mView == $view ) and ( isset( $query['id'] ) ) and ( $mId == (int)$query['id'] ) ) {
unset( $query['view'] );
unset( $query['catid'] );
unset( $query['id'] );
return $segments;
}
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016