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

Aleks.Denezh

  • Живу я здесь
  • 3405
  • 426 / 4
Я то докопаюсь до решения проблемы, но может кто то уже сталкивался и поможет  ;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

Вообщем у кого какие идеи по этому поводу?
*

Aleks.Denezh

  • Живу я здесь
  • 3405
  • 426 / 4
Re: Проблема с хлебными крошками!
« Ответ #1 : 23.12.2015, 00: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;
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с class ers

Автор web3.0

Ответов: 11
Просмотров: 655
Последний ответ 29.04.2017, 09:57:04
от web3.0
Проблема с сохранением записи в БД (не все поля сохраняются)

Автор GuDeVic

Ответов: 42
Просмотров: 1609
Последний ответ 07.12.2016, 14:19:59
от b2z
[Решено] Проблема с уровнями доступов и передачей переменной id

Автор flash709

Ответов: 18
Просмотров: 1225
Последний ответ 29.01.2015, 10:01:48
от b2z
Joomla 3.0 проблема с редиректом в своем компоненте

Автор Alexiez

Ответов: 1
Просмотров: 1106
Последний ответ 22.02.2013, 19:52:54
от Alexiez