Меню категорій

Як позбутися ідентифікаторів статей (ID) у Joomla 1.7/2.5

Свого часу я починав свою роботу із сайтами з блоґового двигунця 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"

1

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

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

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

&amp;amp;lt;field name="sef_advanced_link" type="radio" default="0" label="Sef Advanced Mode" description="Remove ItemID from Content URL?"&amp;amp;gt; &amp;amp;lt;option	value="0"&amp;amp;gt;JNO&amp;amp;lt;/option&amp;amp;gt; &amp;amp;lt;option	value="1"&amp;amp;gt;JYES&amp;amp;lt;/option&amp;amp;gt; &amp;amp;lt;/field&amp;amp;gt;

2

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

3

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

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

на код

// then we assume it is a category. If they don't we assume it is an article
if ($count == 1 &amp;&amp; !$advanced) {

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

Прокоментувати