Свого часу я починав свою роботу із сайтами з блоґового двигунця 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>:
&amp;lt;field name="sef_advanced_link" type="radio" default="0" label="Sef Advanced Mode" description="Remove ItemID from Content URL?"&amp;gt; &amp;lt;option value="0"&amp;gt;JNO&amp;lt;/option&amp;gt; &amp;lt;option value="1"&amp;gt;JYES&amp;lt;/option&amp;gt; &amp;lt;/field&amp;gt;
Тепер усією процедурою можна керувати просто з панелі керування. Заходимо в Менеджер статей, справа тиснемо Опції і бачимо наступну картину:
Коли Положення радіокнопки знаходиться в режимі Так, ідентифікатори виводитися не будуть.
Інколи увімнення даного параметра призводить до появи помилок 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 && !$advanced) {
Ось такий невеличкий урок вийшов. Дякую всім, хто дочитав до кінця 🙂
Прокоментувати