Тема: Как убрать ID материала из ссылок в Joomla 2.5 и Joomla 3  (Прочитано 4341 раз)

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

Оффлайн motosimak

  • Ветеран-элита
  • *****
  • Сообщений: 5487
  • Поблагодарили: 3 раз(а)
  • Уважение: +11/-0
  • Пол: Мужской
    • Просмотр профиля
Отключение ID материала делается модификацией двух файлов joomla, перед изменением файла делайте бекап (хотя там и не много правок). Так же пока при каждом обновлении джумла придется повторять действия или просто сохранить файлы где-то на компьютере и заменить после обновления системы.

Отключение ID материала в Joomla 2.5 и Joomla 3

В самой Joomla (начиная с версии 1.6) уже предусмотрена функция отключения ID материала из адреса ссылок, но для открытия этой возможности нам нужно добавить в файле: корень_сайта/administrator/components/com_content/config.xml следующие строки (желательно открывать файл через Notepad++):
показать/скрыть
<field name="sef_advanced_link"
type="radio"
default="1"
label="SEF: Удалить ID материала в ссылке?"
description="Удалить ID материала в ссылке?">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>

Строки можно добавить в любое вместо, но лучше вначале. Да, и обязательно меняем (или проверяем) кодировку файла: должна быть UTF-8 без BOM, иначе в админке будут крякозябры. :)

После добавления этих строк кода, Вы получили возможность включать и отключать ID из ссылок прямо из админки своего сайта. Для этого Вам нужно перейти в менеджер материалов и нажать "Настройки". И в настройках теперь у Вас будет находиться строка: "Удалить ID материала в ссылке?" (в самом верху).

Важно!
Если на некоторых ссылках выскакивает 404 ошибка, то следует в файле _ваш-сайт/components/com_content/router.php найти строку:
показать/скрыть
// 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.
В Joomla 3:
показать/скрыть
if ($count === 1 {
В Joomla 2.5 может быть вот так:
показать/скрыть
if ($count == 1 {

Важно!
Все категории должны быть привязаны к пунктам меню - если этого не будет, то могут возникнуть ошибки при генерации ссылок. Так же обратите внимание, что не будут работать ссылки, если название материала состоит из одного слова. Для решения этого косяка нужно опять открыть файл _ваш-сайт/components/com_content/router.php и найти строку:
показать/скрыть
->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));

заменить её на:
показать/скрыть
->where($db->quoteName('alias'). ' = ' . $db->quote($segment) );

PS: на форуме joomla уже написали просьбу разработчикам включить такое действие по умолчанию в следующие версии joomla, но когда это будет реализовано на постоянное основе из коробки пока не ясно.  beach


Оффлайн Stanislavovich

  • Советник
  • ***
  • Сообщений: 282
  • Уважение: +0/-0
  • Спрашивай отвечу)
    • Просмотр профиля
Классная тема автору спасибо
 

Юрий07

  • Гость
Подскажите, где нужно подправить. Обновился со старой версии до  Joomla 2.5.27, всё прошло нормально только не отображаются материалы которые имеют одиночный алиас, т.е. выскакивает ошибка 404 в материале с одиночным словом http://site.ru/категория/материал.  Надо что-то изменить в router.php ?

Этих строк в новой версии нету
->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));
 

Оффлайн moto

  • Выше солнца
  • *****
  • Сообщений: 17009
  • Поблагодарили: 140 раз(а)
  • Уважение: +128/-0
    • Просмотр профиля
вообще ошибка c однословными материалами только на 3 версии проявляется и исправляется.

Могу посоветовать поставить sef404



https://irongamers.ru - сообщество любителей компьютерных игр
 

Юрий07

  • Гость
Исправляется только не помню где. у меня была версия 2.5.14 там работало исправление, а в новой версии 2.5.27 где подправить не помню
 


Оффлайн moto

  • Выше солнца
  • *****
  • Сообщений: 17009
  • Поблагодарили: 140 раз(а)
  • Уважение: +128/-0
    • Просмотр профиля
Бекап не сохранился? В роутере правится, поищите $db->quote
https://irongamers.ru - сообщество любителей компьютерных игр
 

 


Поиск

 
SimplePortal 2.3.6 © 2008-2014, SimplePortal