Свого часу я починав свою роботу із сайтами з блоґового двигунця WordPress. Все було добре, але реклама робить своє, і мені захотілося випробувати Joomla. Перша проблема, з якою я зіткнувся (ще на Joomla 1.0) – примусове додавання цифрового ідентифікатора до кожного посилання на статтю чи розділ. В результаті посилання виглядали не так, як я сам вписував:

/joomla/yak-pozbutysia-identyfikatoriv-statei-id-u-joomla-1-7-2-5

А так, як це "бачила" Joomla:

/joomla/153-yak-pozbutysia-identyfikatoriv-statei-id-u-joomla-1-7-2-5

Звичайно, то була проблема невелика, технічних мінусів як таких тут нема, але коли посилання дуже важливе і його треба людині запам'ятати( як, наприклад, адресу інформації про наш гурт "Равське Ретро" – /ravske-retro), то адреса /246-ravske-retro, для прикладу, буде виглядати не зовсім естетично, погодься 😉

Звичайно, вирішень цієї проблеми є аж два, і я із задоволенням ділюся ними із тобою (а ще занотовую, щоб самому часом не забути).

1

Відносно складний варіант. Заходимо у базу даних, шукаємо таблицю _extensions, у ній запис com_content (він відповідає за зберігання даних у компоненті Менеджер статей). Відкриваємо запис для редагування і в полі params додаємо параметр

"sef_advanced_link":"1"

Після збереження таблиці ідентифікатори щезнуть із посилань.

2.

В даному варіанті базу даних чіпати не будемо – хай собі живе 🙂 Чіпати будемо робочі файли Joomla.

Отже, заходимо у файл \administrator\components\com_content\config.xml і додаємо у нього наступний код (додавати можна в будь-якому місці поза межами інших тегів <field>:

<field name="sef_advanced_link"
	type="radio"
	default="0"
	label="Sef Advanced Mode"
	description="Remove ItemID from Content URL?">
	<option value="0">JNO</option>
	<option value="1">JYES</option>
</field>

Тепер усією процедурою можна керувати просто з панелі керування. Заходимо в Менеджер статей, справа тиснемо Опції і бачимо наступну картину:

Коли Положення радіокнопки знаходиться в режимі Так, ідентифікатори виводитися не будуть.

Інколи увімнення даного параметра призводить до появи помилок 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)

на код

if ($count == 1 && !$advanced) {

Ось такий невеличкий урок вийшов. Дякую всім, хто дочитав до кінця 🙂