Достоинством, который и делает метод, описанный в данной статье, достаточно популярным, является то, что не нужно использовать сторонние расширения (решается все непосредственно средствами самой CMS) и, как следствие, система не нагружается дополнительными запросами, а стало быть сайт работает быстрее. К тому же это сложно назвать хаком, поскольку дальнейшие обновления никак не повлияют на, активированные данным способом, настройки.
Использование описанного в этой статье метода влечет за собой изменение адресов (URL). Поэтому его следует применять до того, как вы начнете добавлять материалы. Если ресурс уже наполнен и индексируется поисковыми системами, то будьте готовы к тому, что в выдаче ПС появятся ссылки на ваш сайт, которые ведут на страницу ошибок 404.
Открываем в блокноте файл ваш_сайт/administrator/components/com_content/config.xml
Сразу же после строки description="COM_CONTENT_CONFIG_ARTICLE_SETTINGS_DESC"> (у меня это строка 6) вставляем следующий код:
<field name="sef_advanced_link" type="radio" default="1" label="SefAdvancedMode" description="Remove Item ID from Content URL?"> <option value="0">JNO</option> <option value="1">JYES</option> </field>
Сохраняем файл. Переходим в админ панель сайта, выбираем в верхнем меню Материалы/Менеджер материалов. Нажимаем кнопку Настройки в верхней части страницы.
Появится всплывающее окно с настройками. Переходим во вкладку Материалы и видим пункт SefAdvancedMode с двумя радио переключателями Нет и Да. Проверяем, что бы отмечен был переключатель Да (он должен быть отмечен по умолчанию), при необходимости активируем нужный пункт. Сохраняемся и закрываем окно.
Открываем главную страницу сайта и начинаем переходить по ссылкам. Если все сделано правильно, id в URL-ах отображаться не будут.
Теперь изменения, внесенные в файл config.xml, как это не удивительно, можно спокойно удалить (а можно и не трогать - файл пере запишется при следующих обновлениях, но активированная настройка останется прежней).
В своей практике мне не приходилось сталкиваться с какими либо неприятностями при использовании данного хака. Но в интернете я часто встречаю описание, что после изменения файла config.xml возможны ошибки при обращении к материалам сайта. Если произошел такой случай, то открываем в блокноте файл ваш_сайт/components/com_content/router.php, находим строку if ($count == 1) { (у меня это 226 строка) и изменяем ее на строку вида if ($count == 1 && !$advanced) {.