блог об информационных технологиях: софт, железо, интернет, услуги, советы

Как убрать нумерацию в заголовках статей (Joomla 3.4)

Joomla по-прежнему по умолчанию добавляет в название статьи числовой идентификатор (ID). ID — это порядковый номер материала или категории. Выглядит это некрасиво: например, http://10anekdotov.ru/112-statyja-anekdoty. Сегодня мы посмотрим, как можно убрать ID из заголовков для сайта, сделанного на Joomla 3.x (в моем случае - Joomla 3.4).

Вариант 1
Можно установить специальное ЧПУ-расширение (ARTIO JoomSEF, SH404SEF и т.п.). Но это лишняя нагрузка на сервер и ставить эти расширения только для того, чтобы убрать ID — бессмысленно.

Вариант 2
Раньше был популярен плагин Hp router, при включении которого сразу пропадали все ID из названий материалов и категорий. К сожалению, последняя версия Hp router 0.4 уже не работает под Joomla 3.x и давно заброшена авторами.

Вариант 3
Мы поступим третьим способом — изменим один или два файла. Находим файл config.xml здесь: ваш_сайт/administrator/components/com_content/. Открываем файл текстовым редактором (рекомендую 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.

Если какие-то ссылки не работают, нужно отредактировать файл router.php, который вы найдете здесь: ваш_сайт/components/com_content/. Вам нужно заменить заменить две строки:

вместо:
// 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) {


Важно:
— сохраните файлы config.xml и router.php где-нибудь на компьютере, так как после обновления Joomla их придется снова заменить;
— все категории должны быть привязаны к пунктам меню, иначе могут возникнуть ошибки при создании ссылок;
— данное решение не работает для материалов, название которых состоит из одного слова.


Добавить комментарий

Защитный код
Обновить

Комментарии