Как убрать ID категории из ссылок Joomla

Незнаю причины возникновения этой мульки, было замечено на Joomla 2.5.18.


Ссылка на категорию материалов в адресной строке выглядит так http://artlabor.ee/68-ssylka-na-kategoriju
Для Joomla 2.5 и 3:


Вариант 1


в файле: корень_сайта/administrator/components/com_content/config.xml

в конец файла вставляем строки

<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>


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

Нажимаете "Да". После этого очистите кэш сайта. Теперь ссылки в Joomla 2.5 будут отображаться без 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 3 может быть так:


->where($db->quoteName('alias'). ' = ' . $db->quote($db->quote($segment)));


И заменить её на:


->where($db->quoteName('alias'). ' = ' . $db->quote($segment) );


Вариант 2


В файле ваш-сайт/components/com_content/router.php


примерно 27 строка


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


заменяем на


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


в Joomla 2.5 - 228 строка, в Joomla 3 - 250


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


заменяем на


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


и закомментируем это


if (strpos($segments[0], ':') === false)
{
$vars['view'] = 'article';
$vars['id'] = (int) $segments[0];
return $vars;
}


Важное примечание для Joomla 3: если при переходе по ссылкам без ID у Вас возникает 404 ошибка, то найдите в файле _ваш-сайт/components/com_content/router.php строку 376 (в разных версиях Joomla эта строка может отличаться):


->where($db->quoteName('alias') . ' = ' . $db->quote($db->quote($segment)));


заменяем


->where($db->quoteName('alias') . ' = ' . $db->quote($segment));

Предлагаю вашему вниманию подборку интересных каналов Telegram по дизайну интерьера и архитектуре
https://tele.gg/dizain_interjera - канал практикующего дизайнера интерьера с интересными советами по ремонту и декору.
https://tele.gg/interio_inspiration - канал с ежедневной подборкой проектов интерьера для вашего вдохновения
https://tele.gg/arh_inspiration - так же подборка вдохновляющих проектов, но уже по архитектуре

1 комментарий:

  1. Спасибо! Вариант #1 не помог (Joomla 2.5.28)
    Вариант #2 получился. Только у меня строка не 228, а 208

    ОтветитьУдалить

Технологии Blogger.