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

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

Убрать ID категории и материала из ссылки

 (Прочитано 8048 раз)
0 Пользователей и 1 Гость смотрят эту тему.
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« : 16.02.2014, 15:30:52 »

Доброго времени суток.
Собственно, сабж.
Используется стандартный com_content. Имею ссылку вида: sitename/cat/37-subcat/180-article.html
На cat имеется ссылка меню, поэтому id не выводится. Как убрать id из subcat и article?

Поиск по форму ничего не дал (множество имеющихся вариантов подходят только для К2).
« Последнее редактирование: 16.02.2014, 16:20:56 от AlekVolsk » Записан
 
KSS
Осваиваюсь на форуме
***

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

Сообщений: 60


« Ответ #1 : 16.02.2014, 21:52:32 »

в файле components/com_content/router.php
заменить
->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));
на
->where($db->quoteName('alias'). ' = ' . $db->quote($segment));

Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #2 : 16.02.2014, 22:44:58 »

хмм, а в шаблоне это можно как-нибудь переопределить?
templname/html/com_content/router.php ?
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #3 : 16.02.2014, 23:31:29 »

в файле components/com_content/router.php
заменить
->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));
на
->where($db->quoteName('alias'). ' = ' . $db->quote($segment));
Это не помогло.
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #4 : 16.02.2014, 23:55:23 »

Уточню, т.к. подозреваю, что не совсем корректно задал вопрос: ссылка = url в адресной строке браузера.
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

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


« Ответ #5 : 17.02.2014, 02:24:09 »

По идее это можно реализовать, потому что у категории и материала есть алиас (псевдоним), уникальность которого система впринципе обеспечивает на програмном уровне. Не знаю почему компонент по умолчанию использует ид в урлах, однако если вы хотите выбирать метериал по алиасу, скорее всего придется подправить и роутер и компонент (для выборки данных по алиасу). В зависимости от требований есть еще вариант передавать идэшники POST-ом, но на мой взгляд это изврат.
Записан
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #6 : 17.02.2014, 03:00:29 »

http://joomlaforum.ru/index.php/topic,169326.msg1384971.html#msg1384971
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #7 : 17.02.2014, 07:07:47 »

http://joomlaforum.ru/index.php/topic,169326.msg1384971.html#msg1384971
Elle, спасибо, решение от Pavel M в его блоге подошло, вариант 1.
Минус всех предложенных решений в том, что при обновлении опять придется править роутер, а в шаблоне, как я правильно понял, это не переопределишь.
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #8 : 07.03.2014, 12:56:35 »

Как и ожидалось, при обнове все слетит.
Кому интересно, поправленный /components/com_content/router.php для J3.2.3 во вложении

* router.zip (2.62 Кб - загружено 154 раз.)
Записан
pragmatik
Захожу иногда
**

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

Сообщений: 14


« Ответ #9 : 11.03.2014, 23:21:53 »

Господа, а почему никто не рассматривает в качестве решения создание невидимого меню с пунктом под каждый материал и каждую категорию?
Ведь это:
  • позволит спокойно обновлять систему, не сбивая хаки
  • гарантированно избавит от дублей
по-моему для небольших сайтов это идеальное решение,
а вот насчет сайтов с несколькими тысячами страниц я не уверен,
не знает ли кто, сильно ли сказывается увеличение числа пунктов "невидимого" меню на нагрузку на сервер?
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #10 : 12.03.2014, 09:47:38 »

У меня уже под сотню материалов, и на каждый материал создавать еще и пункт меню - нелепо. Если J не в состоянии штатными цивильными (т.е. без всяких ухищрений со скрытыми меню, которые по сути тоже являются своеобразными хаками) средствами обеспечить требуемый функционал, то использование каких-либо хаков уже есть нормально, и лучше поправить 2 строчки в роутере, нежели перегружать базу объемом (есть хостинги, которые устанавливают ограничение на размер базы, ihc.ru например), а сервер нагрузкой (особенно на бесплатных тарифах, где нагрузка зарезана под минимум), каждый раз при этом теряя время на создание логически ненужного пункта меню.
Записан
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #11 : 13.03.2014, 15:52:03 »

Используем плагины для переопределения базовых классов
Роутинг в Joomla (JRoute)

м/б подтолкнет на красивый обход, в виде подмены всего роутера или нужного класса
Записан
b2z
Support Team
*****

Репутация: +707/-0
Offline Offline

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


Разраблю понемногу


« Ответ #12 : 13.03.2014, 16:00:25 »

Вот еще очень интересная тема по роутингу.
Записан
ELLE
Support Team
*****

Репутация: +862/-0
Offline Offline

Пол: Женский
Сообщений: 4723



« Ответ #13 : 13.03.2014, 16:05:45 »

Вот еще очень интересная тема по роутингу.
во, по-моему то что нужно
надо только сесть, да попробовать
Записан
b2z
Support Team
*****

Репутация: +707/-0
Offline Offline

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


Разраблю понемногу


« Ответ #14 : 13.03.2014, 16:38:00 »

во, по-моему то что нужно
надо только сесть, да попробовать
Уху, все никак руки у меня не доходят. Тоже интересен этот момент.
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #15 : 13.03.2014, 19:08:13 »

Используем плагины для переопределения базовых классов
Роутинг в Joomla (JRoute)

м/б подтолкнет на красивый обход, в виде подмены всего роутера или нужного класса
Вот еще очень интересная тема по роутингу.
Ну, это уже для спецов, мне пока слабо
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #16 : 30.04.2014, 18:30:23 »

Для интересующихся, во вложении роутер com_content для J3.2.4/3.3.0

* router.zip (2.93 Кб - загружено 128 раз.)
Записан
b2z
Support Team
*****

Репутация: +707/-0
Offline Offline

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


Разраблю понемногу


« Ответ #17 : 30.04.2014, 20:24:45 »

Скоро этим хакам придет конец
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #18 : 01.05.2014, 09:42:09 »

При условии, что новый роутер затронет интересы всех, что, имхо, малореально - уж больно много "хакеров" и иных недовольных текущим поведением, и каждый тянет в свою сторону.
Записан
b2z
Support Team
*****

Репутация: +707/-0
Offline Offline

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


Разраблю понемногу


« Ответ #19 : 01.05.2014, 11:39:07 »

При условии, что новый роутер затронет интересы всех, что, имхо, малореально - уж больно много "хакеров" и иных недовольных текущим поведением, и каждый тянет в свою сторону.
А как он может не затронуть всех? Изменения будут сделаны в ядре. Кастомизация на уровне плагинов.
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

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


Рисую дизайны


« Ответ #20 : 01.05.2014, 11:41:14 »

Плагин переопределения роутера.
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #21 : 01.05.2014, 12:03:41 »

Смотрел, пробовал. При очередном обновлении родной роутер изменяет поведение, исправляет/добавляет новые косяки, и снова его приходится править, чтобы подставить плагину. Лыко-мочало...

А как он может не затронуть всех? Изменения будут сделаны в ядре. Кастомизация на уровне плагинов.
Доживем, посмотрим Azn
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #22 : 24.09.2014, 22:48:34 »

С J3.3.0 роутер com_content не обновлялся, и вот в 3.3.4 снова вылезли id в урлах...

Для страждущих: во вложении роутер com_content для J3.3.4.
Для новичков: содержимое файла распаковать в: /components/com_content/

* router.zip (2.92 Кб - загружено 150 раз.)
Записан
jacson1985
Новичок
*

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

Сообщений: 8


« Ответ #23 : 02.02.2015, 14:36:23 »

С J3.3.0 роутер com_content не обновлялся, и вот в 3.3.4 снова вылезли id в урлах...

Для страждущих: во вложении роутер com_content для J3.3.4.
Для новичков: содержимое файла распаковать в: /components/com_content/
Приветствую! Вставил этот роутер, id убрались, но теперь вместо 404-й вылазит "jos-Error: Материал не найден" и куча путей к разным файлам.
У меня Joomla 3.3.3, не подходит он для неё?
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #24 : 02.02.2015, 21:57:52 »

Подходит и для 3.3.3, возможно, имеются иные правки? Или плагины? Судя по ошибке, у вас либо клубный шаблон на собственном фреймворке либо не com_content используется.
Записан
jacson1985
Новичок
*

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

Сообщений: 8


« Ответ #25 : 03.02.2015, 18:12:05 »

Подходит и для 3.3.3, возможно, имеются иные правки? Или плагины? Судя по ошибке, у вас либо клубный шаблон на собственном фреймворке либо не com_content используется.
Шаблон артистер, com_content стандартный, другого ничего не использую. Правки только эти внёс. Можете взглянуть? Естественно отблагодарю drink, если заработает, ну очень меня эти id не устраивают Sad
« Последнее редактирование: 03.02.2015, 18:17:05 от jacson1985 » Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #26 : 03.02.2015, 23:00:58 »

Нет, не посмотрю, - артистки не в чести, фреймворк у него отсутствует, а значит не в шаблоне дело. Что-то вы там напортачили в самом роутере.
Записан
akondr
Осваиваюсь на форуме
***

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

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


« Ответ #27 : 09.02.2015, 14:22:21 »

С J3.3.0 роутер com_content не обновлялся, и вот в 3.3.4 снова вылезли id в урлах...

Для страждущих: во вложении роутер com_content для J3.3.4.
Для новичков: содержимое файла распаковать в: /components/com_content/
работате на 3.3.6 исправно
Спасибо!!
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

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



« Ответ #28 : 25.02.2015, 14:46:06 »

Обновленный роутер для J3.4.0.
В архиве во вложении 2 файла: router.php и config.xml.
Порядок установки:
1. Сделать бекап файла /administrator/components/com_content/config.xml
2. Сделать бекап файла /components/com_content/router.php
3. Извлечь из архива файл router.php и скопировать его с заменой в папку /components/com_content/
4. Извлечь из архива файл config.xml и скопировать его с заменой в папку /administrator/components/com_content/
5. В админке войти в общие настройки материалов и пересохранить их, убедившись, что параметр "Удалить ID материала из URL" имеет значение "Да".
6. Очистить кеш.
7. Наслаждаться.

upd 23.03.2015
Также подходит для J3.4.1

* router-com_content-J3.4.zip (5.94 Кб - загружено 223 раз.)
« Последнее редактирование: 23.03.2015, 08:41:27 от AlekVolsk » Записан
pixod
Новичок
*

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

Сообщений: 1


« Ответ #29 : 27.03.2015, 23:15:43 »

Добрый день. Такая проблема: материалы на сайте доступны по id в ссылках site.com/83 (83-id материала). Ссылки типа site.com/83, site.com/83fdsfsd, site.com/83-qwerty открывают один и тот же материал. Материал ни к какому меню не подключен и так просмотреть можно каждый материал. В чем проблема? искал не нашел. Версия 3.3.6. Заранее спасибо.
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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