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

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

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

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

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

Сообщений: 124


« : 24.06.2011, 03:40:08 »

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

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

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



« Ответ #61 : 30.10.2012, 20:21:46 »

А я сделал в версии 2.5.6 совсем по другому и все работает Smiley

Редактируем файл Router.php находящийся в ваш_сайт/components/com_content/

Нажимаем CTRL+F (запускаем поиск) и ищем

     $params->get('sef_advanced_link',

должно найти 2 результата, первая примерно на 27й строке в функции function ContentBuildRoute(&$query) и вторая на 208й строке в функции function ContentParseRoute($segments). Если не находит, поищите по функциям или по номеру строк. И в найденных строках

    $advanced = $params->get('sef_advanced_link', 0);

меняем 0 на 1 в обоих строках.



Чуть ниже где то на 228й строке находим if (strpos($segments[0], ':') === false) { (можете через поиск)

     if (strpos($segments[0], ':') === false) {

          $vars['view'] = 'article';

          $vars['id'] = (int)$segments[0];

          return $vars;

     }

и комментируем все пять строк подряд начиная с /* и заканчивая */



Нашел этот способ тут
половина материалов перестала открываться, вылетает 404 ошибка ((
Записан
Rex_One
Завсегдатай
*****

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

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


« Ответ #62 : 04.11.2012, 21:58:25 »

Я так понимаю, правильная настройка роутера существует, только вот написать ни кто не хорчет это, потому как на этом некоторые зарабатывают.

Я прав?!
Записан
kosty56rus
Осваиваюсь на форуме
***

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

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



« Ответ #63 : 12.11.2012, 12:04:51 »

половина материалов перестала открываться, вылетает 404 ошибка ((
Нужно только поменять значение 0 на 1. Коментировать кусок кода не нужно, и все ок нет в ссылках ID(у меня на Joomla 3.0 так)
Записан
miishl
Осваиваюсь на форуме
***

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

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



« Ответ #64 : 12.11.2012, 14:57:22 »

Нужно только поменять значение 0 на 1. Коментировать кусок кода не нужно, и все ок нет в ссылках ID(у меня на Joomla 3.0 так)
поменял - ID остались, но хоть и все статьи живы
Записан
kosty56rus
Осваиваюсь на форуме
***

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

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



« Ответ #65 : 16.11.2012, 10:16:57 »

поменял - ID остались, но хоть и все статьи живы
Незнаю уже на трех сайтах менял, все убирается (joomla 2.5 и 3.0)
P.S. Вы в обоих значениях меняете 0 на 1? Там одно за ID материала другое за ID категории отвечает.
Записан
miishl
Осваиваюсь на форуме
***

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

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



« Ответ #66 : 18.11.2012, 02:56:13 »

Незнаю уже на трех сайтах менял, все убирается (joomla 2.5 и 3.0)
P.S. Вы в обоих значениях меняете 0 на 1? Там одно за ID материала другое за ID категории отвечает.
оба два меняю.
на 10 чтоле строке и свыше 200й
Записан
kosty56rus
Осваиваюсь на форуме
***

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

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



« Ответ #67 : 20.11.2012, 08:06:21 »

оба два меняю.
на 10 чтоле строке и свыше 200й
Значит у Вас в шаблоне скорее всего нужно менять. Посмотрите шаблон/html/com_content есть файл router.php если да то в нем меняйте.
Записан
dimmer
Осваиваюсь на форуме
***

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

Сообщений: 33


« Ответ #68 : 20.11.2012, 15:36:58 »

Joomla 2.5. Поменял в двух местах 0 на 1 как написал Lrad. Вроде все заработало. Но сегодня заметил, что некоторые статьи выдают 404. Если вернуть старый router.php, то все работает как надо. Нашел закономерность: если в ссылке есть 20%, то она не открывается. Почему-то в некоторых случаях Feedgator делает alias с пробелами и измененный роутер с ними не справляется.
« Последнее редактирование: 20.11.2012, 18:40:23 от dimmer » Записан
Silent_Breeze
Осваиваюсь на форуме
***

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

Сообщений: 168



« Ответ #69 : 21.11.2012, 00:16:46 »

Этот вариант работает только если на нужную страницу можно попасть через пункт меню. Если указываем ссылку внутри статьи на другую статью, то получаем 404. В общем не совсем рабочий этот варант... И заметил ещё один побочный глюк. В менеджере ссылок в JCE 2.9.1 перестаёт работать поиск по материалам...(хотя, возможно, просто так совпало, но после возвращения взад всё опять заработало нормально)
Записан
grishka1991
Новичок
*

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

Сообщений: 8


« Ответ #70 : 03.12.2012, 12:34:20 »

Подскажите пожалуйста, а как бороться с дублями страниц материалов - с ID и без ID?


нашел решение - вот этот плагин от sherza - http://joomlaforum.ru/index.php/topic,156030.210.html
« Последнее редактирование: 03.12.2012, 12:50:16 от grishka1991 » Записан
llektor
Давно я тут
****

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

Сообщений: 214



« Ответ #71 : 13.01.2013, 16:09:28 »

Плагин хороший и работает нормально и пагинация работает жаль только что дубли есть
Записан
anbarter
Захожу иногда
**

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

Сообщений: 21


« Ответ #72 : 27.01.2013, 00:13:22 »

Все работает. Только не помогло для форума Kunena. Аналогичная ситуация - добавляется id в ссылки материалов.

Цитировать
и комментируем все пять строк подряд начиная с /* и заканчивая */

А зачем это нужно? Если и без этого id уже не выводится. Все материалы открываются корректно.
« Последнее редактирование: 27.01.2013, 13:16:59 от anbarter » Записан
Савелий
Новичок
*

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

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


http://www.nn1.su/


« Ответ #73 : 13.07.2013, 20:56:07 »

Сложновата Joomla для меня, но интересная.
Записан
ZHart
Joostina
*****

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

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



« Ответ #74 : 13.10.2013, 13:43:44 »

На Joomla 3.1 у меня не работает ни первый метод, ни второй. В первом случае ссылки начинают отдавать 404-ю ошибку (router.php правил), во втором вообще нет никаких видимых изменений.
Для Joomla 3.1 есть рабочее решение?
Записан
ELLE
Support Team
*****

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

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



« Ответ #75 : 13.10.2013, 13:47:34 »

Вроде решали тут -
Как убрать ID из URL Joomla 3?
поищите поиском, были еще темы
Записан
ZHart
Joostina
*****

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

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



« Ответ #76 : 13.10.2013, 14:02:25 »

Update:

На Joomla 3.1 у меня заработало другое решение.
После правки файла «\administrator\components\com_content\config.xml» и активации опции в админке, я открыл файл «router.php», нашел в нем строку:
Код:
->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));
... и заменил ее на:
Код:
->where($db->quoteName('alias'). ' = ' . $db->quote($segment));

Вроде все работает. Но у меня вопрос к специалистам — насколько корректен этот метод?
Записан
ZHart
Joostina
*****

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

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



« Ответ #77 : 13.10.2013, 14:03:50 »

Вроде решали тут
В той теме готовый router.php выложили без объяснения. Стремновато как-то.
Кстати говоря, там похоже как раз используется решение из моего предыдущего сообщения.
Сможете прокомментировать, все ли верно?
Записан
b2z
Support Team
*****

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

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


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


« Ответ #78 : 14.10.2013, 10:12:51 »

Update:

На Joomla 3.1 у меня заработало другое решение.
После правки файла «\administrator\components\com_content\config.xml» и активации опции в админке, я открыл файл «router.php», нашел в нем строку:
Код:
->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));
... и заменил ее на:
Код:
->where($db->quoteName('alias'). ' = ' . $db->quote($segment));

Вроде все работает. Но у меня вопрос к специалистам — насколько корректен этот метод?
Второй конечно корректен. Первый с двойным quote - неверный.
Записан
ZHart
Joostina
*****

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

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



« Ответ #79 : 14.10.2013, 10:28:32 »

Второй конечно корректен. Первый с двойным quote - неверный.

Первый с двойным quote — вариант из оригинального router.php из Joomla 3.1. Баг?
Записан
b2z
Support Team
*****

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

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


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


« Ответ #80 : 14.10.2013, 10:48:20 »

Первый с двойным quote — вариант из оригинального router.php из Joomla 3.1. Баг?
Получается, что так. Advanced вариант не используется, поэтому этого никто и не заметил. Надо PR делать.
Кстати, если оставить как есть, с двойным quote, то ошибку выдает?
Записан
ZHart
Joostina
*****

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

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



« Ответ #81 : 14.10.2013, 10:52:58 »

Да, если оставить с двойным quote, то при активации Advanced ID-шники из урлов убираются, но все страницы отдают 404-ю ошибку.
Если с одинарным, и Advanced вариант активирован — то вроде все работает корректно (ID-шников в урлах нет, страницы грузятся нормально).
Записан
b2z
Support Team
*****

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

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


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


« Ответ #82 : 14.10.2013, 11:13:56 »

Да, если оставить с двойным quote, то при активации Advanced ID-шники из урлов убираются, но все страницы отдают 404-ю ошибку.
Если с одинарным, и Advanced вариант активирован — то вроде все работает корректно (ID-шников в урлах нет, страницы грузятся нормально).
Ок, тогда сделаю на днях Pull Request. По идее должны будут в 3.2 добавить.
Записан
ZHart
Joostina
*****

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

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



« Ответ #83 : 14.10.2013, 11:14:51 »

ОК, благодарю Azn
Записан
ZHart
Joostina
*****

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

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



« Ответ #84 : 14.10.2013, 17:54:36 »

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

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

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


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


« Ответ #85 : 14.10.2013, 18:01:26 »

Ну это не зависит от двойного quote. Тут явно дело в другом.
Записан
ZHart
Joostina
*****

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

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



« Ответ #86 : 14.10.2013, 18:03:57 »

Я и не пытаюсь найти связь с двойным quote. Еще один баг.
Записан
b2z
Support Team
*****

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

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


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


« Ответ #87 : 14.10.2013, 18:10:00 »

Я и не пытаюсь найти связь с двойным quote. Еще один баг.
Это не будут править (пока). Режим то не используется и не рекомендуется к использованию (поэтому и скрыт). Кроме того, в J4 мы скорее всего наконец-то увидем новый роутер (работа над ним идет).
Записан
Pavel M
Осваиваюсь на форуме
***

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

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


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


« Ответ #88 : 14.10.2013, 20:54:40 »

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

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

Код:
// 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
Записан
ZHart
Joostina
*****

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

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



« Ответ #89 : 15.10.2013, 09:49:24 »

Павел, спасибо, так действительно однословные алиасы работают.

Итого, чтобы Advanced-режим заработал нормально, нужно добавить опцию в «com_content\config.xml» и внести два изменения в «router.php» (убрать двойной quote и добавить «&& !$advanced»).

И если со внесением опции в «config.xml» в релиз вопрос быть может спорный, то оба изменения в «router.php» хорошо бы внести в ядро в ближайшее время (вероятно, в Joomla 3.2). Как минимум, от этих изменений никому не будет вреда. А те, кто захочет все же воспользоваться Advanced-режимом, будут лишены неприятностей, связанных с отлавливанием и ручной правкой багов.
Записан
b2z
Support Team
*****

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

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


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


« Ответ #90 : 15.10.2013, 10:03:24 »

Ок, я как раз вчера обновил свой joomla-cms репозиторий и подготовился к PR. Сегодня вечером сделаю ^_^
Записан
Страниц: 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