По сути ID материала в joomla не мешает сайту а наоборот придает уникальность (отсутствие дублей), но уж очень это не красиво. В данном материале мы постараемся понять, как можно избавиться от этого и сделать урл страниц более привлекательными.
Решается это просто, по крайней мере в версиях joomla 1.5 1.6 1.7, ставится плагин hp router и все, ID отсутствует в адресе, а что с версией joomla 2.5? Я решил поискать в сети другое решение. Вытеснение ID материала из адреса путем работы в коде и знаете что? Нашел! Попробовал на одном из своих доменов, работает!
Делюсь. Для решения этого вопроса нужно посетить папку components/com_content открываем файл router.php
ищем строку, примерно 25-29 строка.
$advanced = $params->get('sef_advanced_link', 0); |
и делаем такое изменение
$advanced = $params->get('sef_advanced_link', 1); |
заметили? 0 поменяли на 1
Далее, в этом же файле редактируем строку (примерно 200-210 строка)
$advanced = $params->get('sef_advanced_link', 0); |
и делаем такое изменение
$advanced = $params->get('sef_advanced_link', 1); |
так же меняем 0 на 1. Практически все. Осталось закомментировать в данном файле одну функцию. Находим примерно в 225 строке
if (strpos($segments[0], ':') === false) { $vars['view'] = 'article'; $vars['id'] = (int)$segments[0]; return $vars; } |
и комментируем ее
/*if (strpos($segments[0], ':') === false) { $vars['view'] = 'article'; $vars['id'] = (int)$segments[0]; return $vars; }*/ |
Все! Проверяйте. Нет никаких дополнительных плагинов, нет никаких ID в адресе страницы. Здорово, не правда ли? У нас получилось убрать id материала из урл joomla потратив совсем немного сил и времени.