Новости Joomla

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

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Решение:
- сделано, требуется сделать pull

Статус:
желательна проверка

Описание:
Я создал пункт меню в скрытом меню типа список меток и дал ему алиас tags

Ожидаемый результат
Ссылки на тэги будут иметь вид /tags/tagname.html

Полученный результат
После посещения странички /tags.html ссылки действительно имеют такой вид, однако через некоторое время они вновь приобретают вид
/component/tags/tag/tagname.html

Информация о системе
Joomla 3.4.6 + модуль меток стандартный опять же
« Последнее редактирование: 17.12.2015, 17:25:31 от voland »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера в 3.4.6
« Ответ #1 : 16.12.2015, 23:12:05 »
Цитировать
однако через некоторое время они вновь приобретают вид
/component/tags/tag/tagname.html
Это как? Само по себе?
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера в 3.4.6
« Ответ #3 : 16.12.2015, 23:14:30 »
Вот, там можно увидеть адреса ссылок.
А потом зайти сюда и ссылки станут правильными.
Но, на некоторое время
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера в 3.4.6
« Ответ #4 : 16.12.2015, 23:19:02 »
Так по моему они так всегда работали. Пока находишься внутри компонента тегов, всё ок, а как выходишь из него - нет. Или я не прав?
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера в 3.4.6
« Ответ #5 : 16.12.2015, 23:23:13 »
Не знаю.
Даже если выйти, модуль некоторое время показывает верные ссылки.

В любом случае - это некорректная работа роутера
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера в 3.4.6
« Ответ #6 : 17.12.2015, 08:30:24 »
Ну так надо создать пункты меню для всех тегов и всё будет ок. Это же Joomla.
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера в 3.4.6
« Ответ #7 : 17.12.2015, 08:46:43 »
Ну так надо создать пункты меню для всех тегов и всё будет ок. Это же Joomla.
Да вы издеваетесь!
Тем более что тэги создаются на лету и ссылки то ИНОГДА правильные.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Неверная работа роутера в 3.4.6
« Ответ #8 : 17.12.2015, 08:48:59 »
А если тегов несколько тысяч?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Неверная работа роутера в 3.4.6
« Ответ #9 : 17.12.2015, 09:00:14 »
Не пробовали в шаблоне модуля приписать к url тэгов Itemid того пункта меню?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера в 3.4.6
« Ответ #10 : 17.12.2015, 09:09:20 »
Нет. А разве они не в хелпере генерируется?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Неверная работа роутера в 3.4.6
« Ответ #11 : 17.12.2015, 09:20:37 »
Не знаю, я этот модуль не юзаю, но не думаю, что в хелпере определяется ID вашего пункта меню (что в принципе тоже можно делать). Могу ошибиться, но насколько я помню, router.php сначала ищет подходящий пункт меню по Itemid и в случае неуспеха оставляет url в виде "component/tags".
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера в 3.4.6
« Ответ #12 : 17.12.2015, 09:49:15 »
Кстати, как ни странно, но ссылки формируются уже в шаблоне вывода
Код
JRoute::_(TagsHelperRoute::getTagRoute($item->tag_id . ':' . $item->alias))
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера в 3.4.6
« Ответ #13 : 17.12.2015, 10:11:18 »
Могу ошибиться, но насколько я помню, router.php сначала ищет подходящий пункт меню по Itemid и в случае неуспеха оставляет url в виде "component/tags".
Именно, стандартный роутер - ищет Itemid конкретного элемента. Он такой везде в Joomla - во всех компонентах. Нет фолбэка на список.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Неверная работа роутера в 3.4.6
« Ответ #14 : 17.12.2015, 10:30:53 »
Нет фолбэка на список.
Исключение - если он активный. Интересно, почему?
P.S. Ведь если не найдется пункта меню для конкретного элемента, то логично использовать существующий пункт меню списка, так? В общем, думаю, что всю систему образования ссылок нужно менять.
« Последнее редактирование: 17.12.2015, 10:43:00 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера в 3.4.6
« Ответ #15 : 17.12.2015, 10:40:17 »
Сергей, попробуй сделать так в /components/com_tags/helpers/route.php:

Добавь после 155 строки код:

Код: php
// Fallback to default tags view
if ($view == 'tags')
{
self::$lookup[$language]['tags']['default'] = $item->id;
}

Потом после строки 178:

Код: php
// Return the default itemid
if (isset(self::$lookup[$language]['tags']['default']))
{
return self::$lookup[$language]['tags']['default'];
}
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера в 3.4.6
« Ответ #16 : 17.12.2015, 10:42:09 »
Исключение - если он активный. Интересно, почему?
Так активный пункт может быть не только список.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Неверная работа роутера в 3.4.6
« Ответ #17 : 17.12.2015, 10:44:06 »
Ведь если не найдется пункта меню для конкретного элемента, то логично использовать существующий пункт меню списка, так?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #18 : 17.12.2015, 10:46:58 »
Ведь если не найдется пункта меню для конкретного элемента, то логично использовать существующий пункт меню списка, так?
Как бы да, логично. Выше я как раз предложил такое решение. Но реально нужно давать выбор, что использовать для фолбэка, а не хардкодить.
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #19 : 17.12.2015, 16:08:44 »
Сергей, попробуй сделать так в /components/com_tags/helpers/route.php:

Добавь после 155 строки код:

Код: php
// Fallback to default tags view
if ($view == 'tags')
{
self::$lookup[$language]['tags']['default'] = $item->id;
}

Потом после строки 178:

Код: php
// Return the default itemid
if (isset(self::$lookup[$language]['tags']['default']))
{
return self::$lookup[$language]['tags']['default'];
}
Точно после этих строк?
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #23 : 17.12.2015, 16:39:46 »
Угу, сделал.
Проверил - поведение не изменилось.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #24 : 17.12.2015, 16:52:52 »
Аа, я затупил. Там же else, а значит он не отработает, так как $needles всегда есть. Убери else вообще.

И первую часть кода после строки 154 воткни.
https://github.com/joomla/joomla-cms/blob/staging/components/com_tags/helpers/route.php#L154
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #25 : 17.12.2015, 17:23:46 »
Не, всё же поставь первую часть после строки 155.
О, теперь работает!
Надо запуллить!
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #26 : 17.12.2015, 17:29:28 »
О, теперь работает!
Надо запуллить!
Я уже пояснял, что так просто пулл не сделать. А если кто-то не хочет, чтобы по дефу брался пункт меню списка тегов?
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #27 : 17.12.2015, 17:31:01 »
Ну если 99% это надо, то может есть смысл игнорировать этого кого-то?
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #28 : 17.12.2015, 17:38:29 »
Ты узко мыслишь... Сразу видно, пуллов не делал ;) Харкодить нельзя, понимаешь? Ты же не для себя делаешь...

Нужна свобода выбора, а это значит, что надо параметр вводить какой-то. Возможно в настройки компонента.
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Неверная работа роутера тегов в 3.4.6
« Ответ #29 : 17.12.2015, 18:03:22 »
Ты узко мыслишь... Сразу видно, пуллов не делал ;) Харкодить нельзя, понимаешь? Ты же не для себя делаешь...

Нужна свобода выбора, а это значит, что надо параметр вводить какой-то. Возможно в настройки компонента.
Эх.. пока это случится
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться