Свого часу я починав свою роботу із сайтами з блоґового двигунця 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) {
Ось такий невеличкий урок вийшов. Дякую всім, хто дочитав до кінця 🙂
Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.