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

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

[FAQ] Как убрать ID из ссылок?

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

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

Сообщений: 124


« : 24.06.2011, 03:40:08 »

Как убрать ID из ссылок в оригинальной Joomla?
« Последнее редактирование: 29.08.2013, 10:17:03 от b2z » Записан
 
b2z
Support Team
*****

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

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


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


« Ответ #91 : 15.10.2013, 11:20:38 »

Если с двойным quote все ясно, то по поводу if ($count === 1 && !$advanced) я засомневался.

Pavel M в блоге привел два способа, причем кардинально отличающихся:
- первый способ if ($count === 1 && !$advanced) целиком убирает обработку одного сегмента для advanced режима;
- второй способ закомментировать строки:
Код
if (strpos($segments[0], ':') === false)
{
   $vars['view'] = 'article';
   $vars['id'] = (int) $segments[0];
 
   return $vars;
}
и он тоже работает.

Тут возникает вопрос, если комментирование более маленького куска кода из второго способа приводит к тому же результату, то правильно ли применять первый способ? К тому же в примечаниях к первому способу стоит:
Цитировать
все категории должны быть привязаны к пунктам меню - если этого не будет, то могут возникнуть ошибки при генерации ссылок.
Возможно при втором способе нет необходимости привязки все категорий к пунктам меню? Честно сказать, я в роутерах не очень силен, поэтому надо разобраться. А то меня пошлют с моим pull request Smiley
Записан
b2z
Support Team
*****

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

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


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


« Ответ #92 : 15.10.2013, 23:46:04 »

Вообщем потестил я и так и сяк, вроде способ с if ($count === 1 && !$advanced) нормально работает.

Сделал Pull Request + ссылка на трекер.
Записан
ZHart
Joostina
*****

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

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



« Ответ #93 : 16.10.2013, 09:52:14 »

b2z, еще раз спасибо.
Надеюсь, эти изменения таки включат в релиз.
Записан
Pavel M
Осваиваюсь на форуме
***

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

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


Учиться никогда не поздно


« Ответ #94 : 16.10.2013, 11:19:11 »

Вообщем потестил я и так и сяк, вроде способ с if ($count === 1 && !$advanced) нормально работает.

Сделал Pull Request + ссылка на трекер.
Я использую эти методы на всех своих (и некоторых клиентских) сайтах уже почти год. Пока что ни разу не было замечено глюков.

Однако, замечу, что я использую не все возможности Joomla, поэтому возможно какие-то моменты могут работать некорректно. Тут поможет только тестирование.
Записан
b2z
Support Team
*****

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

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


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


« Ответ #95 : 16.10.2013, 11:41:29 »

Я использую эти методы на всех своих (и некоторых клиентских) сайтах уже почти год. Пока что ни разу не было замечено глюков.

Однако, замечу, что я использую не все возможности Joomla, поэтому возможно какие-то моменты могут работать некорректно. Тут поможет только тестирование.
Я вчера тестировал. Единственный минус такого advanced метода заключается в том, что все должно быть привязано к меню. Конечно, можно роутер переделать, но я в это не хочу лезть Smiley
Записан
Pavel M
Осваиваюсь на форуме
***

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

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


Учиться никогда не поздно


« Ответ #96 : 16.10.2013, 13:32:38 »

Я вчера тестировал. Единственный минус такого advanced метода заключается в том, что все должно быть привязано к меню. Конечно, можно роутер переделать, но я в это не хочу лезть Smiley
Да я и раньше все разделы старался привязывать к меню, тогда меньше дублей вылезает в выдачу. Правда желательно ещё и редиректы поставить http://joomlaforum.ru/index.php/topic,201567.0.html, тогда вообще нет дублей (если использовать для сайта стандартный com_content)
Записан
ZHart
Joostina
*****

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

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



« Ответ #97 : 07.11.2013, 13:52:44 »

После обновления до Joomla 3.2 всю процедуру пришлось повторить заново.
То есть в 3.2 никаких изменений в ядро произведено не было к сожалению.

P.S.: Еще бы решить тот же вопрос для тегов в Joomla 3.x — было бы вообще шикарно.
Записан
b2z
Support Team
*****

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

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


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


« Ответ #98 : 07.11.2013, 14:00:04 »

Ну да, так как они тормозят... Типа пишут, что такое есть и в других роутерах. Я как бы задал вопрос, но ответа пока нет.
http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_id=8103&tracker_item_id=32324
Записан
Dazed79
Новичок
*

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

Сообщений: 1



« Ответ #99 : 21.11.2013, 08:20:32 »

После удаления ID вышеописанным способом при добавлении в URL формата сайт.ру/категория/подкатегория/статья.html любых символов

сайт.ру/категория/до подкатегории/подкатегория/статья.html
сайт.ру/категория/вместо подкатегории/статья.html
сайт.ру/категория/подкатегория/после подкатегории/статья.html

а также при переходе на страницы из удаленной подкатегории (старые внешние ссылки) стала появляться страница (раньше открывался дубль или 404):
Показать текстовый блок

На категорию и подкатегорию есть пункты меню. Возврат к исходникам, чистка coocies, кеша ничего не дали
Может кто-нибудь помочь устранить эту проблему или подсказать способ как закрыть ее 404й?   !

P.S. после удаления id дубли убрал при помощи плагина Shnodoubles
« Последнее редактирование: 21.11.2013, 08:59:52 от Dazed79 » Записан
motosimak
Осваиваюсь на форуме
***

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

Сообщений: 54


« Ответ #100 : 23.12.2013, 18:45:29 »

2 вопроса:
1- как убрать id под категории? Т.е в меню привязана категория и в ней есть подкатегории.
2- когда избавление от id будет из коробки? На других cms  видел, что ссылки изначально без id, если же ссылка одинаковая с уже существующей, показывает id, т.е обратная ситуация.
Записан
peterk
Захожу иногда
**

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

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


« Ответ #101 : 09.01.2014, 07:00:19 »

Подскажите как избавиться от цифр в URL
Имеем материал и пункт меню которое на него ссылается и как следствие получаем следующую ссылку
http://сайт.ru/2013-02-05-15-28-57/o-kompanii
« Последнее редактирование: 09.01.2014, 10:09:08 от peterk » Записан
kreator
Новичок
*

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

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


« Ответ #102 : 01.02.2014, 14:08:34 »

У меня немного обратный вопрос: как убрать все, кроме ID материала в ссылке, чтоб:

http://sait.ru/katalog/6545-тут-длинный-хвост-от-названия-материала.html

стало:

http://sait.ru/katalog/6545.html

?
Записан
Pavel M
Осваиваюсь на форуме
***

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

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


Учиться никогда не поздно


« Ответ #103 : 02.02.2014, 13:48:38 »

У меня немного обратный вопрос: как убрать все, кроме ID материала в ссылке, чтоб:

http://sait.ru/katalog/6545-тут-длинный-хвост-от-названия-материала.html

стало:

http://sait.ru/katalog/6545.html

?

Решения через ХАК я не знаю, так как не сталкивался с этим. Но можно сделать вот таким образом:

1. Сначала убираете ID статей через вышеуказанные способы.
2. Потом просто вместо алиасов материалов вручную задаете нужные цифры в настройках каждого материала.
Записан
garmoni
Осваиваюсь на форуме
***

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

Сообщений: 38


« Ответ #104 : 25.03.2014, 15:32:19 »

После проделанной процедуры указанной выше (убрать ID), все работает, только те материалы, которые выводятся через ссылку в статье стали выводится с текстом главной страницы вначале. Проверила модуль, который выводит текст на главную. Галочка стоит только в пункте Главная. Возвращаю все как было, материал открывается нормально.
Записан
mspb
Новичок
*

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

Сообщений: 3


« Ответ #105 : 12.04.2014, 12:57:23 »

А как сделать, чтобы это всё не слетало при обновлении?
Записан
ZHart
Joostina
*****

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

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



« Ответ #106 : 12.04.2014, 16:28:34 »

А как сделать, чтобы это всё не слетало при обновлении?

Долбить разработчиков, чтобы они включили эти изменения в релиз. Для этого есть все основания, ведь хуже не будет (тем более, что как минимум одно из изменений — это исправление явного бага). К сожалению, пока они с этим делом тормозят.
Записан
indorill
Осваиваюсь на форуме
***

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

Сообщений: 115


« Ответ #107 : 27.05.2014, 15:44:41 »

Здравствуйте, на версии 2.5 кое как получилось сделать что бы ссылка выглядела примерно как мне нужно) Но теперь проблема в том что при использовании плагина Контент - Навигация по страницам - линкует на страницы под неправильным адресом - вместо нужного /cases/83-portfolio -> /cases/80-cases/83-portfolio7 Подскажите пожалуйста, что и где поправить что бы ссылки работали так же как в вашем описании?
Записан
Webb
Давно я тут
****

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

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


rusinmd


« Ответ #108 : 09.06.2014, 21:27:40 »

Не фунциклирует Joomla! 3.2.3.
Записан
Dekameron
Осваиваюсь на форуме
***

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

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


« Ответ #109 : 05.07.2014, 13:26:51 »

Внес правки в config.xml и 2 правки в роутере (0 на 1), и + попрпавил 3-ю строку.
Но в менеджере материалов Joomla 3.3 не нашел опции "Отключить ID".
Где её искать? На каких вкладках?
Записан
lap-a-toon
Захожу иногда
**

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

Сообщений: 10


« Ответ #110 : 09.07.2014, 15:09:40 »

Прошу прощения, если где-то это уже решено, но не нашел.
Интересует такой момент, когда ввожу в адресной строке что-то вроде http://САЙТ/catalog/stranica
где catalog и stranica это произвольные наборы символов, не обязательно соответствующим папкам и алиасам, но присутствуют оба
спотыкается в router.php на этой строке
      
Код:
// We get the category id from the menu item and search from there
$id = $item->query['id'];
выдает такую ошибку:
Notice: Undefined index: id in .../components/com_content/router.php on line 386

Пробовал оба описанных способа, в обоих случаях результат одинаков
Записан
Yoric
Захожу иногда
**

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

Сообщений: 13


« Ответ #111 : 26.11.2014, 15:37:49 »

Версия Joomla 3.3.6 Поменял 0 на 1 iD исчез, но если добавляешь новую статью - получаешь 404 на все статьи кроме первой

Есть какие то варианты еще?
« Последнее редактирование: 26.11.2014, 16:46:57 от Yoric » Записан
Yoric
Захожу иногда
**

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

Сообщений: 13


« Ответ #112 : 26.11.2014, 22:14:53 »

Нашел как id отключить -
Joomla 3.3.6

1
Открываем в блокноте файл ваш_сайт/administrator/components/com_content/config.xml
Сразу же после строки description="COM_CONTENT_CONFIG_ARTICLE_SETTINGS_DESC">
вставляем следующий код:
<field name="sef_advanced_link" type="radio" default="1" label="SefAdvancedMode" description="Remove Item ID from Content URL?">
   <option value="0">JNO</option>
   <option value="1">JYES</option>
</field>

2.
Сохраняем файл. Переходим в панель управления сайта, выбираем в верхнем меню Материалы/Менеджер материалов. Нажимаем кнопку Настройки в верхней части страницы.
Появится всплывающее окно с настройками. Переходим во вкладку Материалы и видим пункт SefAdvancedMode с двумя радио переключателями Нет и Да. Проверяем, что бы отмечен был переключатель Да (он должен быть отмечен по умолчанию), при необходимости активируем нужный пункт. Сохраняемся и закрываем окно

3.  открываем в блокноте файл ваш_сайт/components/com_content/router.php, находим строку if ($count == 1) { (у меня это 226 строка) и изменяем ее на строку вида if ($count == 1 && !$advanced)

4.
в файле components/com_content/router.php
на примерно 377 строке:
код
->where($db->quoteName('alias' ). ' = ' . $db->quote($db- >quote($segment)));
надо заменить на
->where($db->quoteName('alias' ). ' = ' . $db->quote($segment) );

Все заработало!
Записан
Yoric
Захожу иногда
**

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

Сообщений: 13


« Ответ #113 : 26.11.2014, 22:18:20 »

И если потом ID подставляешь - то страницы нет - 404
У меня шаблон от ЮТЕМ (на всякий случай пишу)
Записан
sandra_ap
Новичок
*

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

Сообщений: 1


« Ответ #114 : 11.12.2014, 16:46:59 »

Помогите, пожалуйста, как все назад вернуть? И 404-я ошибка и дубли... 1. Файл router.php первоначальный загрузить, 2. в Настройках "Удалить ID?" - выбрать "Нет", 3. очистить кеш. Но ничего не возвращается. Что еще? Спасибо!!
Записан
Mega-e
Осваиваюсь на форуме
***

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

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



« Ответ #115 : 11.05.2015, 19:00:46 »

Как убрать ID из ссылок в оригинальной Joomla?

http://artinweb.biz/ru/kopilka/joomla-ru/udalenie-id-materiala-ili-kontakta-iz-ssylok-v-joomla.html
Записан
virusnjk
Захожу иногда
**

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

Сообщений: 18


« Ответ #116 : 08.09.2015, 18:05:16 »

Всё работает по этим вариантам, только не работает тогда когда у материала алиас к примеру вот такой "video" а если сделать алиас "video-1" то ошибки 404 нет.

версия 3.4.3

Почему? Как исправить что бы было без дефиса?

забыл заменить строчку в router.php
Цитировать
if ($count == 1) {
на
Цитировать
if ($count == 1 && !$advanced) {

и всё заработало

редактирую далее пока никто не ответил, не работает в тех категориях где выставлен пункт меню как материал, а в этом материале есть ссылки на другие материалы той же категории что и первый материал
« Последнее редактирование: 08.09.2015, 18:22:57 от virusnjk » Записан
woodjum
Захожу иногда
**

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

Сообщений: 10


« Ответ #117 : 18.09.2015, 18:04:45 »

Ошибка COM_CONTENT_ERROR_PARENT_CATEGORY_NOT_FOUND

Ссылка /uslugi-i-tseny/uslugi-i-tseny-v-moskve
Пункт меню /uslugi-i-tseny работает и ссылается на материал который открывается нормально.

Использую только плагин JCE
Помогите что надо исправить что бы все заработало, всю голову уже сломал.
Записан
Lordon
Захожу иногда
**

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

Сообщений: 16


« Ответ #118 : 08.10.2015, 22:23:38 »

та же беда, у меня при создании меню, материалов категории в адресной строке цифры
у меня Joomla 3.4
были вот такие ссылки
http://obivshik.ru/sdelaj-sam/120-remont-i-restavratsiya-stula-svoimi-rukami.html
помогло решение №2 http://joofaq.ru/sozdanie-sayta-na-joomla-1-5/nastroyka-rasshireniy/kak-ubrat-id-materiala-iz-ssylok-v-joomla-2-5-i-joomla-3
правда у меня почему то ссылка не открывается, если у кого так, удалите с конца /kak-ubrat-id-materiala-iz-ssylok-v-joomla-2-5-i-joomla-3 и откроется
получилось вот так http://obivshik.ru/sdelaj-sam/remont-i-restavratsiya-stula-svoimi-rukami.html
искал по форуму нашел
« Последнее редактирование: 08.10.2015, 23:25:19 от Lordon » Записан
Lordon
Захожу иногда
**

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

Сообщений: 16


« Ответ #119 : 08.10.2015, 23:26:29 »

Ребята, уже вроде было найдено решение. Я писал об этом в блоге.

Если вкратце, то для отображения ссылки из одного слова нужно кусок:

Код:
// then we assume it is a category. If they don't we assume it is an article
if ($count === 1) {

Заменить на:

Код:
// then we assume it is a category. If they don't we assume it is an article
if ($count === 1 && !$advanced) {

Проверял на Joomla 3.1
помогло)))
вариант второй
Записан
Lordon
Захожу иногда
**

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

Сообщений: 16


« Ответ #120 : 13.10.2015, 00:02:25 »

после того как убрал ссылки ID в router.php все заработало, но, появилось в одном материале вот такая ошибка router.php on line 320
кто знает что там ковырнуть ?
Записан
Страниц: 1 2 3 [4] 5   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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