Форум русской поддержки Joomla!® CMS
11.12.2016, 08:15:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 154 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« : 23.12.2015, 00:06:16 »

Я то докопаюсь до решения проблемы, но может кто то уже сталкивался и поможет  Grin
Вообщем после обновления до 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
Код
default:
$router = $app::getRouter();
if ($router->getMode() == JROUTER_MODE_SEF)
{
$url = 'index.php?Itemid=' . $link->id;
}
else
{
$url .= $link->link . '&Itemid=' . $link->id;
}
break;
 

Сейчас в этом месте только:
Код
default:
$url = $link->link . '?Itemid=' . $link->id;
break;

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

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

Вообщем у кого какие идеи по этому поводу?
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #1 : 23.12.2015, 01:17:27 »

Проблема решена вставкой следующего когда в buildRoute (cкопировано  из com_contact):

Код
	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;
}
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet