Открываем в любимом редакторе (мой - Geany) components\com_content\router.php и вносим небольшие изменения:

В функции ContentBuildRoute(&$query) меняем строку 27

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

на

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


В функции ContentParseRoute($segments) меняем строку 208

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

на

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


Закомментируем строки 228-232:

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


И все.

Для начала, если посмотреть на строки 27 и 208, то видно, что в компоненте используется параметр sef_advanced_link , которому по-умолчанию присваивается значение 0. Этот параметр нигде в админке не встречается - можно сделать вывод, что создатели Жумлы все это предусмотрели, но не успели оттестировать, и потому не включили в релиз. По этой причине, данный параметр всегда указывает, что опция скрытия ID в URL всегда выключена. Мы ее включили принудительно. Кстати, если по уму, то стоило просто добавить этот параметр в administrator\components\com_content\config.xml и он бы попал в админку.

От строк 228-232 зависит появится ли ошибка при открытии категории без ID в URL. Тесты показали, что если эти строки оставить как есть (не комментировать), то страницы статей грузятся без проблем, а вот страницы категорий вызывают возникновение ошибки 404. Так что решение в этом случае - закомментировать от греха подальше.

Я наступил на те же грабли,
Я - закрепляю результат!
Перед глазами дирижабли,
А в голове мне бьют в набат.

Но я очухался и снова,
Повыше голову подняв,
Иду вперед, иду сурово,
Но грабли так не поменяв.

У нас вероятность высчитывают до тех пор, пока не наступит неизбежность.

Чем трепетнее бережешь чужую психику, тем больше страдает собственная.

Красоты хватит на спасение не одного мира, но один мир способен уничтожить всю красоту.

Пусть нам закручивают гайки, мы все равно положим болт...

Наверх